以下是一个简单的网络策略的示例:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-nginx
spec:
podSelector:
matchLabels:
app: nginx
ingress:
- from:
- podSelector:
matchLabels:
role: frontend
ports:
- protocol: TCP
port: 80
这个网络策略的规则如下:
- podSelector: 匹配具有标签 app: nginx 的所有 Pod。
- ingress: 定义了允许从哪些 Pod 进入匹配的 Pod。
- podSelector: 匹配具有标签 role: frontend 的 Pod。
- ports: 允许 TCP 协议的流量通过端口 80。
上述示例中,只有具有标签 app: nginx 的 Pod 才能从具有标签 role: frontend 的 Pod 中接收 TCP 流量,而其他 Pod 的流量将被阻止。
要应用网络策略,你可以使用 kubectl apply 命令:
kubectl apply -f your-network-policy.yaml
请注意以下几点:
1. 确保你的 Kubernetes 集群中启用了网络插件,且该插件支持网络策略。
2. 网络策略只在支持该功能的网络插件中生效。例如,Calico 和 Cilium 是一些支持网络策略的网络插件。
3. 确保你的 Pod 具有适当的标签,以匹配网络策略中的选择器条件。
网络策略是 Kubernetes 中用于实现微服务网络安全的一种关键机制,可以帮助你限制 Pod 之间的通信,增强集群的安全性。
转载请注明出处:http://www.zyzy.cn/article/detail/9856/Kubernetes