Auf dieser Seite wird beschrieben, wie Sie die Anmeldedaten für Ihren GKE-Cluster rotieren. Die Planung und regelmäßige Rotation Ihrer Clusteranmeldedaten ist entscheidend, um Ihre Cluster in einem fehlerfreien Zustand zu halten. Auf dieser Seite erfahren Sie, wie Sie Anmeldedaten rotieren. Außerdem erfahren Sie, wie Sie regelmäßige Rotationen am besten planen.
Diese Seite richtet sich an Sicherheitsexperten, die für den Lebenszyklus von Anmeldedaten in GKE-Clustern verantwortlich sind. Weitere Informationen zu gängigen Rollen und Beispielaufgaben, auf die wir in Google Cloud -Inhalten verweisen, finden Sie unter Häufig verwendete GKE-Nutzerrollen und ‑Aufgaben.
Rotation von Anmeldedaten in GKE
Die Stammzertifizierungsstelle des Clusters hat eine begrenzte Lebensdauer. Wenn die Zertifizierungsstelle abläuft, sind alle von der Zertifizierungsstelle signierten Anmeldedaten nicht mehr gültig, einschließlich des Cluster-Clientzertifikats (aus dem API-Feld MasterAuth
), des Schlüssels und des Zertifikats für den API-Server und der Kubelet-Clientzertifikate.
Die Lebensdauer der Anmeldedaten für Ihren Cluster hängt davon ab, wann Sie den Cluster erstellt oder die Anmeldedaten zuletzt rotiert haben. Weitere Informationen finden Sie unter Gültigkeitsdauer von Anmeldedaten.
Sie können eine Rotation von Anmeldedaten ausführen, um Anmeldedaten für Ihren Cluster zu widerrufen und neue auszugeben. Durch diesen Vorgang wird der private Schlüssel der Clusterzertifizierungsstelle rotiert und es müssen Knoten neu erstellt werden, um neue Anmeldedaten zu verwenden. Sie müssen die Rotation von Anmeldedaten für Ihren Cluster starten und beenden, bevor Ihre aktuellen Anmeldedaten ablaufen. Bei der Rotation von Anmeldedaten erfolgt auch eine IP-Rotation.
Rotation von Anmeldedaten durchführen
Sie sollten die Anmeldedaten regelmäßig und vor dem Ablaufdatum Ihrer aktuellen Anmeldedaten rotieren. Bei der Rotation von Anmeldedaten müssen die Knoten neu erstellt werden, um die neuen Anmeldedaten zu nutzen. Dies kann eine Unterbrechung der Ausführung von Arbeitslasten sein. Planen Sie Wartungszeiträume und führen Sie die Rotationen während Wartungsfenstern durch, um unerwartete Ausfallzeiten von Arbeitslasten oder nicht reagierende API-Clients außerhalb des Clusters zu vermeiden.
Weitere Informationen dazu, wie sich die Verfügbarkeit von Wartungsfenstern auf die Rotation von Clusteranmeldedaten auswirkt und welche Art von Unterbrechung in Ihrem Cluster während der einzelnen Schritte einer Rotation auftritt, finden Sie in der Zeile für die Rotation von Anmeldedaten in der Tabelle Manuelle Änderungen, bei denen die Knoten mit einer Knoten-Upgrade-Strategie neu erstellt werden und Wartungsrichtlinien berücksichtigt werden. GKE ist für das Aktualisieren der Knoten auf die Ressourcenverfügbarkeit angewiesen. Weitere Informationen zu Knotenupdates finden Sie unter Unterbrechungen durch Knotenupdates planen.
Gültigkeitsdauer von Clusteranmeldedaten
Die Lebensdauer von Clusteranmeldedaten hängt in der Regel davon ab, wann der Cluster erstellt wurde oder wann die Anmeldedaten zuletzt rotiert wurden:
- Cluster, die vor etwa Oktober 2021 erstellt wurden, haben eine Zertifizierungsstelle mit einer Gültigkeitsdauer von 5 Jahren.
- Für Cluster, die nach etwa Oktober 2021 erstellt wurden, gilt eine Zertifizierungsstellengültigkeit von 30 Jahren.
- Bei Clustern, die nach etwa Januar 2022 rotiert wurden, beträgt die Gültigkeitsdauer des Zertifizierungsstellenzertifikats 30 Jahre.
Cluster mit ablaufenden oder abgelaufenen Anmeldedaten finden
Wenn die Anmeldedaten Ihres Clusters in den nächsten 180 Tagen ablaufen oder die Anmeldedaten Ihres Clusters bereits abgelaufen sind, bietet GKE eine Anleitung mit einer Statistik und Empfehlung, dass Sie eine Rotation von Anmeldedaten für diesen Cluster durchführen müssen. Diese Anleitung enthält das Ablaufdatum der Anmeldedaten. Sie können sich diese Anleitung in der Google Cloud -Konsole ansehen. Alternativ können Sie diese Anleitung mit der gcloud CLI oder der Recommender API aufrufen und dabei den Untertyp CLUSTER_CA_EXPIRATION
angeben.
Wenn Sie eine Statistik und eine Empfehlung für einen Cluster erhalten, müssen Sie eine Rotation von Anmeldedaten durchführen. Andernfalls startet GKE automatisch eine Rotation von Anmeldedaten innerhalb von 30 Tagen nach dem Ablaufdatum der aktuellen Zertifizierungsstelle, wie im nächsten Abschnitt erläutert. Nach Abschluss der Rotation von Anmeldedaten kann es bis zu 36 Stunden dauern, bis die Statistik und Empfehlungen behoben sind.
GKE-Automatisierungsrichtlinie zur Vermeidung von Clusterausfällen
Damit Ihr Cluster nicht in einen nicht wiederherstellbaren Zustand wechselt, wenn Ihre aktuellen Anmeldedaten ablaufen, startet GKE automatisch eine Rotation von Anmeldedaten innerhalb von 30 Tagen nach dem Ablaufdatum Ihrer aktuellen Zertifizierungsstelle. Ihre Clusterzertifizierungsstelle läuft beispielsweise am 6. Januar 2024 ab und Sie rotieren Ihre Anmeldedaten nicht bis zum 5. Dezember 2023. GKE startet eine automatische Rotation am oder nach dem 7. Dezember 2023 und versucht, diese Rotation sieben Tage nach dem Start des Vorgangs abzuschließen. Diese automatische Rotation ist der letzte Versuch zur Vermeidung eines Clusterausfalls. Dabei gilt Folgendes:
- Bei automatischen Rotationen werden in der Regel Wartungsfenster oder Wartungsausschlüsse berücksichtigt. GKE behält sich jedoch das Recht vor, innerhalb von 30 Tagen nach Ablauf Schritte zum Rotieren der Anmeldedaten auszuführen, unabhängig von der Verfügbarkeit der Wartung. Innerhalb von 30 Tagen ignoriert GKE die Verfügbarkeit für die Wartung für den ersten Schritt, nämlich Rotation starten.
- Wenn die Wartungsverfügbarkeit verhindert, dass GKE die Rotation anfänglich abschließt, versucht GKE weiterhin, die Rotation bis zum Ablaufdatum der Anmeldedaten abzuschließen. Danach kann der Cluster nicht mehr wiederhergestellt werden.
- Nach Abschluss der Rotation von Anmeldedaten werden die ablaufenden Anmeldedaten widerrufen. Kubernetes API-Clients außerhalb des Clusters, z. B. kubectl in lokalen Umgebungen, funktionieren erst, wenn Sie die Clients für die Verwendung der neuen Anmeldedaten konfigurieren.
- Neuerstellungen von Knotenpools während der Rotation können zu Unterbrechungen der Arbeitslasten führen.
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.
- Prüfen Sie, ob Sie einen vorhandenen Autopilot- oder Standardcluster haben. Erstellen Sie einen Autopilot-Cluster, falls erforderlich.
Gültigkeitsdauer von Anmeldedaten prüfen
Wir empfehlen, die Lebensdauer Ihrer Anmeldedaten vor und nach der Rotation von Anmeldedaten zu prüfen, damit Sie die Gültigkeit der Root-Zertifizierungsstelle des Clusters kennen.
Führen Sie den folgenden Befehl aus, um die Lebensdauer der Anmeldedaten für einen einzelnen Cluster zu prüfen:
gcloud container clusters describe CLUSTER_NAME \
--location LOCATION \
--format "value(masterAuth.clusterCaCertificate)" \
| base64 --decode \
| openssl x509 -noout -dates
Die Ausgabe sieht in etwa so aus:
notBefore=Mar 17 16:45:34 2023 GMT
notAfter=Mar 9 17:45:34 2053 GMT
Wenn Sie diesen Befehl nach dem Starten einer Rotation von Anmeldedaten ausführen, ist die Ausgabe die Lebensdauer des ursprünglichen Zertifikats. Dieses Zertifikat bleibt gültig, bis Sie die Rotation abgeschlossen haben. Nach Abschluss der Rotation ist die Ausgabe die Lebensdauer des neuen Zertifikats.
Führen Sie den folgenden Befehl aus, um die Lebensdauer der Anmeldedaten für alle Cluster in einem Projekt zu prüfen:
gcloud container clusters list --project PROJECT_ID \
--format="value(name,masterAuth.clusterCaCertificate)" | \
while read -r cluster ca; do \
expiry_date=$(echo -e "$ca" | base64 --decode | openssl x509 -noout -enddate | awk -F'=' '{print $2}'); \
printf "%-40s | %s\n" "$cluster" "$expiry_date" ; \
done | \
column -t | \
awk -F',' 'BEGIN{print "Cluster Name | Certificate Expiry Date"} {print}'
Rotation von Anmeldedaten durchführen
Jede Rotation von Anmeldedaten umfasst die folgenden Schritte:
- Rotation starten: Die Steuerungsebene beginnt, zusätzlich zur ursprünglichen IP-Adresse eine neue IP-Adresse zu verwenden. Neue Anmeldedaten werden für Arbeitslasten und die Steuerungsebene ausgegeben.
- Neuerstellung von Knoten: GKE erstellt Clusterknoten neu, damit die Knoten die neue IP-Adresse und die neuen Anmeldedaten verwenden. Dabei wird die Verfügbarkeit von Wartungsfenstern und Ausschlüssen berücksichtigt. Sie können Ihre Knoten auch manuell neu erstellen, indem Sie ein Knotenversions-Upgrade auf dieselbe GKE-Version durchführen, die auf den Knoten bereits ausgeführt wird.
- API-Clients aktualisieren: Aktualisieren Sie nach dem Starten der Rotation alle Cluster-API-Clients wie Entwicklungsmaschinen mit
kubectl
, um über die neue IP-Adresse mit der Steuerungsebene zu kommunizieren. - Rotation abschließen: Die Steuerungsebene beendet die Bereitstellung von Traffic über die ursprüngliche IP-Adresse. Alte Anmeldedaten werden widerrufen, einschließlich vorhandener statischer Anmeldedaten für Kubernetes-Dienstkonten.
Wenn Sie eine Rotation von Anmeldedaten starten oder wenn GKE automatisch eine Rotation startet, führt GKE diese Schritte automatisch aus und versucht, die Rotation abzuschließen. Wenn das Ablaufdatum des Clusters in jedem Schritt mehr als 30 Tage in der Zukunft liegt, berücksichtigt GKE die Verfügbarkeit von Wartungsarbeiten. Bei automatischen Rotationen vor dem Ablauf des Clusters behält sich GKE das Recht vor, die Wartungsverfügbarkeit zu ignorieren, um zu verhindern, dass Ihr Cluster nicht mehr wiederhergestellt werden kann. Innerhalb von 30 Tagen ignoriert GKE die Wartungsverfügbarkeit für den ersten Schritt, nämlich die Rotation starten.
Wenn Sie eine Rotation von Anmeldedaten nicht innerhalb von sieben Tagen nach Beginn durchführen, versucht GKE, die Rotation für Sie abzuschließen. Wenn auf einigen Knoten in Ihrem Cluster noch die vorherigen Anmeldedaten verwendet werden, schlägt der automatische Abschlussvorgang fehl. GKE versucht jedoch weiterhin, den Vorgang abzuschließen, bis die Anmeldedaten ablaufen und der Cluster nicht mehr wiederhergestellt werden kann. Sie sollten die Rotation von Anmeldedaten nach Beginn der Rotation manuell verfolgen und abschließen. Wenn Sie die Blockierungen der Wartungsverfügbarkeit überschreiben möchten, führen Sie die Befehle in den folgenden Abschnitten aus, um die entsprechenden Phasen des Rotationsprozesses manuell auszulösen. Verlassen Sie sich nicht auf die automatische Vervollständigung, da sie nur auf Best-Effort-Basis erfolgt.
Rotation starten
Führen Sie den folgenden Befehl aus, um eine Rotation von Anmeldedaten zu starten:
gcloud container clusters update CLUSTER_NAME \
--location LOCATION \
--start-credential-rotation
Mit diesem Befehl werden neue Anmeldedaten erstellt, diese Anmeldedaten an die Steuerungsebene ausgegeben und die Steuerungsebene so konfiguriert, dass sie zwei IP-Adressen verwendet: die ursprüngliche IP-Adresse und eine neue IP-Adresse.
Knoten neu erstellen
Nach der Neukonfiguration des API-Servers für die Bereitstellung einer neuen IP-Adresse aktualisiert GKE automatisch Ihre Knoten, um die neue IP-Adresse und die neuen Anmeldedaten zu verwenden, wenn eine Wartung verfügbar ist. GKE aktualisiert alle Knoten auf die GKE-Version, die die Knoten bereits ausführen. Dadurch werden die Knoten neu erstellt. Weitere Informationen finden Sie unter Knotenpool-Upgrades.
Standardmäßig schließt GKE die Rotation von Anmeldedaten sieben Tage nach dem Start automatisch ab. Wenn ein aktives Wartungsfenster oder ein aktiver Ausschluss in Ihrem Cluster verhindert, dass GKE bestimmte Knoten während dieses Zeitraums erstellt, kann die Rotation von Anmeldedaten nicht abgeschlossen werden. GKE versucht jedoch weiterhin, die Knoten neu zu erstellen und die Rotation abzuschließen, bis GKE aufgrund der Wartungsverfügbarkeit fortfahren kann. Bei wichtigen Ereignissen wie Google Cloud Next pausiert GKE möglicherweise auch die automatische Neuerstellung von Knoten, um Unterbrechungen zu vermeiden.
Wenn Sie Wartungsausschlüsse oder Wartungsfenster verwenden, die zu einem Fehlschlagen der Rotation führen können, erzwingen Sie die Neuerstellung Ihrer Knoten durch GKE, indem Sie einen der folgenden Schritte ausführen:
So aktualisieren Sie die Steuerungsebene in Autopilot-Clustern manuell:
gcloud container clusters upgrade CLUSTER_NAME \ --location=LOCATION \ --cluster-version=VERSION
Ersetzen Sie
VERSION
durch die GKE-Version, die der Cluster bereits verwendet.In Standardclustern müssen Sie jeden Knotenpool manuell upgraden.
Weitere Informationen finden Sie unter Manuelle Änderungen, die GKE-Wartungsrichtlinien berücksichtigen.
Fortschritt der Neuerstellung des Knotenpools prüfen
Führen Sie zur Überwachung des Rotationsvorgangs den folgenden Befehl aus:
gcloud container operations list \ --filter="operationType=UPGRADE_NODES AND status=RUNNING" \ --format="value(name)"
Dieser Befehl gibt die Vorgangs-ID des Knotenupgrades 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 mehrere Knotenpools nutzen, verwenden Sie diese Anweisungen, um alle einzelnen Vorgänge abzufragen.
API-Clients aktualisieren
Nachdem Sie die Rotation von Anmeldedaten gestartet haben, müssen Sie alle API-Clients außerhalb des Clusters (z. B. kubectl
auf Entwicklermaschinen) aktualisieren, um die neuen Anmeldedaten zu verwenden und auf die neue IP-Adresse der Steuerungsebene 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 \
--location LOCATION
Anmeldedaten des Kubernetes-Dienstkonto aktualisieren
Wenn Sie statische Anmeldedaten für Dienstkonten in Ihrem Cluster verwenden, wechseln Sie zu kurzlebigen Anmeldedaten. Durch das Beenden der Rotation werden vorhandene ServiceAccount-Anmeldedaten ungültig. Wenn Sie keine kurzlebigen Anmeldedaten verwenden möchten, müssen Sie die statischen Anmeldedaten für alle Dienstkonten im Cluster neu erstellen, bevor Sie die Rotation abschließen.
Führen Sie den folgenden Befehl aus, um statische ServiceAccount-Anmeldedaten zu finden, die in Ihrem Cluster vorhanden sind:
kubectl get secrets --all-namespaces --field-selector type=kubernetes.io/service-account-token
Wenn die Ausgabe dieses Befehls No resources found
ist, hat Ihr Cluster keine statischen ServiceAccount-Anmeldedaten.
Fest codierte IP-Adressen und Firewallregeln aktualisieren
Wenn Sie die IP-Adresse der Steuerungsebene in Ihrer Umgebung fest codiert haben oder Firewallregeln vorhanden sind, die auf die IP-Adresse der Steuerungsebene ausgerichtet sind, aktualisieren Sie die Adressen auf die neue IP-Adresse. Wenn Sie die Rotation abschließen, ohne die IP-Adressen in Anwendungen und Firewallregeln zu aktualisieren, kann es bei diesen Ressourcen zu Unterbrechungen kommen, wenn GKE die Bereitstellung über die vorherige IP-Adresse der Steuerungsebene einstellt.
Rotation abschließen
Nachdem Sie API-Clients außerhalb des Clusters aktualisiert haben, schließen Sie die Rotation ab, um die Steuerungsebene so zu konfigurieren, dass sie nur die neuen Anmeldedaten und die neue IP-Adresse verwendet:
gcloud container clusters update CLUSTER_NAME \
--location=LOCATION \
--complete-credential-rotation
Wenn die Rotation von Anmeldedaten nicht abgeschlossen wird und eine Fehlermeldung ähnlich der folgenden zurückgegeben wird, lesen Sie den Hilfeartikel Fehler 400: Knotenpool muss neu erstellt werden:
ERROR: (gcloud.container.clusters.update) ResponseError: code=400, message=Node pool "test-pool-1" requires recreation.
GKE berücksichtigt die Wartungsverfügbarkeit beim automatischen Abschließen der Rotation. GKE ignoriert diese Verfügbarkeit jedoch möglicherweise innerhalb von 30 Tagen vor dem Ablaufdatum, um zu verhindern, dass der Cluster nicht mehr wiederhergestellt werden kann. Wenn der Abschluss der Rotation anfangs fehlschlägt und die Rotation vor mindestens sieben Tagen gestartet wurde, versucht GKE, die Rotation bis zum Ablaufdatum der Anmeldedaten abzuschließen. Danach kann der Cluster nicht mehr wiederhergestellt werden.