Esta página explica como pode melhorar a segurança de rede e o controlo de tráfego no cluster configurando políticas de rede com várias redes que se aplicam especificamente a uma rede de pods designada. Estas políticas de rede multirrede controlam o tráfego através de regras de firewall ao nível do pod e controlam o fluxo de tráfego entre pods e serviços.
Para compreender como funcionam as políticas de rede com várias redes, consulte como funcionam as políticas de rede com redes de pods.
Requisitos
Para usar políticas de rede com várias redes, considere os seguintes requisitos:
- Versão 459 e posteriores da CLI do Google Cloud.
- Tem de ter um cluster do GKE a executar uma das seguintes versões:
- 1.28.5-gke.1293000 ou posterior
- 1.29.0-gke.1484000 ou posterior
- O seu cluster tem de usar o GKE Dataplane V2.
Limitações
A política de rede FQDN e a política de rede CiliumClusterWide não são suportadas: Se usar uma política de rede FQDN e uma política de rede CiliumClusterWide num pod que esteja ligado a várias redes, as políticas afetam todas as ligações do pod, incluindo as ligações em que as políticas não são aplicadas.
Configure políticas de rede com várias redes
Para usar políticas de rede com várias redes, faça o seguinte:
- Crie um cluster com o GKE com várias redes ativado .
- Crie um node pool e uma rede de pods.
- Referencie a rede de agrupamentos.
- Crie uma política de rede a aplicar que faça referência à mesma rede de pods utilizada pela carga de trabalho.
Antes de começar
Antes de começar, certifique-se de que realizou as seguintes tarefas:
- Ative a API Google Kubernetes Engine. Ative a API Google Kubernetes Engine
- Se quiser usar a CLI gcloud para esta tarefa,
instale-a e, em seguida,
inicialize-a. Se instalou anteriormente a CLI gcloud, execute
gcloud components update
para obter a versão mais recente.
Crie uma política de rede
Para criar uma política de rede que aplique regras na mesma rede de pods que a sua carga de trabalho, consulte a rede de pods específica na definição da política de rede.
Para definir as regras de tráfego de entrada selecionadas e segmentar pods com base em etiquetas ou outros seletores, crie uma política de rede padrão.
Guarde o seguinte manifesto de exemplo 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
Para definir as regras de tráfego de saída selecionadas e segmentar pods com base em etiquetas ou outros seletores, crie uma política de rede padrão.
Guarde o seguinte manifesto de exemplo 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
Resolva problemas com políticas de rede de várias redes
Se tiver problemas com as políticas de rede, quer sejam aplicadas a redes de pods específicas ou não, pode diagnosticar e resolver o problema executando os seguintes comandos:
kubectl get networkpolicy
: lista todos os objetos de políticas de rede e informações sobre os mesmos.iptables-save
: obtém e lista todas as cadeias de tabelas de endereços IP para um nó específico. Tem de executar este comando no nó como raiz.cilium bpf policy get <endpoint-id>
: obtém e lista os endereços IP permitidos a partir do mapa de políticas de cada ponto final.cilium policy selectors
: imprime as identidades e as políticas associadas que as selecionaram.cilium identity list
: mostra mapeamentos da identidade para o endereço IP.
O que se segue?
- Leia o artigo Acerca das políticas de rede com várias redes
- Leia o artigo Configure o suporte de várias redes para os Pods