Questa pagina spiega come migliorare la sicurezza della rete e il controllo del traffico all'interno del cluster configurando criteri di rete multi-rete che si applicano specificamente a una rete di pod designata. Questi criteri di rete multi-rete controllano il traffico utilizzando regole firewall a livello di pod e controllano il flusso di traffico tra pod e servizi.
Per capire come funzionano i criteri di rete multi-rete, consulta come funzionano i criteri di rete con le reti di pod.
Requisiti
Per utilizzare i criteri di rete multirete, tieni presente i seguenti requisiti:
- Google Cloud CLI versione 459 e successive.
- Devi disporre di 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 un criterio di rete FQDN e un criterio di rete CiliumClusterWide su un pod connesso a più reti, i criteri influiscono su tutte le connessioni del pod, incluse quelle a cui non vengono applicati.
Configurare criteri di rete multi-rete
Per utilizzare i criteri di rete multi-rete:
- Crea un cluster con GKE con il networking multiplo abilitato .
- Crea un node pool e una rete di pod.
- Fai riferimento alla rete di pod.
- Crea un criterio di rete da applicare che faccia riferimento alla stessa rete del pod utilizzata dal carico di lavoro.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:
- Attiva l'API Google Kubernetes Engine. Attiva l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installa e poi
inizializza gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo
gcloud components update
.
Crea criterio di rete
Per creare un criterio di rete che applichi regole sulla stessa rete di pod del tuo carico di lavoro, fai riferimento alla rete di pod specifica nella definizione del criterio di rete.
Per definire le regole di traffico in entrata selezionate e i pod di destinazione in base alle etichette o ad 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"
Applica il manifest
sample-ingress-network-policy1.yaml
:kubectl apply -f sample-ingress-network-policy1.yaml
Per definire le regole del traffico in uscita selezionate e i pod di destinazione in base alle etichette o ad 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
Applica il manifest
sample-egress-network-policy2.yaml
:kubectl apply -f sample-egress-network-policy2.yaml
Risolvere i problemi relativi ai criteri di rete multirete
Se riscontri problemi con i criteri di rete, indipendentemente dal fatto che siano applicati o meno a reti di pod specifiche, puoi diagnosticare e risolvere il problema eseguendo i seguenti comandi:
kubectl get networkpolicy
: elenca tutti gli oggetti delle norme di rete e le relative informazioni.iptables-save
: recupera ed elenca tutte le catene di tabelle di indirizzi IP per un particolar nodo. Devi eseguire questo comando sul nodo come utente root.cilium bpf policy get <endpoint-id>
: recupera e elenca gli indirizzi IP consentiti dalla mappa dei criteri di ciascun endpoint.cilium policy selectors
: stampa le identità e i criteri associati che le hanno selezionate.cilium identity list
: mostra le mappature dall'identità all'indirizzo IP.
Passaggi successivi
- Leggi l'articolo Informazioni sui criteri di rete multi-rete
- Leggi l'articolo Configurare il supporto di più reti per i pod