Kubernetes - Política de rede

A política de rede define como os pods no mesmo namespace se comunicarão entre si e com o endpoint da rede. Isso requerextensions/v1beta1/networkpoliciesa ser ativado na configuração de tempo de execução no servidor API. Seus recursos usam rótulos para selecionar os pods e definir regras para permitir o tráfego para um pod específico, além do que é definido no namespace.

Primeiro, precisamos configurar a Política de Isolamento de Namespace. Basicamente, esse tipo de política de rede é necessário nos balanceadores de carga.

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\"}}"

Uma vez que o namespace é criado, precisamos criar a Política de Rede.

Política de rede 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