×

规范

属性 类型 描述

apiVersion

字符串

APIVersion 定义了此对象表示的版本化模式。服务器应将识别的模式转换为最新的内部值,并可能拒绝无法识别的值。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind

字符串

Kind 是一个字符串值,表示此对象表示的 REST 资源。服务器可以从客户端提交请求的端点推断出这一点。不能更新。使用驼峰式大小写。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

标准对象的元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

对象

NetworkPolicySpec 提供了 NetworkPolicy 的规范。

.spec

描述

NetworkPolicySpec 提供了 NetworkPolicy 的规范。

类型

对象

必需
  • podSelector

属性 类型 描述

egress

数组

egress 是应用于所选 Pod 的出站规则列表。如果没有任何 NetworkPolicy 选择 Pod(并且集群策略在其他情况下允许流量),或者如果流量与所有 NetworkPolicy 对象(其 podSelector 与 Pod 匹配)中的至少一个出站规则匹配,则允许出站流量。如果此字段为空,则此 NetworkPolicy 限制所有出站流量(并且仅用于确保其选择的 Pod 默认情况下是隔离的)。此字段在 1.8 中处于测试阶段。

egress[]

对象

NetworkPolicyEgressRule 描述了允许从 NetworkPolicySpec 的 podSelector 匹配的 Pod 中发出的特定流量集。流量必须同时匹配端口和目标。此类型在 1.8 中处于测试阶段。

ingress

数组

ingress 是应用于所选 Pod 的入站规则列表。如果没有任何 NetworkPolicy 选择 Pod(并且集群策略在其他情况下允许流量),或者如果流量源是 Pod 的本地节点,或者如果流量与所有 NetworkPolicy 对象(其 podSelector 与 Pod 匹配)中的至少一个入站规则匹配,则允许流量到达 Pod。如果此字段为空,则此 NetworkPolicy 不允许任何流量(并且仅用于确保其选择的 Pod 默认情况下是隔离的)。

ingress[]

对象

NetworkPolicyIngressRule 描述了允许访问 NetworkPolicySpec 的 podSelector 匹配的 Pod 的特定流量集。流量必须同时匹配端口和来源。

podSelector

LabelSelector

podSelector 选择此 NetworkPolicy 对象适用的 Pod。入站规则数组应用于此字段选择的任何 Pod。多个网络策略可以选择相同的 Pod 集。在这种情况下,每个策略的入站规则将累加组合。此字段不是可选的,并且遵循标准标签选择器语义。空 podSelector 匹配此命名空间中的所有 Pod。

policyTypes

数组(字符串)

policyTypes 是一个规则类型列表,NetworkPolicy 与之相关。有效选项为 ["Ingress"]、["Egress"] 或 ["Ingress", "Egress"]。如果未指定此字段,则将根据 ingress 或 egress 规则的存在情况进行默认设置;包含 egress 部分的策略被认为会影响 egress,所有策略(无论是否包含 ingress 部分)都被认为会影响 ingress。如果您想编写仅限 egress 的策略,则必须显式指定 policyTypes ["Egress"]。同样,如果您想编写一个指定不允许 egress 的策略,则必须指定包含 "Egress" 的 policyTypes 值(因为此类策略不包含 egress 部分,否则将默认为 ["Ingress"])。此字段在 1.8 版本中处于 Beta 级别。

.spec.egress

描述

egress 是应用于所选 Pod 的出站规则列表。如果没有任何 NetworkPolicy 选择 Pod(并且集群策略在其他情况下允许流量),或者如果流量与所有 NetworkPolicy 对象(其 podSelector 与 Pod 匹配)中的至少一个出站规则匹配,则允许出站流量。如果此字段为空,则此 NetworkPolicy 限制所有出站流量(并且仅用于确保其选择的 Pod 默认情况下是隔离的)。此字段在 1.8 中处于测试阶段。

类型

数组

.spec.egress[]

描述

NetworkPolicyEgressRule 描述了允许从 NetworkPolicySpec 的 podSelector 匹配的 Pod 中发出的特定流量集。流量必须同时匹配端口和目标。此类型在 1.8 中处于测试阶段。

类型

对象

属性 类型 描述

ports

数组

ports 是出站流量的目标端口列表。此列表中的每个项目都使用逻辑 OR 组合。如果此字段为空或缺失,则此规则匹配所有端口(不受端口限制的流量)。如果此字段存在且至少包含一个项目,则此规则仅在流量与列表中的至少一个端口匹配时才允许流量。

ports[]

对象

NetworkPolicyPort 描述允许流量通过的端口。

to

数组

to 是为该规则选择的 Pod 的出站流量的目标列表。此列表中的项目使用逻辑 OR 操作组合。如果此字段为空或缺失,则此规则匹配所有目标(不受目标限制的流量)。如果此字段存在且至少包含一个项目,则此规则仅在流量与 to 列表中的至少一个项目匹配时才允许流量。

