Kommunikation mit nichtflüchtigen IP-Adressen steuern

Auf dieser Seite wird beschrieben, wie Sie persistente IP-Adressen für Google Kubernetes Engine-Pods (GKE) implementieren. Mit benutzerdefiniertem persistenten IP-Adressen-Mapping können Sie die Kontrolle über das GKE-Pod-Netzwerk übernehmen. Weitere Informationen zu nichtflüchtigen IP-Adressen, ihren Anwendungsfällen und Vorteilen finden Sie unter Nichtflüchtige IP-Adressen für GKE-Pods.

Voraussetzungen

  • GKE-Version 1.31 oder höher.
  • Sie können von Google bereitgestellte IP-Adressen reservieren oder Ihre eigenen IP-Adressen (BYOIP) verwenden.
  • Konfigurieren Sie Ihre Anwendung, die in den Pods ausgeführt wird, so, dass sie zugewiesene statische IP-Adressen erkennt und verwendet.
  • Nichtflüchtige IP-Adressen für GKE-Pods erfordern Cluster, für die GKE Dataplane V2 und die Gateway API aktiviert sind.

Beschränkungen

  • Sie müssen Ihre Anwendungen so konfigurieren, dass sie zugewiesene persistente IP-Adressen verwenden. GKE fügt die IP-Adresskonfiguration nicht automatisch den Netzwerkschnittstellen des Pods hinzu.
  • Sie können jede statische IP-Adresse jeweils nur einem Pod zuweisen. Wenn mehrere Pods verfügbar sind, leitet GKE den Traffic in der Regel an den neuesten passenden Pod weiter. GKE tut dies jedoch nur dann, wenn der neueste Pod fehlerfrei ist, d. h., der Pod hat standardmäßig den Bedingungsstatus Ready als True. Sie können dieses Verhalten konfigurieren und mit der Einstellung reactionMode auf GKEIPRoute ändern.
  • GKE unterstützt nur IPv4-Adressen als persistente IP-Adressen.
  • GKE unterstützt nur Layer 3- oder gerätetypbasierte Multi-Netzwerke.
  • Die Unterstützung von Hochverfügbarkeit (HA) mit persistenten IP-Adressen wird für Nicht-DPDK-Anwendungsfälle nicht unterstützt.
  • Sie können bis zu 16 IP-Adressen für ein einzelnes GKEIPRoute angeben. Wenn Sie weitere Adressen konfigurieren möchten, können Sie mehrere GKEIPRoute-Objekte erstellen.

Hinweise

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 diesen Task 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 dem Befehl gcloud components update ab. In früheren gcloud CLI-Versionen werden die Befehle in diesem Dokument möglicherweise nicht unterstützt.

Nichtflüchtige IP-Adressen für GKE-Pods implementieren

Nichtflüchtige IP-Adressen in GKE bieten eine Möglichkeit, Ihren Pods eine stabile Netzwerkidentität zu geben, auch wenn die Pods selbst aktualisiert oder verschoben werden.

In diesem Abschnitt wird der Workflow zum Implementieren nichtflüchtiger IP-Adressen für GKE-Pods zusammengefasst:

  1. Cluster erstellen: Erstellen Sie einen Cluster mit der Gateway API und GKE Dataplane V2.
  2. IP-Adresse reservieren: Entscheiden Sie, ob Sie eine externe (öffentlich zugängliche) oder interne (nur Google Cloud) IP-Adresse benötigen, und reservieren Sie sie. Wählen Sie dieselbe Region wie für Ihren GKE-Cluster aus.
  3. Gateway erstellen: Konfigurieren Sie das Kubernetes Gateway-Objekt, das Ihre reservierten nichtflüchtigen IP-Adressen enthält, und erstellen Sie Regeln (GKEIPRoutes) dafür, welche Pods in Ihrem Cluster diese persistenten IP-Adressen verwenden können.
  4. Arbeitslasten für statische IP-Adressen erstellen oder identifizieren: Wenn Sie statische IP-Adressen in einem zusätzlichen Netzwerk verwenden, bereiten Sie Pods für die Verwendung statischer IP-Adressen vor, indem Sie mehrere Netzwerkschnittstellen aktivieren und das Netzwerk definieren, in dem sich die statischen IP-Adressen befinden.
  5. GKEIPRoute-Objekt für ausgewählte Arbeitslasten erstellen: Konfigurieren Sie GKEIPRoute, um die nichtflüchtige IP-Adresse einem bestimmten Pod zuzuweisen. Sie können Labels verwenden, um die richtigen Pods anzusprechen, und optional konfigurieren, wie das Routing auf Pod-Änderungen reagiert.
  6. Anwendung für die Verwendung der persistenten IP-Adresse konfigurieren: Konfigurieren Sie Ihre Anwendung im Pod so, dass sie die persistente IP-Adresse aktiv verwendet.
  7. Überwachung: Behalten Sie den Status Ihres Gateways und der GKEIPRoute-Objekte im Blick, um sicherzustellen, dass alles wie erwartet funktioniert.

