Nesta página, explicamos como controlar o fluxo de tráfego entre pods e serviços no pod configurando políticas de rede de várias redes que se aplicam especificamente a uma rede de pods designada.
Como administrador de cluster, você pode configurar políticas de rede de várias redes controlar o fluxo de tráfego entre pods e serviços usando regras de firewall no no nível do pod. É possível melhorar a segurança de rede e o controle de tráfego na sua aglomerado.
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 a política de rede FQDN e CiliumClusterWide em um pod conectadas a várias redes, a política afeta todas as conexões e não apenas aquelas em que as políticas são aplicadas.
Preços
Os seguintes recursos do Otimizador de funções de rede (NFO) são compatíveis apenas com clusters que estão em projetos ativados com o GKE Enterprise:
- Suporte a várias redes para pods
- Suporte a endereços IP permanentes para pods (pré-lançamento)
- Políticas de rede de várias redes (pré-lançamento)
- Suporte ao direcionamento de serviço para pods (pré-lançamento)
Para entender as cobranças que se aplicam à ativação da edição Enterprise do Google Kubernetes Engine (GKE), consulte Preços do GKE Enterprise.
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 Google Cloud CLI para essa tarefa,
instale e, em seguida,
inicialize a
CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão
mais recente executando
gcloud components update
.
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.