Auf dieser Seite wird erläutert, wie Sie Cluster, die im GKE-Autopilot-Modus (Google Kubernetes Engine) erstellt wurden, für die Durchführung von IP-Masquerade mit der NAT-Richtlinie für ausgehenden Traffic konfigurieren.
Weitere Informationen zur IP-Masquerade im GKE-Standardmodus finden Sie unter IP-Masquerade-Agent konfigurieren.
Übersicht
Mit der GKE-NAT-Richtlinie für ausgehenden Traffic können Sie das Verhalten der IP-Masquerade für Autopilot-Cluster konfigurieren.
GKE unterstützt zwei automatisch generierte NAT-Richtlinien für ausgehenden Traffic:
- Von GKE verwaltete Richtlinien, die fixiert sind und nicht bearbeitet werden können.
- Standardrichtlinien, die bearbeitet werden können.
Auf dieser Seite erfahren Sie, wie Sie eine NAT-Richtlinie für ausgehenden Traffic bearbeiten und bereitstellen. Dazu bearbeiten Sie entweder die Standardrichtlinie oder erstellen eine NAT-Richtlinie für ausgehenden Traffic. Auf dieser Seite erfahren Sie auch, wie Sie eine erstellte NAT-Richtlinie für ausgehenden Traffic löschen.
Weitere Informationen zum Verhalten von NAT-Richtlinie für ausgehenden Traffic finden Sie unter Traffic-Maskierungsverhalten für Autopilot-Cluster.
Vorbereitung
Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:
- Aktivieren Sie die Google Kubernetes Engine API. Google Kubernetes Engine API aktivieren
- Wenn Sie die Google Cloud CLI für diese Aufgabe verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit
gcloud components update
ab.
Sie benötigen einen Autopilot-Cluster mit Version 1.23.4-gke.1600 oder höher oder 1.22.7-gke.1500 oder höher. In Ihrem Cluster muss GKE Dataplane V2 aktiviert sein.
Prüfen Sie, ob eine Arbeitslast auf Ihrem Cluster ausgeführt wird. Weitere Informationen finden Sie unter Ressourcen anfordern.
Status der NAT-Richtlinie für ausgehenden Traffic prüfen
Mit dem Google Cloud-CLI-Tool können Sie prüfen, ob Ihr Cluster die benutzerdefinierte Ressourcendefinition (CRD) der NAT-Richtlinie für ausgehenden Traffic ausführt:
Rufen Sie die Anmeldedaten für Ihren Cluster ab:
gcloud container clusters get-credentials CLUSTER-NAME
Ersetzen Sie
CLUSTER_NAME
durch den Namen des Clusters.Prüfen Sie, ob die NAT-Richtlinie für ausgehenden Traffic ausgeführt wird:
kubectl get crds egressnatpolicies.networking.gke.io
Wenn die NAT-Richtlinie für ausgehenden Traffic ausgeführt wird, sieht die Ausgabe in etwa so aus:
NAME CREATED AT egressnatpolicies.networking.gke.io 2022-03-16T21:05:43Z
Rufen Sie die Liste der erstellten NAT-Richtlinien für ausgehenden Traffic ab:
kubectl get egressnatpolicies
Die Ausgabe sieht in etwa so aus:
NAME AGE default 44h gke-bbfa6c0e-1 44h
Vorhandene Standardrichtlinie bearbeiten
GKE unterstützt zwei automatisch generierte NAT-Richtlinien: Standardrichtlinie und Von GKE-Richtlinie verwaltet. Die Standardrichtlinie kann bearbeitet werden und konfiguriert die Standardziele ohne Maskierung.
Zum Bearbeiten der vorhandenen Standardrichtlinie führen Sie die folgenden Schritte aus:
Rufen Sie die Anmeldedaten für Ihren Cluster ab:
gcloud container clusters get-credentials CLUSTER_NAME
Ersetzen Sie
CLUSTER_NAME
durch den Namen Ihres Clusters.Bearbeiten Sie die Standard-NAT-Richtlinie für ausgehenden Traffic:
kubectl edit egressnatpolicies default
Fügen Sie Ziele mit der NoSNAT-Aktion als
cidr
-Attribut im CIDR-Format hinzu oder entfernen Sie Ziele: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
Wenn Pakete an diese Ziele gesendet werden, maskiert Ihr Cluster keine IP-Adressquellen und behält Quell-Pod-IP-Adressen bei.
Prüfen Sie, ob die bearbeitete Standardrichtlinie bereitgestellt wurde. Prüfen Sie dazu die Kubernetes-Ereignisse:
kubectl get events
Die Ausgabe sieht in etwa so aus:
LAST SEEN TYPE REASON OBJECT MESSAGE 13s Normal EnsuringPolicy egressnatpolicy/default Ensuring IP masquerade config for policy "default"
Es kann bis zu drei Minuten dauern, bis die Änderungen wirksam werden.
Neue NAT-Richtlinie für ausgehenden Traffic bereitstellen
Sie haben folgende Möglichkeiten, um neue Ziele mit der NoSNAT-Aktion hinzuzufügen:
- Sie können die vorhandene Standardrichtlinie bearbeiten.
- Sie können eine neue NAT-Richtlinie für ausgehenden Traffic erstellen.
Führen Sie die folgenden Schritte aus, um eine neue NAT-Richtlinie für ausgehenden Traffic zu erstellen, die nicht Teil der Standardrichtlinie ist:
Speichern Sie das folgende Manifest als
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
Dabei gilt:
POLICY_NAME
ist der Name der neuen Richtlinie.CIDR_1
undCIDR_2
: die IP-Adressbereiche im CIDR-Format. Wenn Pakete an diese Ziele gesendet werden, maskiert Ihr Cluster keine IP-Adressquellen und behält Quell-Pod-IP-Adressen bei. Wenn Sie mehr als zwei CIDRs benötigen, fügen Sie der Listedestinations
weitere Einträge im selben Format hinzu.
Stellen Sie die neue Richtlinie bereit:
kubectl create -f egress_nat_policy.yaml
Überprüfen Sie anhand der Kubernetes-Ereignisse, ob Ihre Richtlinie bereitgestellt wurde:
kubectl get events
Die Ausgabe sieht in etwa so aus:
LAST SEEN TYPE REASON OBJECT MESSAGE 13s Normal EnsuringPolicy egressnatpolicy/mypolicy Ensuring IP masquerade config for policy "mypolicy"
NAT-Richtlinie für ausgehenden Traffic löschen
Führen Sie den folgenden Befehl aus, um eine NAT-Richtlinie für ausgehenden Traffic vollständig zu löschen:
kubectl delete egressnatpolicies POLICY_NAME
Ersetzen Sie POLICY_NAME
durch den Namen der Richtlinie, die Sie löschen möchten.