Nesta página, explicamos como melhorar a segurança de rede e o controle de tráfego no cluster configurando políticas de rede de várias redes que se aplicam especificamente a uma rede de pods designada. Essas políticas de rede de várias redes controlam o tráfego usando regras de firewall no nível do pod e controlam o fluxo de tráfego entre pods e serviços.
Para entender como funcionam as políticas de rede de várias redes, veja como as políticas Políticas trabalho com as redes de pods.
Requisitos
Para usar políticas de rede de várias redes, considere os seguintes requisitos:
- Google Cloud CLI versão 459 e posterior.
- Você precisa ter um cluster do GKE executando uma das seguintes versões:
- 1.28.5-gke.1293000 ou mais recente
- 1.29.0-gke.1484000 ou mais recente
- O cluster precisa usar o GKE Dataplane V2.
Limitações
Não há suporte para as políticas de rede FQDN e CiliumClusterWide: Se você usar uma política de rede FQDN e uma política de rede CiliumClusterWide em um pod conectado a várias redes, as políticas vão afetar todas as conexões do pod, incluindo aquelas em que as políticas não são aplicadas.
Configurar políticas de rede para várias redes
Para usar políticas de rede de várias redes, faça o seguinte:
- Crie um cluster com o GKE ativado para várias redes .
- Crie um pool de nós e uma rede de pods.
- Faça referência à rede do pod.
- Crie uma política de rede a ser aplicada que faça referência à mesma rede de pod utilizada pela carga de trabalho.
Antes de começar
Antes de começar, verifique se você realizou as tarefas a seguir:
- Ativar a API Google Kubernetes Engine. Ativar a API Google Kubernetes Engine
- Se você quiser usar a CLI do Google Cloud para essa tarefa,
instale e inicialize a
gcloud CLI. Se você instalou a CLI gcloud anteriormente, instale a versão
mais recente executando o comando
gcloud components update
. Talvez as versões anteriores da CLI gcloud não sejam compatíveis com a execução dos comandos neste documento.
Criar política de rede
Para criar uma política de rede que aplique regras na mesma rede do pod que a carga de trabalho, faça referência à rede do pod específica na política de rede definição.
Definir as regras de tráfego de entrada selecionadas e os pods de destino com base em rótulos ou outros seletores, crie uma política de rede padrão.
Salve o seguinte manifesto de amostra como
sample-ingress-network-policy1.yaml
:apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: sample-network-policy namespace: default annotations: networking.gke.io/network: blue-pod-network # GKE-specific annotation for network selection spec: podSelector: matchLabels: app: test-app-2 # Selects pods with the label "app: test-app-2" policyTypes: - Ingress # Specifies the policy applies only to incoming traffic ingress: - from: # Allow incoming traffic only from... - podSelector: matchLabels: app: test-app-1 # ...pods with the label "app: test-app-1"
Aplique o manifesto
sample-ingress-network-policy1.yaml
:kubectl apply -f sample-ingress-network-policy1.yaml
Definir as regras de tráfego de saída selecionadas e os pods de destino com base em rótulos ou outros seletores, crie uma política de rede padrão.
Salve o seguinte manifesto de amostra como
sample-egress-network-policy2.yaml
:apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: sample-network-policy-2 namespace: default annotations: networking.gke.io/network: blue-pod-network # GKE-specific annotation (optional) spec: podSelector: matchLabels: app: test-app-2 policyTypes: - Egress # Only applies to outgoing traffic egress: - to: - podSelector: matchLabels: app: test-app-3
Aplique o manifesto
sample-egress-network-policy2.yaml
:kubectl apply -f sample-egress-network-policy2.yaml
Resolver problemas de políticas de rede em várias redes
Se você tiver problemas com as políticas de rede, se elas são aplicadas a redes de pods específicas ou não, é possível diagnosticar e resolver o problema executando os seguintes comandos:
kubectl get networkpolicy
: lista todos os objetos de política de rede e informações sobre eles.iptables-save
: recupera e lista todas as cadeias de tabelas de endereços IP de um de um nó específico. É preciso executar esse comando no nó como raiz.cilium bpf policy get <endpoint-id>
: recupera e lista os IPs permitidos. e endereços IP do mapa de políticas de cada endpoint.cilium policy selectors
: imprime o identidades e as políticas associadas que as selecionaram.cilium identity list
: mostra mapeamentos da identidade para o endereço IP.