So implementieren Sie nichtflüchtige IP-Adressen für GKE-Pods:

Schritt 1: GKE-Cluster erstellen, für den die Gateway API und GKE Dataplane V2 aktiviert sind

Wenn Sie die erweiterten Verwaltungsfunktionen für Netzwerkrouting und IP-Adressen aktivieren möchten, die für die Implementierung nichtflüchtiger IP-Adressen auf GKE-Pods erforderlich sind, müssen Sie einen GKE Dataplane V2-Cluster erstellen:

gcloud container clusters create CLUSTER_NAME \
    --cluster-version=CLUSTER_VERSION \
    --enable-dataplane-v2 \
    --enable-ip-alias \
    --gateway-api=standard

Ersetzen Sie Folgendes:

  • CLUSTER_NAME ist der Name des Clusters.
  • CLUSTER_VERSION: die Version des Clusters.

Schritt 2: Persistente IP-Adressen einrichten

Wenn Sie zuverlässige Netzwerkidentitäten für Ihre Pods einrichten und persistente IP-Adressen festlegen möchten, müssen Sie zuerst persistente IP-Adressen abrufen. Sie können von Google bereitgestellte IP-Adressen reservieren oder Ihre eigenen (BYOIP) verwenden.

Schritt 2a: Von Google bereitgestellte IP-Adressen reservieren

Führen Sie den folgenden Befehl aus, um externe IP-Adressen zu reservieren:

gcloud compute addresses create ADDRESS_NAME \
   --region=REGION

Ersetzen Sie Folgendes:

  • ADDRESS_NAME: der Name, den Sie mit dieser Adresse verknüpfen möchten.
  • REGION: die Region, in der Sie diese Adresse reservieren möchten. Die Region muss sich in derselben Region befinden wie der Pod, dem Sie die IP-Adresse zuweisen möchten.

    Hinweis: Sie müssen eine Region angeben, wenn Sie eine IP-Adresse reservieren, da Weiterleitungsregeln, die das Traffic-Routing für statische IP-Adressen verarbeiten, regional sind. Ihre IP-Adresse und Ihr GKE-Cluster müssen sich in derselben Region befinden, damit das Routing richtig funktioniert.

Führen Sie den folgenden Befehl aus, um interne IP-Adressen zu reservieren:

gcloud compute addresses create ADDRESS_NAME \
    --region REGION
    --subnet SUBNETWORK \
    --addresses IP_ADDRESS

Ersetzen Sie Folgendes:

  • ADDRESS_NAME: Die Namen einer oder mehrerer Adressen, die Sie reservieren möchten. Geben Sie bei mehreren Adressen alle Adressen als Liste an, getrennt durch Leerzeichen. Beispiel: example-address-1 example-address-2 example-address-3
  • REGION: Die Region für diese Anfrage.
  • SUBNETWORK: Das Subnetz für diese interne IPv4-Adresse.

Damit der Traffic in Ihrem privaten Netzwerk richtig weitergeleitet wird, müssen interne IP-Adressen zum Standardsubnetz oder zum zusätzlichen Netzwerksubnetz des Clusters gehören.

Weitere Informationen zu externen und internen IP-Adressen oder zum Reservieren von Adressen über die Console finden Sie unter Statische externe IP-Adresse reservieren und Statische interne IP-Adresse reservieren.

Schritt 2b: Eigene IP-Adressen verwenden (Bring your own IP, BYOIP)

Sie können Ihre eigenen IP-Adressen (BYOIP) verwenden, anstatt auf von Google bereitgestellte IP-Adressen zurückzugreifen. BYOIP ist hilfreich, wenn Sie bestimmte IP-Adressen für Ihre Anwendungen benötigen oder vorhandene Systeme in Google Cloudverschieben. Wenn Sie BYOIP verwenden möchten, prüft Google, ob Sie der Eigentümer des IP-Adressbereichs sind. Nachdem die IP-Adressen in Google Cloudimportiert wurden, können Sie sie als persistente IP-Adressen für GKE-Pods zuweisen. Weitere Informationen finden Sie unter Eigene IP-Adressen verwenden.