to[]

对象

NetworkPolicyPeer 描述允许流量进出的对等体。仅允许某些字段组合。

.spec.egress[].ports

描述

ports 是出站流量的目标端口列表。此列表中的每个项目都使用逻辑 OR 组合。如果此字段为空或缺失,则此规则匹配所有端口(不受端口限制的流量)。如果此字段存在且至少包含一个项目,则此规则仅在流量与列表中的至少一个端口匹配时才允许流量。

类型

数组

.spec.egress[].ports[]

描述

NetworkPolicyPort 描述允许流量通过的端口。

类型

对象

属性 类型 描述

endPort

整数

endPort 指示如果设置了从 portendPort 的端口范围(含),则策略应允许该范围的端口。如果未定义 port 字段,或者将 port 字段定义为命名(字符串)端口,则不能定义此字段。endPort 必须等于或大于 port

port

IntOrString

port 表示给定协议上的端口。这可以是 Pod 上的数值端口或命名端口。如果未提供此字段,则匹配所有端口名称和编号。如果存在,则仅匹配指定协议和端口上的流量。

protocol

字符串

protocol 表示流量必须匹配的协议(TCP、UDP 或 SCTP)。如果未指定,此字段默认为 TCP。

可能的枚举值:- "SCTP" 是 SCTP 协议。- "TCP" 是 TCP 协议。- "UDP" 是 UDP 协议。

.spec.egress[].to

描述

to 是为该规则选择的 Pod 的出站流量的目标列表。此列表中的项目使用逻辑 OR 操作组合。如果此字段为空或缺失,则此规则匹配所有目标(不受目标限制的流量)。如果此字段存在且至少包含一个项目,则此规则仅在流量与 to 列表中的至少一个项目匹配时才允许流量。

类型

数组

.spec.egress[].to[]

描述

NetworkPolicyPeer 描述允许流量进出的对等体。仅允许某些字段组合。

类型

对象

属性 类型 描述

ipBlock

对象

IPBlock 描述允许访问由 NetworkPolicySpec 的 podSelector 匹配的 Pod 的特定 CIDR(例如,“192.168.1.0/24”、“2001:db8::/64”)。except 条目描述不应包含在此规则内的 CIDR。

namespaceSelector

LabelSelector

namespaceSelector 使用集群范围的标签选择命名空间。此字段遵循标准标签选择器语义;如果存在但为空,则选择所有命名空间。

如果也设置了 podSelector,则 NetworkPolicyPeer 将整体选择 namespaceSelector 选择的命名空间中与 podSelector 匹配的 Pod。否则,它将选择 namespaceSelector 选择的命名空间中的所有 Pod。

podSelector

LabelSelector

podSelector 是一个标签选择器,用于选择 Pod。此字段遵循标准标签选择器语义;如果存在但为空,则选择所有 Pod。

如果也设置了 namespaceSelector,则 NetworkPolicyPeer 将整体选择 NamespaceSelector 选择的命名空间中与 podSelector 匹配的 Pod。否则,它将选择策略自身命名空间中与 podSelector 匹配的 Pod。

.spec.egress[].to[].ipBlock

描述

IPBlock 描述允许访问由 NetworkPolicySpec 的 podSelector 匹配的 Pod 的特定 CIDR(例如,“192.168.1.0/24”、“2001:db8::/64”)。except 条目描述不应包含在此规则内的 CIDR。

类型

对象

必需
  • cidr

属性 类型 描述

cidr

字符串

cidr 是表示 IPBlock 的字符串。有效示例为“192.168.1.0/24”或“2001:db8::/64”。

except

数组(字符串)

except 是不应包含在 IPBlock 内的 CIDR 切片。有效示例为“192.168.1.0/24”或“2001:db8::/64”。如果 except 值超出 cidr 范围,则会被拒绝。

.spec.ingress

描述

ingress 是应用于所选 Pod 的入站规则列表。如果没有任何 NetworkPolicy 选择 Pod(并且集群策略在其他情况下允许流量),或者如果流量源是 Pod 的本地节点,或者如果流量与所有 NetworkPolicy 对象(其 podSelector 与 Pod 匹配)中的至少一个入站规则匹配,则允许流量到达 Pod。如果此字段为空,则此 NetworkPolicy 不允许任何流量(并且仅用于确保其选择的 Pod 默认情况下是隔离的)。

类型

数组

.spec.ingress[]

描述

NetworkPolicyIngressRule 描述了允许访问 NetworkPolicySpec 的 podSelector 匹配的 Pod 的特定流量集。流量必须同时匹配端口和来源。

类型

对象

属性 类型 描述

from

数组

