第 13 章 NetworkPolicy [networking.k8s.io/v1]


描述
NetworkPolicy 描述一组 Pod 允许哪些网络流量
类型
对象

13.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

对象

NetworkPolicySpec 提供 NetworkPolicy 的规格

status

object

NetworkPolicyStatus 描述 NetworkPolicy 的当前状态。

13.1.1. .spec

描述
NetworkPolicySpec 提供 NetworkPolicy 的规格
类型
object
必填
  • podSelector
属性类型描述

egress

array

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

egress[]

对象

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

ingress

array

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

ingress[]

对象

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

podSelector

LabelSelector

选择此 NetworkPolicy 对象应用到的 pod。ingress 规则数组应用到此字段选择的任何 pod。多个网络策略可以选择同一组 pod。在这种情况下,每个的入站规则都会有一定的合并。此字段不可选,并遵循标准标签选择器语义。空 podSelector 匹配此命名空间中的所有 pod。

policyTypes

数组(字符串)

NetworkPolicy 相关规则类型列表。有效选项为 ["Ingress"], ["Egress"], 或 ["Ingress", "Egress"]。如果没有指定此字段,它将基于 Ingress 或 Egress 规则的存在;包含 Egress 部分的策略被假定为对 Egress 的影响,并且所有策略(无论它们是否包含 Ingress 部分)都会影响 Ingress。如果要编写仅限出口的策略,您必须明确指定 policyTypes [ "Egress" ]。同样,如果您想要编写指定不允许出口的策略,您必须指定包含 "Egress" 的 policyTypes 值(因为这样的策略不包含 Egress 部分,否则将默认为 [ "Ingress" ]。此字段在 1.8 中是 beta 级别

13.1.2. .spec.egress

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

13.1.3. .spec.egress[]

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

ports

array

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

ports[]

对象

NetworkPolicyPort 描述了允许流量的端口

array

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

to[]

对象

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

13.1.4. .spec.egress[].ports

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

13.1.5. .spec.egress[].ports[]

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

endPort

整数

如果设置,则表示策略应允许从 port 到 endPort 的端口范围。如果没有定义 port 字段,或者 port 字段定义为命名(字符串)端口,则无法定义此字段。endPort 必须相等或大于 port。

port

IntOrString

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

protocol

字符串

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

13.1.6. .spec.egress[].to

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

13.1.7. .spec.egress[].to[]

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

ipBlock

对象

IPBlock 描述了特定的 CIDR (Ex)"192.168.1.0/24","2001:db8::/64"),允许与 NetworkPolicySpec 的 podSelector 匹配的 pod。例外条目描述了不应包含在此规则中的 CIDR。

namespaceSelector

LabelSelector

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

如果也设置了 PodSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在 NamespaceSelector 中选择 Namespaces 中的所有 Pod。

podSelector

LabelSelector

这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。

如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。

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

描述
IPBlock 描述了特定的 CIDR (Ex)"192.168.1.0/24","2001:db8::/64"),允许与 NetworkPolicySpec 的 podSelector 匹配的 pod。例外条目描述了不应包含在此规则中的 CIDR。
类型
object
必填
  • cidr
属性类型描述

cidr

string

CIDR 是代表 IP 块 Valid 示例的字符串,即 "192.168.1.0/24" 或 "2001:db8::/64"

except

数组(字符串)

例外是不应包含在 IP Block Valid 示例中的 CIDR 片段为 "192.168.1.0/24" 或 "2001:db8::/64" Except 值(如果它们位于 CIDR 范围之外)

13.1.9. .spec.ingress

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

13.1.10. .spec.ingress[]

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

from

array

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

from[]

对象

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

ports

array

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

ports[]

对象

NetworkPolicyPort 描述了允许流量的端口

13.1.11. .spec.ingress[].from

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

13.1.12. .spec.ingress[].from[]

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

ipBlock

对象

IPBlock 描述了特定的 CIDR (Ex)"192.168.1.0/24","2001:db8::/64"),允许与 NetworkPolicySpec 的 podSelector 匹配的 pod。例外条目描述了不应包含在此规则中的 CIDR。

namespaceSelector

LabelSelector

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

如果也设置了 PodSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在 NamespaceSelector 中选择 Namespaces 中的所有 Pod。

podSelector

LabelSelector

这是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在,它会选择所有 pod。

如果还设置了 NamespaceSelector,则 NetworkPolicyPeer 作为整个选择在 NamespaceSelector 选择的命名空间中匹配的 PodSelector 的 Pod。否则,它会在策略自己的命名空间中选择与 PodSelector 匹配的 Pod。

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

描述
IPBlock 描述了特定的 CIDR (Ex)"192.168.1.0/24","2001:db8::/64"),允许与 NetworkPolicySpec 的 podSelector 匹配的 pod。例外条目描述了不应包含在此规则中的 CIDR。
类型
object
必填
  • cidr
属性类型描述

cidr

string

CIDR 是代表 IP 块 Valid 示例的字符串,即 "192.168.1.0/24" 或 "2001:db8::/64"

except

数组(字符串)

例外是不应包含在 IP Block Valid 示例中的 CIDR 片段为 "192.168.1.0/24" 或 "2001:db8::/64" Except 值(如果它们位于 CIDR 范围之外)

13.1.14. .spec.ingress[].ports

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

13.1.15. .spec.ingress[].ports[]

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

endPort

整数

如果设置,则表示策略应允许从 port 到 endPort 的端口范围。如果没有定义 port 字段,或者 port 字段定义为命名(字符串)端口,则无法定义此字段。endPort 必须相等或大于 port。

port

IntOrString

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

protocol

字符串

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

13.1.16. .status

描述
NetworkPolicyStatus 描述 NetworkPolicy 的当前状态。
类型
object
属性类型描述

conditions

数组(条件)

Conditions 包含一组 metav1.Condition,用于描述 NetworkPolicy 的状态。当前服务状态

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.