Schritt 3: Gateway-Objekte erstellen

Gateway-Objekte enthalten die IP-Adressen und definieren, welche Pods sie verwenden dürfen. Mit Gateway-Objekten können Sie steuern, wie persistente IP-Adressen Ihren GKE-Pods zugewiesen werden.

  1. Erstellen Sie ein Kubernetes Gateway-Objekt der entsprechenden Klasse:
    • gke-persistent-regional-external-managed für externe (öffentliche) IP-Adressen.
    • gke-persistent-regional-internal-managed für interne (nurGoogle Cloud) IP-Adressen.
  2. Geben Sie im Abschnitt „Adressen“ des Gateways die persistenten IP-Adressen (von Google bereitgestellt oder BYOIP) an, die von diesem Gateway verwaltet werden.
  3. Ermitteln Sie im Abschnitt Listeners, welche Pods und zugehörigen GKEIPRoute-Objekte möglicherweise die IP-Adressen des Gateways verwenden können. Listeners fungiert als Filter basierend auf dem Namespace des GKEIPRoute, in dem ein GKEIPRoute-Objekt vorhanden ist.

    Sie haben die folgenden Optionen für die Auswahl von Kubernetes-Namespaces:

    • Alle Namespaces: Alle GKEIPRoute im Cluster.
    • Selektor: GKEIPRoute in GKEIPRoute-Namespaces, die einem bestimmten Label entsprechen.
    • Gleicher Namespace: Nur GKEIPRoutes im selben Namespace wie das Gateway.

Im folgenden Beispiel wird clusterweiter Zugriff auf externe statische IP-Adressen gewährt, sodass jeder Pod sie potenziell verwenden kann.

Speichern Sie das folgende Beispielmanifest als allowed-pod-ips.yaml:

kind: Gateway
apiVersion: gateway.networking.k8s.io/v1
metadata:
  namespace: default
  name: allowed-pod-ips
spec:
  gatewayClassName: gke-persistent-regional-external-managed

  listeners:
    - name: default
      port: 443
      protocol: none
      allowedRoutes:
        namespaces:
          from: All

  addresses:
    - value: "34.123.10.1/32"
      type: "gke.networking.io/cidr"
    - value: "34.123.10.2/32"
      type: "gke.networking.io/cidr"

Dabei gilt:

  • addresses: Hier werden alle IP-Adressen aufgeführt, deren Berechtigungen vom jeweiligen Gateway verwaltet werden.
  • listeners: Wird verwendet, um die Namespaces zu identifizieren, aus denen GKEIPRoute-Objekte auf dieses Gateway verweisen können.

Wenden Sie das Manifest auf den Cluster an:

kubectl apply -f allowed-pod-ips.yaml

Schritt 4 (optional): Arbeitslasten mit zusätzlichen Netzwerken für persistente IP-Adressen erstellen oder identifizieren

Wenn Sie Ihre persistenten IP-Adressen mit Pods verwenden möchten, die eine Verbindung zu mehreren Netzwerken benötigen, können Sie Multi-Netzwerk-Pods einrichten und Netzwerkobjekte erstellen, die die Netzwerke angeben, zu denen die persistente IP-Adresse gehört.

Schritt 5: GKEIPRoute-Objekt für ausgewählte Arbeitslasten erstellen

Wenn Sie einem ausgewählten Pod eine persistente IP-Adresse zuweisen möchten, erstellen Sie ein GKEIPRoute-Objekt.

Speichern Sie das folgende Beispielmanifest als my-ip-route.yaml:

kind: GKEIPRoute
apiVersion: networking.gke.io/v1
metadata:
  namespace: default
  name: my-ip-route
spec:
  parentRefs:
  - name: allowed-pod-ips
    namespace: default
  addresses:
  - value: "34.123.10.1/32"
    type: "gke.networking.io/cidr"
  network: default
  reactionMode: ReadyCondition
  podSelector: # Only one pod is selected.
    matchLabels:
      component: proxy

