第 16 章 MultiNetworkPolicy [k8s.cni.cncf.io/v1beta1]
- 描述
- MultiNetworkPolicy 是一个 CRD 模式,为 net-attach-def 提供 NetworkPolicy 机制,该机制由 Network Plumbing Working Group 指定。MultiNetworkPolicy 与 Kubernetes NetworkPolicy 相同,请参阅 :https://kubernetes.io/docs/concepts/services-networking/network-policies/。
- 类型
-
对象
16.1. 规格
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| 指定此 MultiNetworkPolicy 所需的行为。 |
16.1.1. .spec
- 描述
- 指定此 MultiNetworkPolicy 所需的行为。
- 类型
-
object
- 必填
-
podSelector
-
属性 | 类型 | 描述 |
---|---|---|
|
| 要应用到所选 pod 的出口规则列表。如果没有 NetworkPolicies 选择 pod (和集群策略也允许流量),或者流量至少匹配 podSelector 与 pod 匹配的所有 NetworkPolicy 对象,则允许传出流量。如果此字段为空,则此 NetworkPolicy 会限制所有传出流量(且单独用于确保它选择的 pod 默认被隔离)。此字段在 1.8 中是 beta 级别 |
|
| NetworkPolicyEgressRule 描述了允许没有与 NetworkPolicySpec 的 pod 匹配的 pod 集合的流量。流量必须与端口 和 匹配。这个类型是 1.8 中的 beta 级别 |
|
| 要应用到所选 pod 的 ingress 规则列表。如果没有 NetworkPolicies 选择 pod (并且集群策略允许流量),或者流量源是 pod 的本地节点,或者如果流量源是 pod 的本地节点,或者如果流量至少匹配 pod 的所有 NetworkPolicy 对象中的一个入站规则,则允许流量。如果此字段为空,则此 NetworkPolicy 不允许任何流量(只服务来确保它选择的 pod 默认被隔离) |
|
| NetworkPolicyIngressRule 描述了允许 pod 集合与 NetworkPolicySpec 的 pod 匹配的特定流量。流量必须与端口 和 from 匹配。 |
|
| 这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。 |
|
| NetworkPolicy 相关规则类型列表。有效选项为 'Ingress'、'Egress' 或 'Ingress,Egress'。如果没有指定此字段,它将基于 Ingress 或 Egress 规则的存在;包含 Egress 部分的策略被假定为对 Egress 的影响,并且所有策略(无论它们是否包含 Ingress 部分)都会影响 Ingress。如果要编写仅限出口的策略,您必须明确指定 policyTypes [ 'Egress' ]。同样,如果您想要编写指定不允许出口的策略,您必须指定包含 'Egress' 的 policyTypes 值(因为这样的策略不包含 Egress 部分,否则将默认为 [ 'Ingress' ])。此字段在 1.8 中是 beta 级别 |
16.1.2. .spec.egress
- 描述
- 要应用到所选 pod 的出口规则列表。如果没有 NetworkPolicies 选择 pod (和集群策略也允许流量),或者流量至少匹配 podSelector 与 pod 匹配的所有 NetworkPolicy 对象,则允许传出流量。如果此字段为空,则此 NetworkPolicy 会限制所有传出流量(且单独用于确保它选择的 pod 默认被隔离)。此字段在 1.8 中是 beta 级别
- 类型
-
数组
16.1.3. .spec.egress[]
- 描述
- NetworkPolicyEgressRule 描述了允许没有与 NetworkPolicySpec 的 pod 匹配的 pod 集合的流量。流量必须与端口 和 匹配。这个类型是 1.8 中的 beta 级别
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 传出流量的目标端口列表。此列表中的每个项目都使用逻辑 OR 合并。如果此字段为空或缺失,此规则匹配所有端口(不受端口限制的流量)。如果此字段至少包含一个项,则此规则仅在流量至少与列表中的一个端口匹配时才允许流量。 |
|
| NetworkPolicyPort 描述了允许流量的端口 |
|
| 为这个规则选择的 pod 的目的地列表。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有目的地匹配(不受目的地限制的流量)。如果此字段至少存在并包含一项,则该规则仅在流量至少与 to 列表中某一项匹配时才允许流量。 |
|
| NetworkPolicyPeer 描述了允许来自流量的对等点。只允许某些字段组合 |
16.1.4. .spec.egress[].ports
- 描述
- 传出流量的目标端口列表。此列表中的每个项目都使用逻辑 OR 合并。如果此字段为空或缺失,此规则匹配所有端口(不受端口限制的流量)。如果此字段至少包含一个项,则此规则仅在流量至少与列表中的一个端口匹配时才允许流量。
- 类型
-
数组
16.1.5. .spec.egress[].ports[]
- 描述
- NetworkPolicyPort 描述了允许流量的端口
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 给定协议上的端口。这可以是 pod 上的数字或指定端口。如果没有提供此字段,则匹配所有端口名称和编号。 |
|
| 流量必须匹配的协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。 |
16.1.6. .spec.egress[].to
- 描述
- 为这个规则选择的 pod 的目的地列表。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有目的地匹配(不受目的地限制的流量)。如果此字段至少存在并包含一项,则该规则仅在流量至少与 to 列表中某一项匹配时才允许流量。
- 类型
-
数组
16.1.7. .spec.egress[].to[]
- 描述
- NetworkPolicyPeer 描述了允许来自流量的对等点。只允许某些字段组合
- 类型
-
对象
属性 | 类型 | 描述 |
---|---|---|
|
| IPBlock 定义特定 IPBlock 的策略。如果设置了此字段,则不能有其他字段。 |
|
| 使用集群范围的标签选择 Namespaces。此字段遵循标准标签选择器语义;如果存在,它会选择所有命名空间。如果也设置了 PodSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在 NamespaceSelector 中选择 Namespaces 中的所有 Pod。 |
|
| 这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。 |
16.1.8. .spec.egress[].to[].ipBlock
- 描述
- IPBlock 定义特定 IPBlock 的策略。如果设置了此字段,则不能有其他字段。
- 类型
-
对象
- 必填
-
cidr
-
属性 | 类型 | 描述 |
---|---|---|
|
| CIDR 是代表 IP 块有效期示例的字符串,是 '192.168.1.1/24' |
|
| 除外,如果值不在 CIDR 范围之外,则不应包含在 IP Block Valid 示例中的 CIDR 片段为 '192.168.1.1/24' Except 值 |
16.1.9. .spec.egress[].to[].namespaceSelector
- 描述
- 使用集群范围的标签选择 Namespaces。此字段遵循标准标签选择器语义;如果存在,它会选择所有命名空间。如果也设置了 PodSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在 NamespaceSelector 中选择 Namespaces 中的所有 Pod。
- 类型
-
对象
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 'key',运算符是 'In',值数组仅包含 'value'。要求的逻辑关系是 AND。 |
16.1.10. .spec.egress[].to[].namespaceSelector.matchExpressions
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
16.1.11. .spec.egress[].to[].namespaceSelector.matchExpressions[]
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
对象
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
16.1.12. .spec.egress[].to[].podSelector
- 描述
- 这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。
- 类型
-
对象
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 'key',运算符是 'In',值数组仅包含 'value'。要求的逻辑关系是 AND。 |
16.1.13. .spec.egress[].to[].podSelector.matchExpressions
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
数组
16.1.14. .spec.egress[].to[].podSelector.matchExpressions[]
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
对象
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
16.1.15. .spec.ingress
- 描述
- 要应用到所选 pod 的 ingress 规则列表。如果没有 NetworkPolicies 选择 pod (并且集群策略允许流量),或者流量源是 pod 的本地节点,或者如果流量源是 pod 的本地节点,或者如果流量至少匹配 pod 的所有 NetworkPolicy 对象中的一个入站规则,则允许流量。如果此字段为空,则此 NetworkPolicy 不允许任何流量(只服务来确保它选择的 pod 默认被隔离)
- 类型
-
array
16.1.16. .spec.ingress[]
- 描述
- NetworkPolicyIngressRule 描述了允许 pod 集合与 NetworkPolicySpec 的 pod 匹配的特定流量。流量必须与端口 和 from 匹配。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 能够访问为这个规则选择的 pod 的源列表。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有源匹配(不受源限制的流量)。如果此字段至少包含一个项,则该规则仅在流量与 from 列表中至少一个项匹配时才允许流量。 |
|
| NetworkPolicyPeer 描述了允许来自流量的对等点。只允许某些字段组合 |
|
| 应该可在为此规则选择的 pod 上访问的端口列表。此列表中的每个项目都使用逻辑 OR 合并。如果此字段为空或缺失,此规则匹配所有端口(不受端口限制的流量)。如果此字段至少包含一个项,则此规则仅在流量至少与列表中的一个端口匹配时才允许流量。 |
|
| NetworkPolicyPort 描述了允许流量的端口 |
16.1.17. .spec.ingress[].from
- 描述
- 能够访问为这个规则选择的 pod 的源列表。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有源匹配(不受源限制的流量)。如果此字段至少包含一个项,则该规则仅在流量与 from 列表中至少一个项匹配时才允许流量。
- 类型
-
数组
16.1.18. .spec.ingress[].from[]
- 描述
- NetworkPolicyPeer 描述了允许来自流量的对等点。只允许某些字段组合
- 类型
-
对象
属性 | 类型 | 描述 |
---|---|---|
|
| IPBlock 定义特定 IPBlock 的策略。如果设置了此字段,则不能有其他字段。 |
|
| 使用集群范围的标签选择 Namespaces。此字段遵循标准标签选择器语义;如果存在,它会选择所有命名空间。如果也设置了 PodSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在 NamespaceSelector 中选择 Namespaces 中的所有 Pod。 |
|
| 这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。 |
16.1.19. .spec.ingress[].from[].ipBlock
- 描述
- IPBlock 定义特定 IPBlock 的策略。如果设置了此字段,则不能有其他字段。
- 类型
-
object
- 必填
-
cidr
-
属性 | 类型 | 描述 |
---|---|---|
|
| CIDR 是代表 IP 块有效期示例的字符串,是 '192.168.1.1/24' |
|
| 除外,如果值不在 CIDR 范围之外,则不应包含在 IP Block Valid 示例中的 CIDR 片段为 '192.168.1.1/24' Except 值 |
16.1.20. .spec.ingress[].from[].namespaceSelector
- 描述
- 使用集群范围的标签选择 Namespaces。此字段遵循标准标签选择器语义;如果存在,它会选择所有命名空间。如果也设置了 PodSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在 NamespaceSelector 中选择 Namespaces 中的所有 Pod。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 'key',运算符是 'In',值数组仅包含 'value'。要求的逻辑关系是 AND。 |
16.1.21. .spec.ingress[].from[].namespaceSelector.matchExpressions
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
array
16.1.22. .spec.ingress[].from[].namespaceSelector.matchExpressions[]
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
16.1.23. .spec.ingress[].from[].podSelector
- 描述
- 这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
| matchLabels 是 {key,value} 对的映射。matchLabels 映射中的单个 {key,value} 等同于 matchExpressions 的一个元素,其 key 字段是 'key',运算符是 'In',值数组仅包含 'value'。要求的逻辑关系是 AND。 |
16.1.24. .spec.ingress[].from[].podSelector.matchExpressions
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
array
16.1.25. .spec.ingress[].from[].podSelector.matchExpressions[]
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |
16.1.26. .spec.ingress[].ports
- 描述
- 应该可在为此规则选择的 pod 上访问的端口列表。此列表中的每个项目都使用逻辑 OR 合并。如果此字段为空或缺失,此规则匹配所有端口(不受端口限制的流量)。如果此字段至少包含一个项,则此规则仅在流量至少与列表中的一个端口匹配时才允许流量。
- 类型
-
array
16.1.27. .spec.ingress[].ports[]
- 描述
- NetworkPolicyPort 描述了允许流量的端口
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| 给定协议上的端口。这可以是 pod 上的数字或指定端口。如果没有提供此字段,则匹配所有端口名称和编号。 |
|
| 流量必须匹配的协议(TCP、UDP 或 SCTP)。如果没有指定,此字段默认为 TCP。 |
16.1.28. .spec.podSelector
- 描述
- 这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。 |
|
| 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。 |
|
|
16.1.29. .spec.podSelector.matchExpressions
- 描述
- matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
- 类型
-
array
16.1.30. .spec.podSelector.matchExpressions[]
- 描述
- 标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
- 类型
-
object
- 必填
-
key
-
operator
-
属性 | 类型 | 描述 |
---|---|---|
|
| key 是选择器应用到的标签键。 |
|
| 运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。 |
|
| 值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。 |