Kubernetes(K8S) 网络策略

  • Kubernetes 网络策略

    网络策略定义相同名称空间中的Pod如何相互通信以及与网络端点进行通信。它要求在API服务器的运行时配置中启用extensions/v1beta1/networkpolicies。它的资源使用标签来选择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