Configura criteri di rete su più reti


Questa pagina spiega come controllare il flusso di traffico tra i pod e i servizi nel pod di rete configurando criteri di rete multirete che si applicano specificamente a una rete di pod designata.

In qualità di amministratore del cluster, puoi configurare criteri di rete su più reti per controllare il flusso di traffico tra i pod e i servizi utilizzando le regole firewall A livello di pod. È possibile migliorare la sicurezza di rete e il controllo del traffico all'interno del proprio in un cluster Kubernetes.

Per capire come funzionano i criteri di rete su più reti, consulta Come funzionano le reti Norme lavoro con le reti di pod.

Requisiti

Per utilizzare i criteri di rete con più reti, considera i seguenti requisiti:

  • Google Cloud CLI versione 459 e successive.
  • Devi avere un cluster GKE che esegue una delle seguenti versioni:
    • 1.28.5-gke.1293000 o versioni successive
    • 1.29.0-gke.1484000 o versioni successive
  • Il cluster deve utilizzare GKE Dataplane V2.

Limitazioni

Il criterio di rete FQDN e il criterio di rete CiliumClusterWide non sono supportati: Se utilizzi il criterio di rete FQDN e il criterio di rete CiliumClusterWide su un pod connesso a più reti, il criterio influisce su tutte le connessioni del pod e non solo quelle a cui vengono applicate le norme.

Prezzi

Sono supportate le seguenti funzionalità NFO (Network Function Optimizer) solo sui cluster che si trovano in progetti abilitati con GKE Enterprise

Per comprendere le tariffe applicate per l'abilitazione della versione Google Kubernetes Engine (GKE) Enterprise, consulta Prezzi di GKE Enterprise.

Configura criteri di rete su più reti

Per utilizzare i criteri di rete con più reti, segui questi passaggi:

  1. Crea un cluster con GKE abilitato per più reti .
  2. Crea un pool di nodi e una rete di pod.
  3. Fai riferimento alla rete di pod.
  4. Crea un criterio di rete da applicare che faccia riferimento alla stessa rete di pod utilizzata dal carico di lavoro.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti attività:

  • Attiva l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine .
  • Se vuoi utilizzare Google Cloud CLI per questa attività, install e poi inizializzare con gcloud CLI. Se hai già installato gcloud CLI, scarica la versione più recente eseguendo gcloud components update.

Crea criterio di rete

  1. Creare un criterio di rete che applichi regole sulla stessa rete di pod al carico di lavoro, fai riferimento alla rete di pod specifica nel criterio di rete definizione di Kubernetes.

  2. definire le regole del traffico in entrata e i pod di destinazione selezionati in base alle etichette. o altri selettori, crea un criterio di rete standard.

    Salva il seguente manifest di esempio come 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. Applica il manifest sample-ingress-network-policy1.yaml:

    kubectl apply -f sample-ingress-network-policy1.yaml
    
  4. a definire le regole per il traffico in uscita e i pod di destinazione selezionati in base alle etichette. o altri selettori, crea un criterio di rete standard.

    Salva il seguente manifest di esempio come 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. Applica il manifest sample-egress-network-policy2.yaml:

    kubectl apply -f sample-egress-network-policy2.yaml
    

Risoluzione dei problemi relativi ai criteri di rete su più reti

Se riscontri problemi con i criteri di rete, verifica se vengono applicati specifiche o meno, puoi diagnosticare e risolvere il problema eseguendo questi comandi:

  1. kubectl get networkpolicy: elenca tutti gli oggetti dei criteri di rete e informazioni che li riguardano.
  2. iptables-save: recupera ed elenca tutte le catene di tabelle di indirizzi IP per un di un nodo specifico. Devi eseguire questo comando sul nodo come root.
  3. cilium bpf policy get <endpoint-id>: recupera ed elenca gli IP consentiti indirizzi IP dalla mappa dei criteri di ciascun endpoint.
  4. cilium policy selectors: stampa il identità e i criteri associati che li hanno selezionati.
  5. cilium identity list: mostra le mappature dall'identità all'indirizzo IP.

Passaggi successivi