Dabei gilt:

  • parentRefs: Verweist auf das Gateway, von dem persistente IP-Adressen verwendet werden. Dieses Feld ist unveränderlich.
  • addresses: Hier werden alle persistenten IP-Adressen aufgeführt, die an den mit podSelector identifizierten Pod weitergeleitet werden. Dieses Feld kann geändert werden. Für IPv4 werden nur /32-Adressen unterstützt.
  • podSelector: Gibt Labels an, die den Pod identifizieren, an den die persistenten IP-Adressen weitergeleitet werden. Dieses Feld ist veränderlich und gilt für denselben Namespace, in dem GKEIPRoute platziert ist. Wenn Sie mehrere Pods auswählen, werden zwei zusätzliche Faktoren berücksichtigt: die Erstellungszeit des Pods (GKE wählt den neuesten aus) und die Einstellung des Felds reactionMode.
  • reactionMode: Gibt an, wie sich diese Funktion verhält, wenn ein bestimmter Pod (ausgewählt durch podSelector) erstellt oder gelöscht wird. Dieses Feld ist optional und wird standardmäßig auf ReadyCondition gesetzt. Das Feld ReadyCondition ist unveränderlich. Sie können reactionMode festlegen, um zu steuern, wie sich die Funktion verhält, wenn Pods erstellt, gelöscht oder aktualisiert werden.
  • network: Verweist auf die Netzwerkschnittstelle eines Pods, an die persistente IP-Adressen weitergeleitet werden. Dieses Feld ist optional und wird standardmäßig auf default gesetzt. Wenn Sie das Standardnetzwerk verwenden, muss network auf default gesetzt sein. Wenn Sie zusätzliche Netzwerke verwenden, legen Sie „network“ auf den Namen des Netzwerkobjekts fest, das Sie zuvor erstellt haben. Dieses Feld ist unveränderlich.

Wenden Sie das Manifest auf den Cluster an:

kubectl apply -f my-ip-route.yaml

StatefulSet-Pods nichtflüchtige IP-Adressen zuweisen

Wenn Sie einem bestimmten Multinetwork-Pod in einem StatefulSet eine nichtflüchtige IP-Adresse zuweisen möchten, verwenden Sie den vorhersagbaren Hostnamen des Pods und die automatische Kennzeichnung von Kubernetes, wie im folgenden Beispiel gezeigt:

Speichern Sie das folgende Beispielmanifest als my-pod-ips.yaml:

kind: GKEIPRoute
apiVersion: networking.gke.io/v1
metadata:
  namespace: proxy-ss-ns
  name: my-pod-ips
spec:
  parentRefs:
  - name: allowed-pod-ips
    namespace: default
  addresses:
  - value: "34.123.10.1/32"
    type: "gke.networking.io/cidr"
  - value: "34.123.10.2/32"
    type: "gke.networking.io/cidr"
  network: blue-network
  reactionMode: ReadyCondition
  podSelector:
    matchLabels:
      statefulset.kubernetes.io/pod-name: proxy-ss-1
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  namespace: proxy-ss-ns
  name: proxy-ss
spec:
  selector:
    matchLabels:
      component: proxy
  serviceName: "proxy"
  replicas: 3
  template:
    metadata:
      annotations:
        networking.gke.io/default-interface: 'eth0'
        networking.gke.io/interfaces: '[{"interfaceName":"eth0","network":"default"}, {"interfaceName":"eth1","network":"blue-network"}]'
      labels:
        component: proxy
    spec:
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0

Wenden Sie das Manifest auf den Cluster an (achten Sie darauf, dass Sie ein Netzwerk namens „blue-network“ haben):

kubectl apply -f my-pod-ips.yaml

Deployment-Pods nichtflüchtige IP-Adressen zuweisen

Wenn Sie dem neuesten Pod in einem Deployment eine persistente IP-Adresse zuweisen möchten, wenden Sie eine GKEIPRoute mit der folgenden Konfiguration an:

Speichern Sie das folgende Beispielmanifest als my-pod-ips.yaml:

kind: GKEIPRoute
apiVersion: networking.gke.io/v1
metadata:
  namespace: proxy-deploy-ns
  name: my-pod-ips
spec:
  parentRefs:
  - name: allowed-pod-ips
    namespace: default
  addresses:
  - value: "34.123.10.1/32"
    type: "gke.networking.io/cidr"
  - value: "34.123.10.2/32"
    type: "gke.networking.io/cidr"
  network: blue-network # point to the right network if you intend to use persistent-ip on additional networks
  reactionMode: ReadyCondition
  podSelector:
    matchLabels:
      component: proxy
---
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: proxy-deploy-ns
  name: proxy-deploy
