NAT-Richtlinie für ausgehenden Traffic zur Konfiguration einer IP-Maskierung in Autopilot-Clustern verwenden


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.

Überblick

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:

  1. 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.

  2. 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
    
  3. 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:

  1. 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.

  2. Bearbeiten Sie die Standard-NAT-Richtlinie für ausgehenden Traffic:

    kubectl edit egressnatpolicies default
    
  3. 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.

  4. 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:

Führen Sie die folgenden Schritte aus, um eine neue NAT-Richtlinie für ausgehenden Traffic zu erstellen, die nicht Teil der Standardrichtlinie ist:

  1. 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 und CIDR_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 Liste destinations weitere Einträge im selben Format hinzu.
  2. Stellen Sie die neue Richtlinie bereit:

    kubectl create -f egress_nat_policy.yaml
    
  3. Ü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.

Nächste Schritte