Questa pagina spiega come configurare i cluster creati in modalità Autopilot di Google Kubernetes Engine (GKE) per eseguire la mascheratura IP con il criterio NAT di uscita.
Per ulteriori informazioni sull'IP masquerading in modalità GKE Standard, consulta Configurare un agente di mascheramento IP.
Panoramica
Il criterio NAT di uscita di GKE ti consente di configurare il comportamento di IP spoofing per i cluster Autopilot.
GKE supporta due criteri NAT in uscita generati automaticamente:
- Gestite da GKE, sono fisse e non possono essere modificate.
- Criteri predefiniti modificabili.
Questa pagina mostra come modificare ed eseguire il deployment di un criterio NAT di uscita modificando il criterio predefinito o creando un criterio NAT di uscita. Questa pagina mostra anche come eliminare un criterio NAT di uscita creato.
Per ulteriori informazioni sul comportamento dei criteri NAT in uscita, consulta il comportamento di scambio di identità 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à,
installa e poi
inizializza gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo
gcloud components update
.
Assicurati di avere un cluster Autopilot che esegue la versione 1.23.4-gke.1600 o successive o 1.22.7-gke.1500 o successive. Nel cluster deve essere abilitato GKE Dataplane V2.
Assicurati che nel cluster sia in esecuzione un carico di lavoro. Per ulteriori informazioni, consulta come richiedere risorse.
Controllare lo stato del criterio NAT in uscita
Puoi verificare se nel cluster è in esecuzione la definizione della risorsa personalizzata (CRD) del criterio 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 dei criteri NAT in uscita creati:
kubectl get egressnatpolicies
L'output è simile al seguente:
NAME AGE default 44h gke-bbfa6c0e-1 44h
Modificare il criterio predefinito esistente
GKE supporta due criteri NAT generati automaticamente, il criterio predefinito e il criterio gestito da GKE. Il criterio predefinito è modificabile e configura le destinazioni non di mascheramento predefinite.
Per modificare il criterio predefinito esistente:
Recupera le credenziali per il tuo cluster:
gcloud container clusters get-credentials CLUSTER_NAME
Sostituisci
CLUSTER_NAME
con il nome del cluster.Modifica il criterio NAT in uscita predefinito:
kubectl edit egressnatpolicies default
Aggiungi o rimuovi le 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 il criterio predefinito modificato 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/default Ensuring IP masquerade config for policy "default"
L'applicazione delle modifiche potrebbe richiedere fino a tre minuti.
Esegui il deployment di un nuovo criterio 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 un nuovo criterio NAT in uscita che non fa parte del criterio predefinito, svolgi i seguenti 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 norma.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 del nuovo criterio:
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"
Eliminare un criterio NAT in uscita
Per eliminare completamente un criterio NAT di uscita, esegui il seguente comando:
kubectl delete egressnatpolicies POLICY_NAME
Sostituisci POLICY_NAME
con il nome del criterio 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.