spec:
  selector:
    matchLabels:
      component: proxy
  replicas: 4 # Latest Pod is used
  template:
    metadata:
      # annotations:  <- Remove these lines if the pods are not multi-nic pods
      #   networking.gke.io/default-interface: 'eth0'
      #   networking.gke.io/interfaces: '[{"interfaceName":"eth0","network":"default"}, {"interfaceName":"eth1","network":"blue-network"}]'
      labels:
        component: proxy
    spec:
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0

Wenden Sie das Manifest auf den Cluster an:

kubectl apply -f my-ip-route.yaml

Wenn Sie zusätzliche Netzwerke verwenden, muss ein Netzwerk namens „blue-network“ vorhanden sein.

Schritt 6: Persistente IP-Adressen im Pod verwenden

Wenn Sie einem GKE-Pod mit einem GKEIPRoute eine nichtflüchtige IP-Adresse zuweisen, werden die IP-Adressen nicht automatisch von Ihrer Anwendung verwendet. Die persistenten IP-Adressen werden auf Netzwerkroutingebene verarbeitet, aber die Standardkonfiguration Ihres Pods ist sich dessen nicht bewusst. Sie müssen die Konfiguration Ihrer Anwendung so konfigurieren, dass die Adresse im Pod erkannt und verwendet wird. Dazu benötigt Ihr Pod Berechtigungen.

Sie haben folgende Möglichkeiten, Ihre Anwendung zu konfigurieren:

  • net.ipv4.ip_nonlocal_bind::Ändern Sie eine Systemeinstellung, damit Ihre Anwendung IP-Adressen verwenden kann, die nicht direkt ihrer Schnittstelle zugewiesen sind.
  • ip address add:Mit diesem Befehl können Sie die statische IP-Adresse manuell einer Schnittstelle hinzufügen.
  • Raw Sockets:Für noch mehr Kontrolle kann Ihre Anwendung direkt mit dem Netzwerk-Stack interagieren (erweitert).
  • Userspace-IP-Adress-Stack:In speziellen Fällen kann eine separate Anwendung im Pod ausgeführt werden, um die IP-Adresse zu verwalten (sehr fortgeschritten).

Schritt 7: ARP für persistente IP-Adressen aktivieren (nur Standardnetzwerk)

Damit gültige ARP-Anfragen (Address Resolution Protocol) und ‑Antworten generiert und eine neue Verbindung zu einem Pod über eine persistente IP-Adresse im Standardnetzwerk hergestellt werden kann, müssen Sie die Variable arp_announce konfigurieren.

Führen Sie den folgenden Befehl auf Ihrem Pod aus, um die Variable arp_announce festzulegen:

echo "2" > /proc/sys/net/ipv4/conf/eth0/arp_announce

Die Variable arp_announce steuert, wie ARP-Ankündigungen behandelt werden. Wenn Sie den Wert auf „2“ setzen, werden ARP-Ankündigungen für die persistente IP-Adresse vorgenommen, sodass andere Geräte im Netzwerk die neue Zuordnung kennenlernen können.

Verhalten nichtflüchtiger IP-Adressen bei Pod-Änderungen anpassen

In diesem Abschnitt wird beschrieben, wie sich die persistente IP-Adresse für GKE-Pods verhält, wenn der Ziel-Pod erstellt oder gelöscht wird. Der GKE-Controller überwacht Ihre Pods und die GKEIPRoute-Konfiguration. Wenn eine Aktualisierung erkannt wird, wird die persistente IP-Adresse gemäß des von Ihnen ausgewählten reactionMode automatisch einem geeigneten Pod zugewiesen.

Informationen dazu, wie das Feature für persistente IP-Adressen Pod-Änderungen automatisch verarbeitet, sowie die verfügbaren Konfigurationsoptionen:

  • Wählen Sie im Feld reactionMode Ihrer GKEIPRoute-Konfiguration ReadyCondition oder Exists aus. Berücksichtigen Sie die Anforderungen Ihrer Anwendung hinsichtlich der Geschwindigkeit, mit der die IP-Adresse zugewiesen wird, im Vergleich zu strengen Bereitschaftsanforderungen.
  • Wenn Sie ReadyCondition verwenden, um die Bereitschaft sicherzustellen, müssen Sie darauf achten, dass in Ihren Pods Kubernetes-Bereitschaftsprüfungen korrekt implementiert sind. Andernfalls funktioniert die statische IP-Adresse möglicherweise nicht wie vorgesehen.
  • Wir empfehlen Ihnen, den Status Ihrer Pods und das Feld Conditions des GKEIPRoute-Objekts zu beobachten, um sicherzustellen, dass das System ordnungsgemäß funktioniert. Der Status true der Bedingung Ready zeigt an, dass das System ordnungsgemäß funktioniert.