from 是应该能够访问为此规则选择的 Pod 的来源列表。此列表中的项目使用逻辑 OR 操作组合。如果此字段为空或缺失,则此规则匹配所有来源(不受来源限制的流量)。如果此字段存在且至少包含一个项目,则此规则仅在流量与 from 列表中的至少一个项目匹配时才允许流量。

from[]

对象

NetworkPolicyPeer 描述允许流量进出的对等体。仅允许某些字段组合。

ports

数组

ports 是应该在此规则选择的 Pod 上可访问的端口列表。此列表中的每个项目都使用逻辑 OR 组合。如果此字段为空或缺失,则此规则匹配所有端口(不受端口限制的流量)。如果此字段存在且至少包含一个项目,则此规则仅在流量与列表中的至少一个端口匹配时才允许流量。

ports[]

对象

NetworkPolicyPort 描述允许流量通过的端口。

.spec.ingress[].from

描述

from 是应该能够访问为此规则选择的 Pod 的来源列表。此列表中的项目使用逻辑 OR 操作组合。如果此字段为空或缺失,则此规则匹配所有来源(不受来源限制的流量)。如果此字段存在且至少包含一个项目,则此规则仅在流量与 from 列表中的至少一个项目匹配时才允许流量。

类型

数组

.spec.ingress[].from[]

描述

NetworkPolicyPeer 描述允许流量进出的对等体。仅允许某些字段组合。

类型

对象

属性 类型 描述

ipBlock

对象

IPBlock 描述允许访问由 NetworkPolicySpec 的 podSelector 匹配的 Pod 的特定 CIDR(例如,“192.168.1.0/24”、“2001:db8::/64”)。except 条目描述不应包含在此规则内的 CIDR。

namespaceSelector

LabelSelector

namespaceSelector 使用集群范围的标签选择命名空间。此字段遵循标准标签选择器语义;如果存在但为空,则选择所有命名空间。

如果也设置了 podSelector,则 NetworkPolicyPeer 将整体选择 namespaceSelector 选择的命名空间中与 podSelector 匹配的 Pod。否则,它将选择 namespaceSelector 选择的命名空间中的所有 Pod。

podSelector

LabelSelector

podSelector 是一个标签选择器,用于选择 Pod。此字段遵循标准标签选择器语义;如果存在但为空,则选择所有 Pod。

如果也设置了 namespaceSelector,则 NetworkPolicyPeer 将整体选择 NamespaceSelector 选择的命名空间中与 podSelector 匹配的 Pod。否则,它将选择策略自身命名空间中与 podSelector 匹配的 Pod。

.spec.ingress[].from[].ipBlock

描述

IPBlock 描述允许访问由 NetworkPolicySpec 的 podSelector 匹配的 Pod 的特定 CIDR(例如,“192.168.1.0/24”、“2001:db8::/64”)。except 条目描述不应包含在此规则内的 CIDR。

类型

对象

必需
  • cidr

属性 类型 描述

cidr

字符串

cidr 是表示 IPBlock 的字符串。有效示例为“192.168.1.0/24”或“2001:db8::/64”。

except

数组(字符串)

except 是不应包含在 IPBlock 内的 CIDR 切片。有效示例为“192.168.1.0/24”或“2001:db8::/64”。如果 except 值超出 cidr 范围,则会被拒绝。

.spec.ingress[].ports

描述

ports 是应该在此规则选择的 Pod 上可访问的端口列表。此列表中的每个项目都使用逻辑 OR 组合。如果此字段为空或缺失,则此规则匹配所有端口(不受端口限制的流量)。如果此字段存在且至少包含一个项目,则此规则仅在流量与列表中的至少一个端口匹配时才允许流量。

类型

数组

.spec.ingress[].ports[]

描述

NetworkPolicyPort 描述允许流量通过的端口。

类型

对象

属性 类型 描述

endPort

整数

endPort 指示如果设置了从 portendPort 的端口范围(含),则策略应允许该范围的端口。如果未定义 port 字段,或者将 port 字段定义为命名(字符串)端口,则不能定义此字段。endPort 必须等于或大于 port

port

IntOrString

port 表示给定协议上的端口。这可以是 Pod 上的数值端口或命名端口。如果未提供此字段,则匹配所有端口名称和编号。如果存在,则仅匹配指定协议和端口上的流量。

protocol

字符串

protocol 表示流量必须匹配的协议(TCP、UDP 或 SCTP)。如果未指定,此字段默认为 TCP。

可能的枚举值:- "SCTP" 是 SCTP 协议。- "TCP" 是 TCP 协议。- "UDP" 是 UDP 协议。

API 端点

