- NetworkPolicy
- NetworkPolicy
- NetworkPolicySpec
- NetworkPolicyStatus
- NetworkPolicyList
- 操作
get
读取指定的 NetworkPolicyget
读取指定的 NetworkPolicy 的状态list
列出或监视 NetworkPolicy 类型的对象list
列出或监视 NetworkPolicy 类create
创建 NetworkPolicyupdate
替换指定的 NetworkPolicyupdate
替换指定的 NetworkPolicy 的状态patch
部分更新指定的 NetworkPolicypatch
部分更新指定的 NetworkPolicy 的状态delete
删除 NetworkPolicydeletecollection
删除 NetworkPolicy 的集合
NetworkPolicy
NetworkPolicy 描述针对一组 Pod 所允许的网络流量。
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 定义特定网络策略所需的所有信息.
status (NetworkPolicyStatus)
status 是 NetworkPolicy 的当前状态。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
NetworkPolicySpec
NetworkPolicySpec 定义特定 NetworkPolicy 所需的所有信息.
podSelector (LabelSelector),必需
podSelector 选择此网络策略所适用的一组 Pod。一组 Ingress 入口策略将应用于此字段选择的所有 Pod。 多个网络策略可以选择同一组 Pod。 在这种情况下,这些列表条目的 Ingress 规则效果会被叠加。此字段不是可选的,并且遵循标准标签选择算符语义。 空值的 podSelector 匹配此命名空间中的所有 Pod。
policyTypes ([]string)
NetworkPolicy 相关的规则类型列表。有效选项为
[“Ingress”]
、[“Egress”]
或[“Ingress”, “Egress”]
。 如果不指定此字段,则默认值取决是否存在 Ingress 或 Egress 规则;规则里包含 Egress 部分的策略将会影响出站流量, 并且所有策略(无论它们是否包含 Ingress 部分)都将会影响 入站流量。 如果要仅定义出站流量策略,则必须明确指定[ "Egress" ]
。 同样,如果要定义一个指定拒绝所有出站流量的策略,则必须指定一个包含 “Egress” 的 policyTypes 值 (因为这样不包含 Egress 部分的策略,将会被默认为只有 [ “Ingress” ] )。此字段在 1.8 中为 Beta。ingress ([]NetworkPolicyIngressRule)
定义所选 Pod 的入站规则列表。在没有被任何 NetworkPolicy 选择到 Pod 的情况下(同时假定集群策略允许对应流量), 或者如果流量源是 Pod 的本地节点,或者流量与所有 NetworkPolicy 中的至少一个入站规则(Ingress) 匹配, 则进入 Pod 的流量是被允许的。如果此字段为空,则此 NetworkPolicy 不允许任何入站流量 (这种设置用来确保它所选择的 Pod 在默认情况下是被隔离的)。
NetworkPolicyIngressRule 定义 NetworkPolicySpec 的 podSelector 所选 Pod 的入站规则的白名单列表, 流量必须同时匹配 ports 和 from 。
ingress.from ([]NetworkPolicyPeer)
流量来源列表,列表中的来源可以访问被此规则选中的 Pod。此列表中的流量来源使用逻辑或操作进行组合。 如果此字段为空值或缺失(未设置), 则此规则匹配所有流量来源(也即允许所有入站流量)。如果此字段存在并且至少包含一项来源,则仅当流量与来自列表中的至少一项匹配时, 此规则才允许流量访问被选中的 Pod 集合。
NetworkPolicyPeer 描述了允许进出流量的对等点。这个参数只允许某些字段组合。
ingress.from.ipBlock (IPBlock)
IPBlock 针对特定的 IP CIDR 范围设置策略。如果设置了此字段,则不可以设置其他字段。
IPBlock 定义一个特定的 CIDR 范围(例如
192.168.1.0/24
、2001:db8::/64
), 来自这个 IP 范围的流量来源将会被允许访问与 NetworkPolicySpec 的 podSelector 匹配的 Pod 集合。 except 字段则设置应排除在此规则之外的 CIDR 范围。ingress.from.ipBlock.cidr (string),必需
CIDR 是指定 IP 组块的字符串,例如
"192.168.1.0/24"
或"2001:db8::/64"
。ingress.from.ipBlock.except ([]string)
except 是一个由 CIDR 范围组成的列表,其中指定的 CIDR 都应排除在此 IP 区块范围之外。 例如
"192.168.1.0/24"
或"2001:db8::/64"
。 如果 except 字段的值超出 ipBlock.cidr 的范围则被视为无效策略。
ingress.from.namespaceSelector (LabelSelector)
此选择器使用集群范围标签来选择特定的 Namespace。此字段遵循标准标签选择算符语义; 如果此字段存在但为空值,则会选择所有名字空间。
如果 podSelector 也被定义了, 那么 NetworkPolicyPeer 将选择那些同时满足 namespaceSelector 所选名字空间下和 podSelector 规则匹配的 Pod。 反之选择 namespaceSelector 所选名字空间下所有的 Pod。
ingress.from.podSelector (LabelSelector)
这个标签选择算符负责选择 Pod。该字段遵循标准标签选择算符语义;如果字段存在但为空值,则选择所有 Pod。
如果 namespaceSelector 也被定义,那么 NetworkPolicyPeer 将选择那些同时满足 namespaceSelector 定义的名字空间下和 podSelector 规则匹配的 Pod。 反之会在策略所在的名字空间中选择与 podSelector 匹配的 Pod。
ingress.ports ([]NetworkPolicyPort)
定义在此规则选中的 Pod 上应可访问的端口列表。此列表中的个项目使用逻辑或操作组合。如果此字段为空或缺失, 则此规则匹配所有端口(进入流量可访问任何端口)。 如果此字段存在并且包含至少一个有效值,则此规则仅在流量至少匹配列表中的一个端口时才允许访问。
NetworkPolicyPort 定义可以连接的端口
ingress.ports.port (IntOrString)
给定协议上的端口。字段值可以是 Pod 上的数字或命名端口。如果未提供此字段,则匹配所有端口名和端口号。 如果定义了,则仅允许对给定的协议和端口的入口流量。
IntOrString 是一种可以包含 int32 或字符串值的类型。在 JSON 或 YAML 编组和解组中使用时,它会生成或使用内部类型。 例如,这允许你拥有一个可以接受名称或数字的 JSON 字段。
ingress.ports.endPort (int32)
如果设置了此字段,则表明策略应该允许 port 与 endPort 之间(包含二者)的所有端口。 如果未定义 port 或将 port 字段值为命名端口(字符串),则不可以使用 endPort。 endPort 必须等于或大于 port 值。
ingress.ports.protocol (string)
流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果未指定,此字段默认为 TCP。
egress ([]NetworkPolicyEgressRule)
egress 定义所选 Pod 的出站规则的列表。如果没有 NetworkPolicy 选中指定 Pod(并且其他集群策略也允许出口流量), 或者在所有通过 podSelector 选中了某 Pod 的 NetworkPolicy 中,至少有一条出站规则与出站流量匹配, 则该 Pod 的出站流量是被允许的。 如果此字段为空,则此 NetworkPolicy 拒绝所有出站流量(这策略可以确保它所选中的 Pod 在默认情况下是被隔离的)。 egress 字段在 1.8 中为 Beta 级别。
NetworkPolicyEgressRule 针对被 NetworkPolicySpec 的 podSelector 所选中 Pod,描述其被允许的出站流量。 流量必须同时匹配 ports 和 to 设置。此类型在 1.8 中为 Beta 级别。
egress.to ([]NetworkPolicyPeer)
针对此规则所选择的 Pod 的出口流量的目的地列表。此列表中的目的地使用逻辑或操作进行组合。如果此字段为空或缺失, 则此规则匹配所有目的地(流量不受目的地限制)。如果此字段存在且至少包含一项目的地,则仅当流量与目标列表中的至少一个匹配时, 此规则才允许出口流量。
NetworkPolicyPeer 描述允许进出流量的对等点。这个对象只允许某些字段组合。
egress.to.ipBlock (IPBlock)
ipBlock 针对特定的 IP 区块定义策略。如果设置了此字段,则其他不可以设置其他字段。
IPBlock 描述一个特定的 CIDR 范围(例如
192.168.1.0/24
、2001:db8::/64
), 与 NetworkPolicySpec 的 podSelector 匹配的 Pod 将被允许连接到这个 IP 范围,作为其出口流量目的地。 except 字段则设置了不被此规则影响的 CIDR 范围。egress.to.ipBlock.cidr (string),必需
CIDR 是用来表达 IP 组块的字符串,例如
"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 的值超出 ipBlock.cidr 的范围则被拒绝。
egress.to.namespaceSelector (LabelSelector)
此选择算符使用集群范围标签来选择特定的名字空间。该字段遵循标准标签选择算符语义; 如果字段存在但为空值,那会选择所有名字空间。
如果 egress.to.podSelector 也被定义了, 那么 NetworkPolicyPeer 将选择那些同时满足 namespaceSelector 指定的名字空间下和 podSelector 规则匹配的 Pod。 反之选择 namespaceSelector 指定的名字空间下所有的 Pod。
egress.to.podSelector (LabelSelector)
这个标签选择器负责选择一组 Pod。该字段遵循标准标签选择算符语义; 如果字段存在但为空值,则选择所有 Pod。
如果 egress.to.namespaceSelector 也被定义,则 NetworkPolicyPeer 将选择 namespaceSelector 所指定的名字空间下和 podSelector 规则匹配的 Pod。 反之会在策略所属的名字空间中选择与 podSelector 匹配的 Pod。
egress.ports ([]NetworkPolicyPort)
出站流量目的地的端口列表。此列表中的各个项目使用逻辑或操作进行组合。如果此字段为空或缺失, 则此规则匹配所有端口(可访问出口流量目的地的任何端口)。如果此字段存在并且包含至少一个有效值, 则此规则仅在流量与列表中的至少一个端口匹配时才允许访问。
NetworkPolicyPort 定义出口流量目的地的端口。
egress.ports.port (IntOrString)
给定协议上的端口。字段值可以是 Pod 上的数字或命名端口。如果未提供此字段,则匹配所有端口名和端口号。 如果定义此字段,则仅允许针对给定的协议和端口的出站流量。
IntOrString 是一种可以包含 int32 或字符串值的类型。在 JSON 或 YAML 编组和解组中使用时,它会生成或使用内部类型。 例如,这允许你拥有一个可以接受名称或数字的 JSON 字段。
egress.ports.endPort (int32)
如果设置了 endPort,则用来指定策略所允许的从 port 到 endPort 的端口范围(包含边界值)。 如果未设置 port 或 port 字段值为端口名称(字符串),则不可以指定 endPort。 endPort 必须等于或大于 port 值。
egress.ports.protocol (string)
流量必须匹配的网络协议(TCP、UDP 或 SCTP)。如果未指定,此字段默认为 TCP。
NetworkPolicyStatus
NetworkPolicyStatus 描述有关此 NetworkPolicy 的当前状态。
conditions ([]Condition)
补丁策略:根据
type
键执行合并操作Map:键 type 的唯一值将在合并期间被保留
conditions 包含描述此 NetworkPolicy 状态的 metav1.Condition 数组,即当前服务状态。
Condition 包含此 API 资源当前状态的一个方面的详细信息。
conditions.lastTransitionTime (Time),必需
lastTransitionTime 是状况最近一次从一种状态转换到另一种状态的时间。 这种变化通常出现在下层状况发生变化的时候。如果无法了解下层状况变化,使用 API 字段更改的时间也是可以接受的。
Time 是 time.Time 的包装器,它支持对 YAML 和 JSON 的正确编组。 time 包的许多工厂方法提供了包装器。
conditions.message (string),必需
message 是一条人类可读的消息,指示有关转换的详细信息。它可能是一个空字符串。
conditions.reason (string),必需
reason 包含一个程序标识符,指示状况最后一次转换的原因。 特定状况类型的生产者可以定义该字段的预期值和含义,以及这些值是否可被视为有保证的 API。 该值应该是 CamelCase 字符串。此字段不能为空。
conditions.status (string),必需
状况的状态为 True、False、Unknown 之一。
conditions.type (string),必需
CamelCase 或 foo.example.com/CamelCase 形式的状况类型。
conditions.observedGeneration (int64)
observedGeneration 表示设置状况时所基于的
.metadata.generation
。 例如,如果.metadata.generation
当前为 12,但.status.conditions[x].observedGeneration
为 9, 则状况相对于实例的当前状态已过期。
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 是 NetworkPolicy 的列表。
操作
get
读取指定的 NetworkPolicy
HTTP 请求
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
参数
name (路径参数): string,必需
NetworkPolicy 的名称。
namespace (路径参数): string,必需
pretty (查询参数): string
响应
200 (NetworkPolicy): OK
401: Unauthorized
get
读取指定的 NetworkPolicy 的状态
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}/status
参数
name (路径参数): string,必需
NetworkPolicy 的名称。
namespace (路径参数): string,必需
pretty (查询参数): string
响应
200 (NetworkPolicy): OK
401: Unauthorized
list
列出或监视 NetworkPolicy 类型的对象
HTTP 请求
GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
参数
namespace (路径参数): string,必需
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (NetworkPolicyList): OK
401: Unauthorized
list
列出或监视 NetworkPolicy 类
HTTP Request
GET /apis/networking.k8s.io/v1/networkpolicies
参数
allowWatchBookmarks (查询参数): boolean
continue (查询参数): string
fieldSelector (查询参数): string
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
timeoutSeconds (查询参数): integer
watch (查询参数): boolean
响应
200 (NetworkPolicyList): OK
401: Unauthorized
create
创建 NetworkPolicy
HTTP 请求
POST /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
参数
namespace (路径参数): string,必需
body: NetworkPolicy,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (NetworkPolicy): OK
201 (NetworkPolicy): Created
202 (NetworkPolicy): Accepted
401: Unauthorized
update
替换指定的 NetworkPolicy
HTTP 请求
PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
参数
name (路径参数): string,必需
NetworkPolicy 的名称。
namespace (路径参数): string,必需
body: NetworkPolicy,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (NetworkPolicy): OK
201 (NetworkPolicy): Created
401: Unauthorized
update
替换指定的 NetworkPolicy 的状态
HTTP 请求
PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}/status
参数
name (路径参数): string,必需
NetworkPolicy 的名称。
namespace (路径参数): string,必需
body: NetworkPolicy,必需
dryRun (查询参数): string
fieldManager (查询参数): string
fieldValidation (查询参数): string
pretty (查询参数): string
响应
200 (NetworkPolicy): OK
201 (NetworkPolicy): Created
401: Unauthorized
patch
部分更新指定的 NetworkPolicy
HTTP 请求
PATCH /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: Unauthorized
patch
部分更新指定的 NetworkPolicy 的状态
HTTP 请求
PATCH /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}/status
参数
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: Unauthorized
delete
删除 NetworkPolicy
HTTP 请求
DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}
参数
name (路径参数): string,必需
NetworkPolicy 的名称。
namespace (路径参数): string,必需
body: DeleteOptions
dryRun (查询参数): string
gracePeriodSeconds (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
响应
200 (Status): OK
202 (Status): Accepted
401: Unauthorized
deletecollection
删除 NetworkPolicy 的集合
HTTP 请求
DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies
参数
namespace (路径参数): string,必需
body: DeleteOptions
continue (查询参数): string
dryRun (查询参数): string
fieldSelector (查询参数): string
gracePeriodSeconds (查询参数): integer
labelSelector (查询参数): string
limit (查询参数): integer
pretty (查询参数): string
propagationPolicy (查询参数): string
resourceVersion (查询参数): string
resourceVersionMatch (查询参数): string
timeoutSeconds (查询参数): integer
响应
200 (Status): OK
401: Unauthorized