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:
- Achten Sie darauf, dass die Google Kubernetes Engine API aktiviert ist. Aktivieren Sie Google Kubernetes Engine API
- Prüfen Sie, ob das Cloud SDK installiert ist.
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.
-
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
- Folgen Sie der Anleitung, um
gcloud
zur Verwendung Ihres Google Cloud-Kontos zu autorisieren. - Erstellen Sie eine neue Konfiguration oder wählen Sie eine vorhandene aus.
- Wählen Sie ein Google Cloud-Projekt aus.
- 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
- Mehr über Alias-IPs erfahren
- Mehr über den IP-Masquerade-Agent erfahren
- Autorisierte Netzwerke für Masterzugriff erstellen