Kommunikationsprobleme mit nichtflüchtigen IP-Adressen für Pods beheben

In diesem Abschnitt wird beschrieben, wie Sie Probleme im Zusammenhang mit persistenten IP-Adressen für Pods beheben.

NoPodsFound, wenn keine übereinstimmenden Pods gefunden werden

Symptom

Das GKEIPRoute-Objekt gibt eine podSelector (eine Reihe von Labels) an, um zu identifizieren, welche Pods der persistenten IP-Adresse zugeordnet sind. Der Status NoPodsFound gibt an, dass es in den Ziel-Namespaces GKEIPRoute's keine Pods mit den entsprechenden Labels gibt.

Mögliche Ursachen

  • Falsche Labels: Der Pod, den Sie für die persistente IP-Adresse verwenden möchten, hat möglicherweise falsche oder gar keine Labels.
  • Keine Pods vorhanden:Wenn reactionMode == Exists, prüfen Sie, ob der Pod einem Knoten zugewiesen ist. Suchen Sie dazu nach dem Feld pod.Spec.nodeName. Möglicherweise werden im Namespace GKEIPRoute's keine Pods ausgeführt, die dem Selektor entsprechen.
  • Pod nicht bereit:Wenn reactionMode == ReadyCondition, prüfen Sie, ob der Pod-Status READY ist. Selbst wenn ein übereinstimmender Pod vorhanden ist, kann er keinen Traffic bereitstellen, wenn er sich nicht im Status Ready befindet, und ist somit nicht ausgewählt.

Lösung

  1. Labels prüfen: Prüfen Sie noch einmal, ob die Labels in Ihrem GKEIPRoute's-podSelector mit den Labels übereinstimmen, die Sie auf den gewünschten Pod angewendet haben.
  2. Pod-Vorhandensein prüfen: Achten Sie darauf, dass ein Pod mit den richtigen Labels tatsächlich in den Namespaces GKEIPRoute's vorhanden ist, die durch die Listeners des Gateways angegeben werden. Wenn der reactionMode == Exists, prüfen Sie, ob der Pod einem Knoten zugewiesen ist, indem Sie das Feld pod.Spec.nodeName prüfen.
  3. Pod-Bereitschaft bestätigen: Wenn reactionMode == ReadyCondition, prüfen Sie, ob der Pod-Status READY ist. Prüfen Sie mit dem folgenden Befehl, ob sich der Pod im Status Ready befindet:

    kubectl get pods -n <namespace>
    

    Pods in anderen Status (z. B. „Ausstehend“, „Fehler“) werden nicht ausgewählt.

  4. Konfigurieren Sie Ihre Pods so, dass sie auf die zugewiesene persistente IP-Adresse reagieren.

Mutated, wenn ein übereinstimmender Pod gefunden wurde und die Programmierung einer persistenten IP-Adresse ausgeführt wird

Symptom

Der Status GKEIPRoute ist „Mutated“ (Geändert), was darauf hinweist, dass die Konfiguration der persistenten IP-Adresse für einen übereinstimmenden Pod ausgeführt wird.

Mögliche Ursache:

Der Status „Mutated“ ist während der Konfiguration zu erwarten, da das System den GKE-Datenpfad und die Google Cloud Ressourcen für die statische IP-Adresse einrichtet.

Lösung:

  1. Warten und noch einmal versuchen:In den meisten Fällen wird die Konfiguration automatisch innerhalb kurzer Zeit abgeschlossen. Prüfen Sie den Status nach der Wartezeit. Bei Erfolg ändert sich der Status zu Ready.
  2. Weiter untersuchen (falls erforderlich): Wenn der Status "Verändert" über einen längeren Zeitraum bestehen bleibt, kann dies auf einen Konfigurationsfehler hinweisen. Prüfen Sie die anderen Statusbedingungen auf Ihrer GKEIPRoute:
    • Akzeptiert: Gibt an, ob Ihre GKEIPRoute-Einrichtung gültig ist.
    • DPV2Ready: Gibt an, ob der Datenpfad auf dem Knoten korrekt programmiert ist.
    • GCPReady: Gibt an, ob die Google Cloud Ressourcen wie erwartet eingerichtet sind.

Suchen Sie in diesen Bedingungen nach Fehlermeldungen, um das Problem zu beheben.

Nächste Schritte