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 之间创建复杂的通信模式,从而实现对网络流量的精细控制。