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。 入口规则数组应用于此字段选择的任何 Pod。 多个网络策略可以选择同一组 Pod。 在这种情况下,每个的入口规则都是累加组合的。 此字段不是可选的,并遵循标准的标签选择器语义。 空的 podSelector 匹配此命名空间中的所有 Pod。
policyTypes ([]string)
原子:将在合并期间被替换
policyTypes 是 NetworkPolicy 相关的规则类型列表。有效选项是 ["Ingress"]、["Egress"] 或 ["Ingress", "Egress"]。如果未指定此字段,它将根据入口或出口规则的存在而默认;包含出口部分的策略被认为会影响出口,并且所有策略(无论是否包含入口部分)都被认为会影响入口。 如果您要编写仅出口策略,则必须显式指定 policyTypes [ "Egress" ]。同样,如果要编写一个指定不允许任何出口的策略,则必须指定包含“Egress”的 policyTypes 值(因为这样的策略不包含出口部分,否则将默认仅为 [“Ingress”])。此字段在 1.8 中是 Beta 级别的
ingress ([]NetworkPolicyIngressRule)
原子:将在合并期间被替换
ingress 是要应用于所选 Pod 的入口规则列表。 如果没有选择 Pod 的 NetworkPolicies(并且集群策略允许该流量),或者如果流量源是 Pod 的本地节点,或者如果流量匹配至少一个入口规则(跨所有 podSelector 与 Pod 匹配的 NetworkPolicy 对象),则允许流量到 Pod。如果此字段为空,则此 NetworkPolicy 不允许任何流量(并且仅用于确保默认情况下它选择的 Pod 是隔离的)
NetworkPolicyIngressRule 描述了允许到 NetworkPolicySpec 的 podSelector 匹配的 Pod 的特定流量集。 流量必须同时匹配端口和来源。
ingress.from ([]NetworkPolicyPeer)
原子:将在合并期间被替换
from 是应该能够访问为此规则选择的 Pod 的源列表。 此列表中的项目使用逻辑 OR 操作组合。 如果此字段为空或缺失,则此规则匹配所有源(不受源限制的流量)。 如果此字段存在并且包含至少一项,则仅当流量与 from 列表中至少一项匹配时,此规则才允许流量。
NetworkPolicyPeer 描述允许流量进出的对等方。 只允许某些字段组合
ingress.from.ipBlock (IPBlock)
ipBlock 定义特定 IPBlock 上的策略。 如果设置了此字段,则不能设置其他任何字段。
IPBlock 描述了一个特定的 CIDR(例如“192.168.1.0/24”、“2001:db8::/64”),该 CIDR 允许访问 NetworkPolicySpec 的 podSelector 匹配的 Pod。 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 的端口范围(包括)。 如果未定义端口字段或端口字段定义为命名(字符串)端口,则无法定义此字段。 endPort 必须大于或等于 port。
ingress.ports.protocol (string)
protocol 表示流量必须匹配的协议(TCP、UDP 或 SCTP)。 如果未指定,则此字段默认为 TCP。
egress ([]NetworkPolicyEgressRule)
原子:将在合并期间被替换
egress 是要应用于所选 Pod 的出口规则列表。 如果没有选择 Pod 的 NetworkPolicies(并且集群策略允许该流量),或者如果流量与跨所有 podSelector 与 Pod 匹配的 NetworkPolicy 对象匹配至少一个出口规则,则允许传出流量。 如果此字段为空,则此 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 描述了一个特定的 CIDR(例如“192.168.1.0/24”、“2001:db8::/64”),该 CIDR 允许访问 NetworkPolicySpec 的 podSelector 匹配的 Pod。 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 的端口范围(包括)。 如果未定义端口字段或端口字段定义为命名(字符串)端口,则无法定义此字段。 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}
参数
响应
200 (NetworkPolicy): 成功
401: 未授权
list
列出或监听 NetworkPolicy 类型的对象
HTTP 请求
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
参数
namespace (在路径中): 字符串,必需
allowWatchBookmarks (在查询中): 布尔值
continue (在查询中): 字符串
fieldSelector (在查询中): 字符串
labelSelector (在查询中): 字符串
limit (在查询中): 整数
pretty (在查询中): 字符串
resourceVersion (在查询中): 字符串
resourceVersionMatch (在查询中): 字符串
sendInitialEvents (在查询中): 布尔值
timeoutSeconds (在查询中): 整数
watch (在查询中): 布尔值
响应
200 (NetworkPolicyList): 成功
401: 未授权
list
列出或监听 NetworkPolicy 类型的对象
HTTP 请求
GET /apis/networking.k8s.io/v1/networkpolicies
参数
allowWatchBookmarks (在查询中): 布尔值
continue (在查询中): 字符串
fieldSelector (在查询中): 字符串
labelSelector (在查询中): 字符串
limit (在查询中): 整数
pretty (在查询中): 字符串
resourceVersion (在查询中): 字符串
resourceVersionMatch (在查询中): 字符串
sendInitialEvents (在查询中): 布尔值
timeoutSeconds (在查询中): 整数
watch (在查询中): 布尔值
响应
200 (NetworkPolicyList): 成功
401: 未授权
create
创建一个 NetworkPolicy
HTTP 请求
POST /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
参数
namespace (在路径中): 字符串,必需
body: NetworkPolicy,必需
dryRun (在查询中): 字符串
fieldManager (在查询中): 字符串
fieldValidation (在查询中): 字符串
pretty (在查询中): 字符串
响应
200 (NetworkPolicy): 成功
201 (NetworkPolicy): 已创建
202 (NetworkPolicy): 已接受
401: 未授权
update
替换指定的 NetworkPolicy
HTTP 请求
PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
参数
name (在路径中): 字符串,必需
NetworkPolicy 的名称
namespace (在路径中): 字符串,必需
body: NetworkPolicy,必需
dryRun (在查询中): 字符串
fieldManager (在查询中): 字符串
fieldValidation (在查询中): 字符串
pretty (在查询中): 字符串
响应
200 (NetworkPolicy): 成功
201 (NetworkPolicy): 已创建
401: 未授权
patch
部分更新指定的 NetworkPolicy
HTTP 请求
PATCH /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
参数
name (在路径中): 字符串,必需
NetworkPolicy 的名称
namespace (在路径中): 字符串,必需
body: Patch,必需
dryRun (在查询中): 字符串
fieldManager (在查询中): 字符串
fieldValidation (在查询中): 字符串
force (在查询中): 布尔值
pretty (在查询中): 字符串
响应
200 (NetworkPolicy): 成功
201 (NetworkPolicy): 已创建
401: 未授权
delete
删除一个 NetworkPolicy
HTTP 请求
DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
参数
name (在路径中): 字符串,必需
NetworkPolicy 的名称
namespace (在路径中): 字符串,必需
body: DeleteOptions
dryRun (在查询中): 字符串
gracePeriodSeconds (在查询中): 整数
pretty (在查询中): 字符串
propagationPolicy (在查询中): 字符串
响应
200 (Status): 成功
202 (Status): 已接受
401: 未授权
deletecollection
删除 NetworkPolicy 集合
HTTP 请求
DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
参数
namespace (在路径中): 字符串,必需
body: DeleteOptions
continue (在查询中): 字符串
dryRun (在查询中): 字符串
fieldSelector (在查询中): 字符串
gracePeriodSeconds (在查询中): 整数
labelSelector (在查询中): 字符串
limit (在查询中): 整数
pretty (在查询中): 字符串
propagationPolicy (在查询中): 字符串
resourceVersion (在查询中): 字符串
resourceVersionMatch (在查询中): 字符串
sendInitialEvents (在查询中): 布尔值
timeoutSeconds (在查询中): 整数
响应
200 (Status): 成功
401: 未授权
此页面是自动生成的。
如果您计划报告此页面的问题,请在您的问题描述中提及此页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。