Questa pagina spiega come configurare i cluster creati in modalità Autopilot di Google Kubernetes Engine (GKE) per eseguire il mascheramento IP con il criterio NAT in uscita.
Per ulteriori informazioni sull'IP masquerading in modalità GKE Standard, consulta Configurare un agente di mascheramento IP.
Panoramica
Il criterio NAT in uscita di GKE consente di configurare il comportamento di mascheramento IP per i cluster Autopilot.
GKE supporta due policy NAT in uscita generate automaticamente:
- Gestiti da GKE, sono fissi e non modificabili.
- Criteri predefiniti modificabili.
Questa pagina mostra come modificare ed eseguire il deployment di una policy NAT in uscita modificando la policy predefinita o creando una policy NAT in uscita. Questa pagina mostra anche come eliminare una policy NAT in uscita creata.
Per saperne di più sul comportamento dei criteri NAT in uscita, consulta la sezione Comportamento di mascheramento del traffico per i cluster Autopilot.
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à,
installala e poi
inizializzala. Se hai già installato gcloud CLI, scarica l'ultima versione eseguendo
gcloud components update
.
Assicurati di avere un cluster Autopilot che esegue la versione 1.23.4-gke.1600 o successive oppure la versione 1.22.7-gke.1500 o successive. Nel cluster deve essere abilitato GKE Dataplane V2.
Assicurati che nel cluster sia in esecuzione un workload. Per saperne di più, consulta come richiedere risorse.
Controllare lo stato del criterio NAT in uscita
Puoi verificare se il cluster esegue la definizione di risorsa personalizzata (CRD) della policy NAT in uscita utilizzando lo strumento Google Cloud CLI:
Recupera le credenziali per il tuo cluster:
gcloud container clusters get-credentials CLUSTER-NAME
Sostituisci
CLUSTER_NAME
con il nome del cluster.Controlla se il criterio NAT in uscita è in esecuzione:
kubectl get crds egressnatpolicies.networking.gke.io
Se il criterio NAT in uscita è in esecuzione, l'output è simile al seguente:
NAME CREATED AT egressnatpolicies.networking.gke.io 2022-03-16T21:05:43Z
Recupera l'elenco delle policy NAT in uscita create:
kubectl get egressnatpolicies
L'output è simile al seguente:
NAME AGE default 44h gke-bbfa6c0e-1 44h
Modificare le norme predefinite esistenti
GKE supporta due policy NAT generate automaticamente: la policy predefinita e la policy gestita da GKE. Il criterio predefinito è modificabile e configura le destinazioni non mascherate predefinite.
Per modificare le norme predefinite esistenti:
Recupera le credenziali per il tuo cluster:
gcloud container clusters get-credentials CLUSTER_NAME
Sostituisci
CLUSTER_NAME
con il nome del cluster.Modifica la policy NAT in uscita predefinita:
kubectl edit egressnatpolicies default
Aggiungi o rimuovi destinazioni con l'azione NoSNAT come attributo
cidr
in formato CIDR:apiVersion: networking.gke.io/v1 kind: EgressNATPolicy metadata: name: default spec: action: NoSNAT destinations: - cidr: 10.0.0.0/8 - cidr: 172.16.0.0/12 - cidr: 192.168.0.0/16 - cidr: 240.0.0.0/4 - cidr: 192.0.2.0/24 - cidr: 198.51.100.0/24 - cidr: 203.0.113.0/24 - cidr: 100.64.0.0/10 - cidr: 198.18.0.0/15 - cidr: 192.0.0.0/24 - cidr: 192.88.99.0/24
Quando i pacchetti vengono inviati a queste destinazioni, il cluster non maschera le origini degli indirizzi IP e conserva gli indirizzi IP dei pod di origine.
Verifica che la norma predefinita modificata sia implementata controllando gli eventi Kubernetes:
kubectl get events
L'output è simile al seguente:
LAST SEEN TYPE REASON OBJECT MESSAGE 13s Normal EnsuringPolicy egressnatpolicy/default Ensuring IP masquerade config for policy "default"
L'applicazione delle modifiche potrebbe richiedere fino a tre minuti.
Esegui il deployment di una nuova policy NAT in uscita
Per aggiungere nuove destinazioni con l'azione NoSNAT, puoi utilizzare una delle seguenti opzioni:
- Puoi modificare le norme predefinite esistenti.
- Puoi creare un nuovo criterio NAT in uscita.
Per creare una nuova policy NAT in uscita che non fa parte della policy predefinita, segui questi passaggi:
Salva il seguente manifest come
egress_nat_policy.yaml
:kind: EgressNATPolicy apiVersion: networking.gke.io/v1 metadata: name: POLICY_NAME spec: action: NoSNAT destinations: - cidr: CIDR_1 - cidr: CIDR_2
Sostituisci quanto segue:
POLICY_NAME
: il nome della nuova policy.CIDR_1
eCIDR_2
: gli intervalli di indirizzi IP in formato CIDR. Quando i pacchetti vengono inviati a queste destinazioni, il cluster non maschera le origini degli indirizzi IP e conserva gli indirizzi IP dei pod di origine. Se hai bisogno di più di due CIDR, aggiungi altre voci all'elencodestinations
seguendo lo stesso formato.
Esegui il deployment della nuova policy:
kubectl create -f egress_nat_policy.yaml
Verifica che il criterio sia stato implementato controllando gli eventi Kubernetes:
kubectl get events
L'output è simile al seguente:
LAST SEEN TYPE REASON OBJECT MESSAGE 13s Normal EnsuringPolicy egressnatpolicy/mypolicy Ensuring IP masquerade config for policy "mypolicy"
Elimina una policy NAT in uscita
Per eliminare completamente una policy NAT in uscita, esegui questo comando:
kubectl delete egressnatpolicies POLICY_NAME
Sostituisci POLICY_NAME
con il nome della norma che vuoi eliminare.
Passaggi successivi
- Scopri come creare un cluster nativo di VPC.
- Leggi la panoramica della rete GKE.
- Scopri di più sulla configurazione delle reti autorizzate.