网络策略(NetworkPolicy)是一种关于 Pod 间及与其他网络端点间所允许的通信规则的规范。

NetworkPolicy 资源使用 标签 选择 Pod,并定义选定 Pod 所允许的通信规则。

前提

网络策略通过网络插件 来实现。要使用网络策略,用户必须使用支持 NetworkPolicy 的网络解决方案。 创建一个资源对象,而没有控制器来使它生效的话,是没有任何作用的。

隔离和非隔离的 Pod

默认情况下,Pod 是非隔离的,它们接受任何来源的流量。

Pod 可以通过相关的网络策略进行隔离。一旦命名空间中有网络策略选择了特定的 Pod, 该 Pod 会拒绝网络策略所不允许的连接。 (命名空间下其他未被网络策略所选择的 Pod 会继续接收所有的流量)

网络策略不会冲突,它们是累积的。 如果任何一个或多个策略选择了一个 Pod, 则该 Pod 受限于这些策略的 ingress/egress 规则的并集。因此评估的顺序并不会影响策略的结果。

默认策略
默认拒绝所有入口流量
默认允许所有入口流量
默认拒绝所有出口流量
默认允许所有出口流量
默认拒绝所有入口和所有出口流量

更多高级参考教程:https://kubernetes.io/zh/docs/concepts/services-networking/network-policies/