NetworkPolicy
的网络解决方案,比如 Calico 方案是支持网络策略的。创建 NetworkPolicy
资源,但是没有相关的控制器实现,策略本身是不生效的。可以类比 Ingress
如果没有 ingress-controller,本身的规则也是无意义的。podSelector
:每个 NetworkPolicy 包括一个 podSelector
用于选择策略所应用的 pods 分组。示例中策略选择器拥有 role: db
标签的 pods。空的 podSelector
匹配空间下的所有 pods。policyTypes
:每个 NetworkPolicy 包括一个 policyTypes
列表,包括 Ingress
,Egress
或两者都有。policyTypes
表示是否应用 ingress(入口) 流量到选定 pod 或者从选择的 pods 应用 egress(出口) 流量规则。 如果 NetworkPolicy 上未指定任何 policyTypes
,则默认情况下始终设置 Ingress
,如果 NetworkPolicy 具有任何出口规则,则设置 Egress
。ingress
:每个 NetworkPolicy 可以包括允许的 ingress
规则列表。每个规则允许匹配 from
和 ports
部分的流量。示例中包含一个规则,表示任何匹配源中都可以访问匹配的 Pod 的 6379 TCP 端口。egress
:每个 NetworkPolicy 可以包括允许的 egress 规则列表。每个规则允许匹配到 to
和 ports
部分的流量。示例中包含一个规则,表示匹配的 Pod 可以访问任何在网段 10.0.0.0/24 中的 5978 TCP 端口。to
和 from
选择器podSelector
:在 NetworkPolicy 同一空间下选择 Pods,作为 ingress 源或者 egress 目的地namespaceSelector
:选择特定空间下的所有 Pods,作为 ingress 源或者 egress 目的地to
或者 from
下的 namespaceSelector
和 podSelector
: to/from 下的条目,同时指定 namespaceSelector
和 podSelector
来指定特定的 podsipBlock
:选择特定的 IP CIDR 范围来允许 ingress 源或者 egress 目的地。这些应该用于集群外的 IP,因为 Pod IP 并不是固定的