第 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

字符串

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

kind

字符串

kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: 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

object

指定此 MultiNetworkPolicy 所需的行为。

16.1.1. .spec

描述
指定此 MultiNetworkPolicy 所需的行为。
类型
object
必填
  • podSelector
属性类型描述

egress

数组

要应用到所选 pod 的出口规则列表。如果没有 NetworkPolicies 选择 pod (和集群策略也允许流量),或者流量至少匹配 podSelector 与 pod 匹配的所有 NetworkPolicy 对象,则允许传出流量。如果此字段为空,则此 NetworkPolicy 会限制所有传出流量(且单独用于确保它选择的 pod 默认被隔离)。此字段在 1.8 中是 beta 级别

egress[]

object

NetworkPolicyEgressRule 描述了允许没有与 NetworkPolicySpec 的 pod 匹配的 pod 集合的流量。流量必须与端口 和 匹配。这个类型是 1.8 中的 beta 级别

ingress

数组

要应用到所选 pod 的 ingress 规则列表。如果没有 NetworkPolicies 选择 pod (并且集群策略允许流量),或者流量源是 pod 的本地节点,或者如果流量源是 pod 的本地节点,或者如果流量至少匹配 pod 的所有 NetworkPolicy 对象中的一个入站规则,则允许流量。如果此字段为空,则此 NetworkPolicy 不允许任何流量(只服务来确保它选择的 pod 默认被隔离)

ingress[]

object

NetworkPolicyIngressRule 描述了允许 pod 集合与 NetworkPolicySpec 的 pod 匹配的特定流量。流量必须与端口 和 from 匹配。

podSelector

object

这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。

policyTypes

数组(字符串)

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
属性类型描述

ports

数组

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

ports[]

object

NetworkPolicyPort 描述了允许流量的端口

数组

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

to[]

object

NetworkPolicyPeer 描述了允许来自流量的对等点。只允许某些字段组合

16.1.4. .spec.egress[].ports

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

16.1.5. .spec.egress[].ports[]

描述
NetworkPolicyPort 描述了允许流量的端口
类型
object
属性类型描述

port

integer-or-string

给定协议上的端口。这可以是 pod 上的数字或指定端口。如果没有提供此字段,则匹配所有端口名称和编号。

protocol

字符串

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

16.1.6. .spec.egress[].to

描述
为这个规则选择的 pod 的目的地列表。此列表中的项目使用逻辑 OR 操作来合并。如果此字段为空或缺失,此规则与所有目的地匹配(不受目的地限制的流量)。如果此字段至少存在并包含一项,则该规则仅在流量至少与 to 列表中某一项匹配时才允许流量。
类型
数组

16.1.7. .spec.egress[].to[]

描述
NetworkPolicyPeer 描述了允许来自流量的对等点。只允许某些字段组合
类型
对象
属性类型描述

ipBlock

对象

IPBlock 定义特定 IPBlock 的策略。如果设置了此字段,则不能有其他字段。

namespaceSelector

对象

使用集群范围的标签选择 Namespaces。此字段遵循标准标签选择器语义;如果存在,它会选择所有命名空间。如果也设置了 PodSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在 NamespaceSelector 中选择 Namespaces 中的所有 Pod。

podSelector

对象

这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。

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

描述
IPBlock 定义特定 IPBlock 的策略。如果设置了此字段,则不能有其他字段。
类型
对象
必填
  • cidr
属性类型描述

cidr

string

CIDR 是代表 IP 块有效期示例的字符串,是 '192.168.1.1/24'

except

数组(字符串)

除外,如果值不在 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

数组

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

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

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 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

数组

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

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

字符串

key 是选择器应用到的标签键。

operator

字符串

运算符代表一个键与一组值的关系。有效的运算符是 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
属性类型描述

from

array

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

from[]

object

NetworkPolicyPeer 描述了允许来自流量的对等点。只允许某些字段组合

ports

数组

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

ports[]

对象

NetworkPolicyPort 描述了允许流量的端口

16.1.17. .spec.ingress[].from

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

16.1.18. .spec.ingress[].from[]

描述
NetworkPolicyPeer 描述了允许来自流量的对等点。只允许某些字段组合
类型
对象
属性类型描述

ipBlock

object

IPBlock 定义特定 IPBlock 的策略。如果设置了此字段,则不能有其他字段。

namespaceSelector

object

使用集群范围的标签选择 Namespaces。此字段遵循标准标签选择器语义;如果存在,它会选择所有命名空间。如果也设置了 PodSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在 NamespaceSelector 中选择 Namespaces 中的所有 Pod。

podSelector

object

这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。

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

描述
IPBlock 定义特定 IPBlock 的策略。如果设置了此字段,则不能有其他字段。
类型
object
必填
  • cidr
属性类型描述

cidr

string

CIDR 是代表 IP 块有效期示例的字符串,是 '192.168.1.1/24'

except

数组(字符串)

除外,如果值不在 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

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

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

string

key 是选择器应用到的标签键。

operator

string

运算符代表一个键与一组值的关系。有效的运算符是 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

数组

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

对象

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

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

string

key 是选择器应用到的标签键。

operator

string

运算符代表一个键与一组值的关系。有效的运算符是 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
属性类型描述

port

integer-or-string

给定协议上的端口。这可以是 pod 上的数字或指定端口。如果没有提供此字段,则匹配所有端口名称和编号。

protocol

string

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

16.1.28. .spec.podSelector

描述
这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。
类型
object
属性类型描述

matchExpressions

array

matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。

matchExpressions[]

object

标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。

matchLabels

对象(字符串)

 

16.1.29. .spec.podSelector.matchExpressions

描述
matchExpressions 是标签选择器要求列表。要求的逻辑关系是 AND。
类型
array

16.1.30. .spec.podSelector.matchExpressions[]

描述
标签选择器要求是一个选择器,其中包含与键和值相关的值、键和值。
类型
object
必填
  • key
  • operator
属性类型描述

key

string

key 是选择器应用到的标签键。

operator

string

运算符代表一个键与一组值的关系。有效的运算符是 In、NotIn、Exists 和 DoesNotExist。

数组(字符串)

值是字符串值的数组。如果运算符是 In 或 NotIn,则值数组必须是非空的。如果运算符是 Exists 或 DoesNotExist,则值数组必须为空。这个数组会在策略性合并补丁中被替换。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.