IP-Adresse der Steuerungsebene rotieren

Auf dieser Seite wird erläutert, wie Sie eine IP-Rotation für die Steuerungsebene in Google Kubernetes Engine durchführen.

Übersicht

Mit einer IP-Rotation können Sie die IP-Adresse ändern, die die Steuerungsebene (Master) Ihres Clusters verwendet, um Anfragen von der Kubernetes API zu verarbeiten.

Durch die IP-Rotation werden auch das SSL-Zertifikat und die Cluster-Zertifizierungsstelle geändert. Dadurch kann die vorherige Adresse nur schwer mit der neuen Adresse in Verbindung gebracht werden.

Hinweis

Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:

Mit den folgenden Methoden können Sie die gcloud-Einstellungen festlegen:

  • Verwenden Sie gcloud init, wenn Sie die Standardeinstellungen ansehen möchten.
  • Verwenden Sie gcloud config, um Ihre Projekt-ID, Zone und Region individuell festzulegen.

gcloud init verwenden

Wenn Sie die Fehlermeldung One of [--zone, --region] must be supplied: Please specify location erhalten, führen Sie diesen Abschnitt aus.

  1. Führen Sie gcloud init aus und folgen Sie der Anleitung:

    gcloud init

    Wenn Sie SSH auf einem Remote-Server verwenden, können Sie mit dem Flag --console-only verhindern, dass mit dem Befehl ein Browserfenster geöffnet wird:

    gcloud init --console-only
  2. Folgen Sie der Anleitung, um gcloud zur Verwendung Ihres Google Cloud-Kontos zu autorisieren.
  3. Erstellen Sie eine neue Konfiguration oder wählen Sie eine vorhandene aus.
  4. Wählen Sie ein Google Cloud-Projekt aus.
  5. Wählen Sie eine Compute Engine-Standardzone aus.

gcloud config verwenden

  • Legen Sie Ihre standardmäßige Projekt-ID fest:
    gcloud config set project project-id
  • Wenn Sie mit zonalen Clustern arbeiten, legen Sie die Compute-Standardzone fest:
    gcloud config set compute/zone compute-zone
  • Wenn Sie mit regionalen Clustern arbeiten, legen Sie die Standardregion für Compute Engine fest:
    gcloud config set compute/region compute-region
  • Aktualisieren Sie gcloud auf die neueste Version:
    gcloud components update

Funktionsweise der IP-Rotation

Eine IP-Rotation ist ein Vorgang, der aus mehreren Schritten besteht.

  • Wenn Sie eine IP-Rotation einleiten, verwendet Ihre Steuerungsebene neben der ursprünglichen IP-Adresse noch eine neue IP-Adresse.
  • Nachdem Sie eine Rotation eingeleitet haben, müssen Sie die API-Clients Ihres Clusters aktualisieren (z. B. Entwicklungsmaschinen mit der kubectl-Befehlszeile), um mit der Steuerungsebene über die neue IP-Adresse kommunizieren zu können.
  • Nach Abschluss der Rotation beendet die Steuerungsebene die Bereitstellung von Traffic über die vorherige IP-Adresse.

IP-Rotationen durchführen

In den folgenden Abschnitten wird erläutert, wie eine IP-Rotation durchgeführt wird.

Rotation einleiten

Führen Sie den folgenden Befehl aus, um eine IP-Rotation einzuleiten:

gcloud container clusters update [CLUSTER_NAME] --start-ip-rotation

Dabei ist [CLUSTER_NAME] der Name des Clusters.

Dieser Befehl konfiguriert die Steuerungsebene des Clusters so, dass sie zwei IP-Adressen verwendet, die ursprüngliche IP-Adresse und eine neue IP-Adresse. Dies führt zu einem kurzen Ausfall der Cluster API.

Der Befehl gibt die folgende Ausgabe zurück:


This will start an IP Rotation on cluster [CLUSTER-NAME].
The master will be updated to serve on a new IP address in addition to
the current IP address. GKE will then recreate all
nodes to point to the new IP address. This operation is
long-running and will block other operations on the cluster (including
delete) until it has run to completion.
Do you want to continue (Y/n)?

Lassen Sie die Shell nach der Bestätigung geöffnet, bis der Vorgang abgeschlossen ist.

Nachdem die Steuerungsebene neu konfiguriert wurde, aktualisiert GKE die Knoten des Clusters automatisch so, dass die neue IP-Adresse verwendet wird. Dabei erhält jeder Knotenpool die Kennzeichnung "Neuerstellung erforderlich". GKE beendet die IP-Rotation erst, wenn die automatische Wiederherstellung abgeschlossen ist.

Rotation prüfen

Führen Sie den folgenden Befehl aus, um den Aktualisierungsvorgang zu überwachen:

gcloud container operations list --filter="UPGRADE_NODES RUNNING"

Dieser Befehl gibt die Vorgangs-ID für den Aktualisierungsvorgang zurück.

Um den Vorgang abzufragen, übergeben Sie die Vorgangs-ID an den folgenden Befehl:

gcloud container operations wait [OPERATION_ID]

Knotenpools werden jeweils einzeln neu erstellt und jeder Knotenpool hat einen eigenen Vorgang. Wenn Sie über mehrere Knotenpools verfügen, können Sie die obige Anleitung verwenden, um die einzelnen Vorgänge abzufragen.

API-Clients aktualisieren

Nachdem die IP-Rotation eingeleitet wurde, müssen Sie alle API-Clients außerhalb des Clusters (z. B. kubectl auf Entwicklungsmaschinen) so aktualisieren, dass sie auf die neue Adresse verweisen.

Führen Sie den folgenden Befehl für jeden API-Client aus, um Ihre API-Clients zu aktualisieren:

gcloud container clusters get-credentials [CLUSTER_NAME]

Rotation beenden

Führen Sie den folgenden Befehl aus, um die Rotation abzuschließen:

gcloud container clusters update [CLUSTER_NAME] --complete-ip-rotation

Der Befehl gibt die folgende Ausgabe zurück:

This will complete the in-progress IP Rotation on cluster [CLUSTER_NAME].
The master will be updated to stop serving on the old IP address and only
serve on the new IP address. Make sure all API clients have been updated
to communicate with the new IP address (e.g. by running `gcloud container
clusters get-credentials --project [PROJECT-ID] --zone [COMPUTE-ZONE]
[CLUSTER-NAME]`). This operation is long-running and will
block other operations on the cluster (including delete) until it has
run to completion.

Dieser Befehl konfiguriert die Steuerungsebene so, dass sie nur die neue IP-Adresse verwendet. Dies führt zu einem kurzen Ausfall der Cluster API.

Nächste Schritte