Clusteranmeldedaten rotieren

Auf dieser Seite wird erläutert, wie die Rotation von Anmeldedaten in Google Kubernetes Engine (GKE) ausgeführt wird.

Übersicht

Sie können eine Rotation von Anmeldedaten ausführen, um Anmeldedaten für Ihren Cluster zu widerrufen und neue auszugeben. Dadurch werden der private Schlüssel von der Stammzertifizierungsstelle des Clusters (Certificate Authority, CA) sowie alle Zertifikate und privaten Schlüssel rotiert, die von dieser CA signiert wurden. Dazu zählen auch das Clientzertifikat des Clusters (aus dem API-Feld MasterAuth), der Schlüssel und das Zertifikat für den API-Server sowie die kubelet-Clientzertifikate. Weitere Informationen zur Verwendung dieser Anmeldedaten in einem Cluster finden Sie unter Cluster Trust.

Google empfiehlt, dass Sie die Anmeldedaten regelmäßig rotieren, um ihre Gültigkeitsdauer zu reduzieren und Ihren GKE-Cluster besser zu sichern. Die Rotation erfolgt nicht automatisch.

Bei der Rotation von Anmeldedaten erfolgt auch eine IP-Rotation.

Vorbereitung

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 Rotation von Anmeldedaten

Die Rotation von Anmeldedaten ist ein mehrstufiger Prozess, der die Migration zu einer neuen IP-Adresse umfasst:

  • Wenn Sie die Rotation von Anmeldedaten einleiten, verwendet die Steuerungsebene des Clusters (Master) neben der ursprünglichen IP-Adresse noch die neue IP-Adresse. Neue Anmeldedaten werden für Arbeitslasten und die Steuerungsebene ausgegeben.
  • 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 und alte Anmeldedaten werden widerrufen.

Rotation von Anmeldedaten durchführen

In den folgenden Abschnitten wird erläutert, wie die Rotation von Anmeldedaten durchgeführt wird.

Rotation einleiten

Führen Sie den folgenden gcloud-Befehl aus, um eine Rotation der Anmeldedaten zu initiieren. Dadurch werden neue Anmeldedaten erstellt und an die Steuerungsebene ausgegeben. Mit diesem Befehl wird auch die Steuerungsebene so konfiguriert, dass sie zwei IP-Adressen verwendet, die ursprüngliche IP-Adresse und eine neue IP-Adresse.

gcloud container clusters update cluster-name --start-credential-rotation

Sobald die Steuerungsebene neu konfiguriert wurde, aktualisiert GKE automatisch die Knoten Ihres Clusters, um die neue IP-Adresse und die neuen Anmeldedaten zu verwenden. Dabei erhält jeder Knotenpool die Kennzeichnung "Neuerstellung erforderlich". GKE beendet die Rotation der Anmeldedaten erst, wenn die automatische Neuerstellung abgeschlossen ist.

Rotation prüfen

Führen Sie zur Überwachung des Rotationsvorgangs den folgenden Befehl aus:

gcloud container operations list | grep "AUTO_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

Sobald die Rotation der Anmeldedaten eingeleitet wurde, müssen Sie alle API-Clients außerhalb des Clusters (z. B. kubectl auf Entwicklermaschinen) aktualisieren, um die neuen Anmeldedaten zu verwenden.

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

Zum Beenden der Rotation führen Sie den folgenden Befehl aus, um die Steuerungsebene so zu konfigurieren, dass sie nur die neuen Anmeldedaten verwendet:

gcloud container clusters update cluster-name --complete-credential-rotation

Nächste Schritte