NetworkPolicy
apiVersion: networking.k8s.io/v1
import "k8s.io/api/networking/v1"
NetworkPolicy
NetworkPolicy 描述了允许一组 Pod 进行哪些网络流量
**apiVersion**: networking.k8s.io/v1
**kind**: NetworkPolicy
**metadata** (ObjectMeta)
标准对象的元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
**spec** (NetworkPolicySpec)
spec 表示此 NetworkPolicy 的所需行为的规范。
NetworkPolicySpec
NetworkPolicySpec 提供 NetworkPolicy 的规范
**podSelector** (LabelSelector), 必需
podSelector 选择此 NetworkPolicy 对象适用的 Pod。ingress 规则数组将应用于此字段选择的任何 Pod。多个网络策略可以选择相同的 Pod 集。在这种情况下,每个的 ingress 规则将累加组合。此字段不是可选的,并遵循标准标签选择器语义。空 podSelector 匹配此命名空间中的所有 Pod。
**policyTypes** ([]string)
policyTypes 是 NetworkPolicy 相关的规则类型列表。有效选项为 ["Ingress"],["Egress"] 或 ["Ingress","Egress"]。如果此字段未指定,则将根据 ingress 或 egress 规则的存在进行默认设置;包含 egress 部分的策略假定会影响 egress,所有策略(无论是否包含 ingress 部分)都假定会影响 ingress。如果您想编写仅限 egress 的策略,则必须明确指定 policyTypes ["Egress"]。同样,如果您想编写指定不允许 egress 的策略,则必须指定包含 "Egress" 的 policyTypes 值(因为这样的策略不会包含 egress 部分,否则将默认为 ["Ingress"])。此字段在 1.8 中处于 beta 级
**ingress** ([]NetworkPolicyIngressRule)
ingress 是要应用于所选 Pod 的 ingress 规则列表。如果没有任何 NetworkPolicy 选择 Pod(并且集群策略允许流量),或者如果流量源是 Pod 的本地节点,或者如果流量与所有 NetworkPolicy 对象的所有 ingress 规则至少匹配一项(其 podSelector 与 Pod 匹配),则允许流量访问 Pod。如果此字段为空,则此 NetworkPolicy 不允许任何流量(并且仅用于确保它选择的 Pod 默认情况下是隔离的)
NetworkPolicyIngressRule 描述允许访问与 NetworkPolicySpec 的 podSelector 匹配的 Pod 的特定流量集。流量必须同时匹配端口和来源。
**ingress.from** ([]NetworkPolicyPeer)
from 是应该能够访问此规则所选 Pod 的来源列表。此列表中的项目使用逻辑 OR 操作组合。如果此字段为空或丢失,则此规则匹配所有来源(流量不受来源限制)。如果此字段存在且包含至少一项,则此规则仅允许流量如果流量与 from 列表中的至少一项匹配。
NetworkPolicyPeer 描述允许流量进出对等体。仅允许某些字段组合
**ingress.from.ipBlock** (IPBlock)
ipBlock 定义特定 IPBlock 上的策略。如果设置了此字段,则其他两个字段都不能设置。
IPBlock 描述允许访问与 NetworkPolicySpec 的 podSelector 匹配的 Pod 的特定 CIDR(例如“192.168.1.0/24”、“2001:db8::/64”)。except 条目描述了不应包含在此规则内的 CIDR。
**ingress.from.ipBlock.cidr** (string), 必需
cidr 是表示 IPBlock 的字符串。有效示例为“192.168.1.0/24”或“2001:db8::/64”。
**ingress.from.ipBlock.except** ([]string)
except 是不应包含在 IPBlock 中的 CIDR 切片。有效示例为“192.168.1.0/24”或“2001:db8::/64”。如果 Except 值在 cidr 范围之外,则将被拒绝。
**ingress.from.namespaceSelector** (LabelSelector)
namespaceSelector 使用集群范围的标签选择命名空间。此字段遵循标准标签选择器语义;如果存在但为空,则选择所有命名空间。
如果也设置了 podSelector,则整个 NetworkPolicyPeer 选择 namespaceSelector 选择的命名空间中的 podSelector 匹配的 Pod。否则,它将选择 namespaceSelector 选择的命名空间中的所有 Pod。
**ingress.from.podSelector** (LabelSelector)
podSelector 是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在但为空,则选择所有 Pod。
如果也设置了 namespaceSelector,则整个 NetworkPolicyPeer 选择 NamespaceSelector 选择的命名空间中的 podSelector 匹配的 Pod。否则,它将选择策略自身命名空间中的 podSelector 匹配的 Pod。
**ingress.ports** ([]NetworkPolicyPort)
ports 是应在为该规则选择的 Pod 上可访问的端口列表。此列表中的每个项目都使用逻辑 OR 组合。如果此字段为空或丢失,则此规则匹配所有端口(流量不受端口限制)。如果此字段存在且包含至少一项,则此规则仅允许流量如果流量与列表中的至少一个端口匹配。
**ingress.ports.port** (IntOrString)
port 表示给定协议上的端口。这可以是 Pod 上的数字端口或命名端口。如果此字段未提供,则匹配所有端口名称和编号。如果存在,则仅匹配指定协议和端口上的流量。
IntOrString 是一种可以保存 int32 或字符串的类型。在使用 JSON 或 YAML 序列化和反序列化时,它会生成或使用内部类型。这允许您具有例如可以接受名称或数字的 JSON 字段。
**ingress.ports.endPort** (int32)
endPort 表示如果设置了从 port 到 endPort 的端口范围(包括端点),则应由策略允许。如果 port 字段未定义,或者如果 port 字段定义为命名(字符串)端口,则无法定义此字段。endPort 必须等于或大于 port。
**ingress.ports.protocol** (string)
protocol 表示流量必须匹配的协议(TCP、UDP 或 SCTP)。如果未指定,则此字段默认为 TCP。
**egress** ([]NetworkPolicyEgressRule)
egress 是要应用于所选 Pod 的 egress 规则列表。如果没有任何 NetworkPolicy 选择 Pod(并且集群策略允许流量),或者如果流量与所有 NetworkPolicy 对象的所有 egress 规则至少匹配一项(其 podSelector 与 Pod 匹配),则允许出站流量。如果此字段为空,则此 NetworkPolicy 限制所有出站流量(并且仅用于确保它选择的 Pod 默认情况下是隔离的)。此字段在 1.8 中处于 beta 级
NetworkPolicyEgressRule 描述允许离开与 NetworkPolicySpec 的 podSelector 匹配的 Pod 的特定流量集。流量必须同时匹配端口和目标。此类型在 1.8 中处于 beta 级
**egress.to** ([]NetworkPolicyPeer)
to 是为该规则选择的 Pod 的出站流量目标列表。此列表中的项目使用逻辑 OR 操作组合。如果此字段为空或丢失,则此规则匹配所有目标(流量不受目标限制)。如果此字段存在且包含至少一项,则此规则仅允许流量如果流量与 to 列表中的至少一项匹配。
NetworkPolicyPeer 描述允许流量进出对等体。仅允许某些字段组合
**egress.to.ipBlock** (IPBlock)
ipBlock 定义特定 IPBlock 上的策略。如果设置了此字段,则其他两个字段都不能设置。
IPBlock 描述允许访问与 NetworkPolicySpec 的 podSelector 匹配的 Pod 的特定 CIDR(例如“192.168.1.0/24”、“2001:db8::/64”)。except 条目描述了不应包含在此规则内的 CIDR。
**egress.to.ipBlock.cidr** (string), 必需
cidr 是表示 IPBlock 的字符串。有效示例为“192.168.1.0/24”或“2001:db8::/64”。
**egress.to.ipBlock.except** ([]string)
except 是不应包含在 IPBlock 中的 CIDR 切片。有效示例为“192.168.1.0/24”或“2001:db8::/64”。如果 Except 值在 cidr 范围之外,则将被拒绝。
**egress.to.namespaceSelector** (LabelSelector)
namespaceSelector 使用集群范围的标签选择命名空间。此字段遵循标准标签选择器语义;如果存在但为空,则选择所有命名空间。
如果也设置了 podSelector,则整个 NetworkPolicyPeer 选择 namespaceSelector 选择的命名空间中的 podSelector 匹配的 Pod。否则,它将选择 namespaceSelector 选择的命名空间中的所有 Pod。
**egress.to.podSelector** (LabelSelector)
podSelector 是选择 Pod 的标签选择器。此字段遵循标准标签选择器语义;如果存在但为空,则选择所有 Pod。
如果也设置了 namespaceSelector,则整个 NetworkPolicyPeer 选择 NamespaceSelector 选择的命名空间中的 podSelector 匹配的 Pod。否则,它将选择策略自身命名空间中的 podSelector 匹配的 Pod。
**egress.ports** ([]NetworkPolicyPort)
ports 是出站流量的目标端口列表。此列表中的每个项目都使用逻辑 OR 组合。如果此字段为空或丢失,则此规则匹配所有端口(流量不受端口限制)。如果此字段存在且包含至少一项,则此规则仅允许流量如果流量与列表中的至少一个端口匹配。
**egress.ports.port** (IntOrString)
port 表示给定协议上的端口。这可以是 Pod 上的数字端口或命名端口。如果此字段未提供,则匹配所有端口名称和编号。如果存在,则仅匹配指定协议和端口上的流量。
IntOrString 是一种可以保存 int32 或字符串的类型。在使用 JSON 或 YAML 序列化和反序列化时,它会生成或使用内部类型。这允许您具有例如可以接受名称或数字的 JSON 字段。
**egress.ports.endPort** (int32)
endPort 表示如果设置了从 port 到 endPort 的端口范围(包括端点),则应由策略允许。如果 port 字段未定义,或者如果 port 字段定义为命名(字符串)端口,则无法定义此字段。endPort 必须等于或大于 port。
**egress.ports.protocol** (string)
protocol 表示流量必须匹配的协议(TCP、UDP 或 SCTP)。如果未指定,则此字段默认为 TCP。
NetworkPolicyList
NetworkPolicyList 是 NetworkPolicy 对象的列表。
**apiVersion**: networking.k8s.io/v1
**kind**: NetworkPolicyList
**metadata** (ListMeta)
标准列表元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
**items** ([]NetworkPolicy), 必需
items 是架构对象列表。
操作
get
读取指定的 NetworkPolicy
HTTP 请求
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
参数
**name** (在路径中): string, 必需
NetworkPolicy 的名称
**namespace** (在路径中): string, 必需
**pretty** (在查询中): string
响应
200 (NetworkPolicy): OK
401: 未经授权
list
列出或监视 NetworkPolicy 类型的对象
HTTP 请求
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
参数
**namespace** (在路径中): string, 必需
**allowWatchBookmarks** (在查询中): boolean
continue (查询中): 字符串
fieldSelector (查询中): 字符串
labelSelector (查询中): 字符串
limit (查询中): 整数
**pretty** (在查询中): string
resourceVersion (查询中): 字符串
resourceVersionMatch (查询中): 字符串
sendInitialEvents (查询中): 布尔值
timeoutSeconds (查询中): 整数
watch (查询中): 布尔值
响应
200 (NetworkPolicyList): 正常
401: 未经授权
list
列出或监视 NetworkPolicy 类型的对象
HTTP 请求
GET /apis/networking.k8s.io/v1/networkpolicies
参数
**allowWatchBookmarks** (在查询中): boolean
continue (查询中): 字符串
fieldSelector (查询中): 字符串
labelSelector (查询中): 字符串
limit (查询中): 整数
**pretty** (在查询中): string
resourceVersion (查询中): 字符串
resourceVersionMatch (查询中): 字符串
sendInitialEvents (查询中): 布尔值
timeoutSeconds (查询中): 整数
watch (查询中): 布尔值
响应
200 (NetworkPolicyList): 正常
401: 未经授权
create
创建一个 NetworkPolicy
HTTP 请求
POST /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
参数
**namespace** (在路径中): string, 必需
body: NetworkPolicy, 必需
dryRun (查询中): 字符串
fieldManager (查询中): 字符串
fieldValidation (查询中): 字符串
**pretty** (在查询中): string
响应
200 (NetworkPolicy): OK
201 (NetworkPolicy): 已创建
202 (NetworkPolicy): 已接受
401: 未经授权
update
替换指定的 NetworkPolicy
HTTP 请求
PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
参数
**name** (在路径中): string, 必需
NetworkPolicy 的名称
**namespace** (在路径中): string, 必需
body: NetworkPolicy, 必需
dryRun (查询中): 字符串
fieldManager (查询中): 字符串
fieldValidation (查询中): 字符串
**pretty** (在查询中): string
响应
200 (NetworkPolicy): OK
201 (NetworkPolicy): 已创建
401: 未经授权
patch
部分更新指定的 NetworkPolicy
HTTP 请求
PATCH /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
参数
**name** (在路径中): string, 必需
NetworkPolicy 的名称
**namespace** (在路径中): string, 必需
body: Patch, 必需
dryRun (查询中): 字符串
fieldManager (查询中): 字符串
fieldValidation (查询中): 字符串
force (查询中): 布尔值
**pretty** (在查询中): string
响应
200 (NetworkPolicy): OK
201 (NetworkPolicy): 已创建
401: 未经授权
delete
删除一个 NetworkPolicy
HTTP 请求
DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
参数
**name** (在路径中): string, 必需
NetworkPolicy 的名称
**namespace** (在路径中): string, 必需
body: DeleteOptions
dryRun (查询中): 字符串
gracePeriodSeconds (查询中): 整数
**pretty** (在查询中): string
propagationPolicy (查询中): 字符串
响应
200 (Status): 正常
202 (Status): 已接受
401: 未经授权
deletecollection
删除 NetworkPolicy 集合
HTTP 请求
DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
参数
**namespace** (在路径中): string, 必需
body: DeleteOptions
continue (查询中): 字符串
dryRun (查询中): 字符串
fieldSelector (查询中): 字符串
gracePeriodSeconds (查询中): 整数
labelSelector (查询中): 字符串
limit (查询中): 整数
**pretty** (在查询中): string
propagationPolicy (查询中): 字符串
resourceVersion (查询中): 字符串
resourceVersionMatch (查询中): 字符串
sendInitialEvents (查询中): 布尔值
timeoutSeconds (查询中): 整数
响应
200 (Status): 正常
401: 未经授权
此页面为自动生成。
如果您打算报告此页面问题,请在问题描述中提及页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。