Configurar políticas de rede para várias redes


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:

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:

  1. Crie um cluster com o GKE ativado para várias redes .
  2. Crie um pool de nós e uma rede de pods.
  3. Faça referência à rede do pod.
  4. 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

  1. 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.

  2. 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"
    
  3. Aplique o manifesto sample-ingress-network-policy1.yaml:

    kubectl apply -f sample-ingress-network-policy1.yaml
    
  4. 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
    
  5. 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:

  1. kubectl get networkpolicy: lista todos os objetos de política de rede e informações sobre eles.
  2. 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.
  3. cilium bpf policy get <endpoint-id>: recupera e lista os IPs permitidos. e endereços IP do mapa de políticas de cada endpoint.
  4. cilium policy selectors: imprime o identidades e as políticas associadas que as selecionaram.
  5. cilium identity list: mostra mapeamentos da identidade para o endereço IP.

A seguir