apiVersion: networking.k8s.io/v1
import "k8s.io/api/networking/v1"
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 提供了 NetworkPolicy 的规范
podSelector (LabelSelector)
podSelector 选择该 NetworkPolicy 对象适用的 Pod。规则数组应用于此字段选择的任何 Pod。空选择器匹配策略命名空间中的所有 Pod。多个网络策略可以选择同一组 Pod。在这种情况下,每个策略的入站(Ingress)规则会合并。此字段是可选的。如果未指定,则默认为空选择器。
policyTypes ([]string)
原子:将在合并期间被替换
policyTypes 是 NetworkPolicy 所关联的规则类型列表。有效选项为 ["Ingress"]、["Egress"] 或 ["Ingress", "Egress"]。如果未指定此字段,将根据是否存在入站或出站规则进行默认设置;包含出站部分被认为会影响出站,所有策略(无论是否包含入站部分)都被认为会影响入站。如果你想编写一个仅限出站的策略,你必须显式指定 policyTypes [ "Egress" ]。同样,如果你想编写一个规定禁止出站的策略,你必须指定一个包含 "Egress" 的 policyTypes 值(因为这样的策略不会包含出站部分,否则默认只会包含 [ "Ingress" ])。此字段在 1.8 中为 beta 级别
ingress ([]NetworkPolicyIngressRule)
原子:将在合并期间被替换
ingress 是应用于所选 Pod 的入站规则列表。如果没有任何 NetworkPolicy 选择该 Pod(且集群策略允许流量),或者流量源是 Pod 的本地节点,或者流量匹配所有 podSelector 匹配该 Pod 的 NetworkPolicy 对象中的至少一条入站规则,则允许流量进入 Pod。如果此字段为空,则该 NetworkPolicy 不允许任何流量(仅用于确保其选择的 Pod 在默认情况下是隔离的)
NetworkPolicyIngressRule 描述了允许进入与 NetworkPolicySpec 的 podSelector 相匹配的 Pod 的特定流量集。流量必须同时匹配 ports 和 from。
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), required
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 组合。如果此字段为空或缺失,则此规则匹配所有端口(流量不受端口限制)。如果此字段存在且至少包含一项,则此规则仅在流量匹配列表中的至少一个端口时才允许流量。
NetworkPolicyPort 描述了允许流量通过的端口
ingress.ports.port (IntOrString)
port 表示给定协议上的端口。这可以是 Pod 上的数字端口或命名端口。如果未提供此字段,则匹配所有端口名称和数字。如果提供,则仅匹配指定协议 AND 端口上的流量。
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。
可能的枚举值
"SCTP" 是 SCTP 协议。"TCP" 是 TCP 协议。"UDP" 是 UDP 协议。egress ([]NetworkPolicyEgressRule)
原子:将在合并期间被替换
egress 是应用于所选 Pod 的出站规则列表。如果没有 NetworkPolicy 选择该 Pod(且集群策略允许流量),或者流量匹配所有 podSelector 匹配该 Pod 的 NetworkPolicy 对象中的至少一条出站规则,则允许外发流量。如果此字段为空,则该 NetworkPolicy 限制所有外发流量(仅用于确保其选择的 Pod 在默认情况下是隔离的)。此字段在 1.8 中为 beta 级别
NetworkPolicyEgressRule 描述了允许从与 NetworkPolicySpec 的 podSelector 相匹配的 Pod 发出的特定流量集。流量必须同时匹配 ports 和 to。此类型在 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), required
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 组合。如果此字段为空或缺失,则此规则匹配所有端口(流量不受端口限制)。如果此字段存在且至少包含一项,则此规则仅在流量匹配列表中的至少一个端口时才允许流量。
NetworkPolicyPort 描述了允许流量通过的端口
egress.ports.port (IntOrString)
port 表示给定协议上的端口。这可以是 Pod 上的数字端口或命名端口。如果未提供此字段,则匹配所有端口名称和数字。如果提供,则仅匹配指定协议 AND 端口上的流量。
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。
可能的枚举值
"SCTP" 是 SCTP 协议。"TCP" 是 TCP 协议。"UDP" 是 UDP 协议。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), required
items 是一个模式对象列表。
get 读取指定的 NetworkPolicyGET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
200 (NetworkPolicy): OK
401: 未授权
list 列出或监视 NetworkPolicy 类型的对象GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
namespace (在路径中): string, 必需
allowWatchBookmarks (in query): boolean
continue (in query): string
fieldSelector (in query): string
labelSelector (in query): string
limit (in query): integer
pretty (在查询中): string
resourceVersion (in query): string
resourceVersionMatch (in query): string
sendInitialEvents (in query): boolean
timeoutSeconds (in query): integer
watch (in query): boolean
200 (NetworkPolicyList): OK
401: 未授权
list 列出或监视 NetworkPolicy 类型的对象GET /apis/networking.k8s.io/v1/networkpolicies
allowWatchBookmarks (in query): boolean
continue (in query): string
fieldSelector (in query): string
labelSelector (in query): string
limit (in query): integer
pretty (在查询中): string
resourceVersion (in query): string
resourceVersionMatch (in query): string
sendInitialEvents (in query): boolean
timeoutSeconds (in query): integer
watch (in query): boolean
200 (NetworkPolicyList): OK
401: 未授权
create 创建 NetworkPolicyPOST /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
namespace (在路径中): string, 必需
body: NetworkPolicy, required
dryRun (在查询中): string
fieldManager (在查询中): string
fieldValidation (在查询中): string
pretty (在查询中): string
200 (NetworkPolicy): OK
201 (NetworkPolicy): Created
202 (NetworkPolicy): Accepted
401: 未授权
update 替换指定的 NetworkPolicyPUT /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
name (在路径中): string, 必需
NetworkPolicy 的名称
namespace (在路径中): string, 必需
body: NetworkPolicy, required
dryRun (在查询中): string
fieldManager (在查询中): string
fieldValidation (在查询中): string
pretty (在查询中): string
200 (NetworkPolicy): OK
201 (NetworkPolicy): Created
401: 未授权
patch 局部更新指定的 NetworkPolicyPATCH /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
name (在路径中): string, 必需
NetworkPolicy 的名称
namespace (在路径中): string, 必需
body: Patch, 必需
dryRun (在查询中): string
fieldManager (在查询中): string
fieldValidation (在查询中): string
force (in query): boolean
pretty (在查询中): string
200 (NetworkPolicy): OK
201 (NetworkPolicy): Created
401: 未授权
delete 删除 NetworkPolicyDELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
name (在路径中): string, 必需
NetworkPolicy 的名称
namespace (在路径中): string, 必需
body: DeleteOptions
dryRun (在查询中): string
gracePeriodSeconds (in query): integer
ignoreStoreReadErrorWithClusterBreakingPotential (in query): boolean
pretty (在查询中): string
propagationPolicy (in query): string
200 (Status): 确定
202 (Status): 已接受
401: 未授权
deletecollection 删除 NetworkPolicy 集合DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
namespace (在路径中): string, 必需
body: DeleteOptions
continue (in query): string
dryRun (在查询中): string
fieldSelector (in query): string
gracePeriodSeconds (in query): integer
ignoreStoreReadErrorWithClusterBreakingPotential (in query): boolean
labelSelector (in query): string
limit (in query): integer
pretty (在查询中): string
propagationPolicy (in query): string
resourceVersion (in query): string
resourceVersionMatch (in query): string
sendInitialEvents (in query): boolean
timeoutSeconds (in query): integer
200 (Status): 确定
401: 未授权
本页面是自动生成的。
如果您打算报告此页面的问题,请在您的问题描述中提及该页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。