Kubernetes 中的网络策略用于控制 Pod 之间的通信。它们定义的规则规定了哪些 Pod 可以在什么条件下相互通信,从而提高了应用程序的安全性。


下面的代码说明了如何创建只允许来自特定 Pod 的流量的网络策略。

[代码清单]

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
 name: allow-specific-pods
spec:
 podSelector:
  matchLabels:
   role: my-app
 policyTypes:
 \- Ingress
 ingress:
 \- from:
  \- podSelector:
    matchLabels:
     role: frontend

[执行结果]

应用此 YAML 配置不会产生直接输出,但会创建一个网络策略,只允许标签角色为:frontend 的 Pod 向标签角色为:my-app 的 Pod 发送流量。

网络策略的定义适用于具有标签角色:my-app 的 Pod。入口部分规定,只有标签角色为 frontend 的 Pod 才允许与这些 Pod 通信。默认情况下,除非网络策略明确允许,否则所有流量都会被拒绝,因此网络策略是确保 Pod 通信安全的强大工具。

[小知识]

网络策略由容器网络接口 (CNI) 插件实现,因此请确保您的 CNI 支持网络策略。

您可以为不同类型的流量(入口和出口)定义多个策略。

网络策略可以组合使用,在 Pod 之间创建复杂的通信模式,从而实现对网络流量的精细控制。