提供以下 API 端点

  • /apis/networking.k8s.io/v1/networkpolicies

    • GET:列出或监视 NetworkPolicy 类型的对象

  • /apis/networking.k8s.io/v1/watch/networkpolicies

    • GET:监视 NetworkPolicy 列表的单个更改。已弃用:改为使用列表操作中的“watch”参数。

  • /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies

    • DELETE:删除 NetworkPolicy 集合

    • GET:列出或监视 NetworkPolicy 类型的对象

    • POST:创建 NetworkPolicy

  • /apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies

    • GET:监视 NetworkPolicy 列表的单个更改。已弃用:改为使用列表操作中的“watch”参数。

  • /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}

    • DELETE:删除 NetworkPolicy

    • GET:读取指定的 NetworkPolicy

    • PATCH:部分更新指定的 NetworkPolicy

    • PUT:替换指定的 NetworkPolicy

  • /apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}

    • GET:监视 NetworkPolicy 类型的对象的更改。已弃用:改为使用列表操作中的“watch”参数,并使用“fieldSelector”参数将其过滤为单个项目。

/apis/networking.k8s.io/v1/networkpolicies

HTTP 方法

GET

描述

列出或监视 NetworkPolicy 类型的对象

表 1. HTTP 响应
HTTP 代码 响应体

200 - OK

NetworkPolicyList 模式

401 - 未授权

/apis/networking.k8s.io/v1/watch/networkpolicies

HTTP 方法

GET

描述

监视 NetworkPolicy 列表的单个更改。已弃用:改为使用列表操作中的“watch”参数。

表 2. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - 未授权

/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies

HTTP 方法

DELETE

描述

删除 NetworkPolicy 集合

表 3. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

表 4. HTTP 响应
HTTP 代码 响应体

200 - OK

Status 模式

401 - 未授权

HTTP 方法

GET

描述

列出或监视 NetworkPolicy 类型的对象

表 5. HTTP 响应
HTTP 代码 响应体

200 - OK

NetworkPolicyList 模式

401 - 未授权

HTTP 方法

POST

描述

创建 NetworkPolicy

表 6. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知字段或重复字段的对象。有效值为:- Ignore:忽略任何未知字段,这些字段将从对象中静默删除,并且只保留解码器遇到的最后一个重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段和遇到的每个重复字段,都会通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则会使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知字段和重复字段。

表 7. 主体参数
参数 类型 描述

body

NetworkPolicy 模式

表 8. HTTP 响应
HTTP 代码 响应体

200 - OK

NetworkPolicy 模式

201 - 已创建

NetworkPolicy 模式

202 - 已接受

NetworkPolicy 模式

401 - 未授权

/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies

HTTP 方法

GET

描述

监视 NetworkPolicy 列表的单个更改。已弃用:改为使用列表操作中的“watch”参数。

表 9. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - 未授权

/apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}

表 10. 全局路径参数
参数 类型 描述

name

字符串

NetworkPolicy 的名称

HTTP 方法

DELETE

描述

删除 NetworkPolicy

表 11. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

表 12. HTTP 响应
HTTP 代码 响应体

200 - OK

Status 模式

202 - 已接受

Status 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的 NetworkPolicy

表 13. HTTP 响应
HTTP 代码 响应体

200 - OK

NetworkPolicy 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 NetworkPolicy

表 14. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知字段或重复字段的对象。有效值为:- Ignore:忽略任何未知字段,这些字段将从对象中静默删除,并且只保留解码器遇到的最后一个重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段和遇到的每个重复字段,都会通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则会使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知字段和重复字段。

表 15. HTTP 响应
HTTP 代码 响应体

200 - OK

NetworkPolicy 模式

201 - 已创建

NetworkPolicy 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 NetworkPolicy

表 16. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知字段或重复字段的对象。有效值为:- Ignore:忽略任何未知字段,这些字段将从对象中静默删除,并且只保留解码器遇到的最后一个重复字段。这是 v1.23 之前的默认行为。- Warn:对于从对象中删除的每个未知字段和遇到的每个重复字段,都会通过标准警告响应标头发送警告。如果没有任何其他错误,请求仍然会成功,并且只会保留任何重复字段中的最后一个。这是 v1.23 及更高版本的默认值。- Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,则会使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知字段和重复字段。

表 17. 主体参数
参数 类型 描述

body

NetworkPolicy 模式

表 18. HTTP 响应
HTTP 代码 响应体

200 - OK

NetworkPolicy 模式

201 - 已创建

NetworkPolicy 模式

401 - 未授权

/apis/networking.k8s.io/v1/watch/namespaces/{namespace}/networkpolicies/{name}

表 19. 全局路径参数
参数 类型 描述

name

字符串

NetworkPolicy 的名称

HTTP 方法

GET

描述

监视 NetworkPolicy 类型对象的更改。已弃用:改为使用列表操作中的“watch”参数,并使用“fieldSelector”参数将其过滤为单个项目。

表 20. HTTP 响应
HTTP 代码 响应体

200 - OK

WatchEvent 模式

401 - 未授权