Kubernetes 网络政策
网络策略定义了同一命名空间中的 Pod 如何相互通信以及如何与网络端点通信。它需要在 API 服务器的运行时配置中启用
extensions/v1beta1/networkpolicies。它的资源使用标签来选择 Pod,并定义规则以允许流量传输到特定 Pod 以及命名空间中定义的特定 Pod。
首先,我们需要配置命名空间隔离策略。基本上,负载平衡器需要这种网络策略。
kind: Namespace
apiVersion: v1
metadata:
annotations:
net.beta.kubernetes.io/network-policy: |
{
"ingress":
{
"isolation": "DefaultDeny"
}
}
$ kubectl annotate ns <namespace> "net.beta.kubernetes.io/network-policy =
{\"ingress\": {\"isolation\": \"DefaultDeny\"}}"
命名空间创建后,我们需要创建网络策略。
网络政策 Yaml
kind: NetworkPolicy
apiVersion: extensions/v1beta1
metadata:
name: allow-frontend
namespace: myns
spec:
podSelector:
matchLabels:
role: backend
ingress:
-from:
-podSelector:
matchLabels:
role: frontend
ports:
-protocol: TCP
port: 6379