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