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