Auf dieser Seite wird gezeigt, wie Sie die Netzwerkisolierung für die Steuerungsebene und die Clusterknoten Ihres Clusters ändern. Das Ändern des Isolierungsmodus eines Clusters wird nur für Cluster unterstützt, die Private Service Connect verwenden, um die Steuerungsebene und die Knoten privat zu verbinden.
Gründe zum Ändern der Clusterisolierung
Wenn Sie Cluster erstellen, die Private Service Connect verwenden, weist GKE der Steuerungsebene standardmäßig eine externe IP-Adresse (externer Endpunkt) zu. Das bedeutet, dass jede VM mit einer externen IP-Adresse die Steuerungsebene erreichen kann.
Wenn Sie autorisierte Netzwerke konfigurieren, können Sie die IP-Adressbereiche einschränken, die Zugriff auf die Steuerungsebene des Clusters haben. Die Steuerungsebene ist jedoch weiterhin über Google Cloud-eigene IP-Adressen zugänglich. Beispielsweise kann jede VM mit einer externen IP-Adresse, die in Google Cloud zugewiesen ist, die externe IP-Adresse Ihrer Steuerungsebene erreichen. Eine VM ohne die entsprechenden Anmeldedaten kann die Knoten hingegen nicht erreichen.
Vorteile
Die Netzwerkisolierung bietet folgende Vorteile:
- Sie können im selben Cluster eine Mischung aus privaten und öffentlichen Knoten konfigurieren. Dadurch können Sie die Kosten für Knoten reduzieren, die keine externe IP-Adresse für den Zugriff auf öffentliche Dienste im Internet benötigen.
- Sie können den Zugriff auf die Steuerungsebene von Google Cloud-eigenen IP-Adressen oder von externen IP-Adressen blockieren, um die Steuerungsebene des Clusters vollständig zu isolieren.
Auf dieser Seite erfahren Sie, wie Sie dieses Standardverhalten mit den folgenden Aktionen ändern können:
- Zugriff auf die Steuerungsebene über IP-Adressen von Google Cloud aktivieren oder deaktivieren. Durch diese Aktion wird verhindert, dass eine VM mit einer Google Cloud-eigenen IP-Adresse Ihre Steuerungsebene erreicht. Weitere Informationen finden Sie unter Zugriff auf Steuerungsebene von Google Cloud-IP-Adressen blockieren.
- Aktivieren oder deaktivieren Sie den öffentlichen Zugriff auf den externen Endpunkt der Steuerungsebene. Dadurch wird der Cluster vollständig isoliert. Die Steuerungsebene ist über öffentliche IP-Adressen nicht zugänglich. Weitere Informationen finden Sie unter Steuerungsebene des Clusters isolieren.
- Öffentliche IP-Adressen von Knoten entfernen. Dadurch werden die Arbeitslasten vollständig isoliert. Weitere Informationen finden Sie unter Knotenpools isolieren.
Hinweis
Führen Sie die folgenden Schritte durch, bevor Sie beginnen:
- Aktivieren Sie die Google Kubernetes Engine API. Google Kubernetes Engine API aktivieren
- Wenn Sie die Google Cloud CLI für diese Aufgabe 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
gcloud components update
ab.
- Sehen Sie sich die Einschränkungen von Private Service Connect an.
Zugriff auf Steuerungsebene von Google Cloud-VMs, Cloud Run und Cloud Functions blockieren
Wenn Sie einen Cluster mit dem vordefinierten Private Service Connect als öffentlich erstellt haben, ist das Feature für autorisierte Netzwerke standardmäßig deaktiviert.
Wenn Sie einen Cluster mit einem vordefinierten Private Service Connect als privat erstellt haben, ist das Feature für autorisierte Netzwerke standardmäßig aktiviert. Informationen dazu, welche IP-Adressen immer auf die GKE-Steuerungsebene zugreifen können, finden Sie unter Zugriff auf Endpunkte der Steuerungsebene.
So entfernen Sie den Zugriff auf die Steuerungsebene Ihres Clusters von Google Cloud-VMs, Cloud Run und Cloud Functions: Verwenden Sie die gcloud CLI oder die Google Cloud Console:
gcloud
Aktualisieren Sie Ihren Cluster, um das Flag
--no-enable-google-cloud-access
zu verwenden:gcloud container clusters update CLUSTER_NAME \ --no-enable-google-cloud-access
Ersetzen Sie
CLUSTER_NAME
durch den Namen des Clusters.Prüfen Sie, ob das Flag
--no-enable-google-cloud-access
angewendet wird:gcloud container clusters describe CLUSTER_NAME | grep "gcpPublicCidrsAccessEnabled"
Die Ausgabe sieht in etwa so aus:
gcpPublicCidrsAccessEnabled: false
Console
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:
Klicken Sie auf den Namen des Clusters, den Sie ändern möchten.
Klicken Sie unter Netzwerk im Feld Autorisierte Netzwerke der Steuerungsebene auf edit Autorisierte Netzwerke der Steuerungsebene bearbeiten.
Entfernen Sie das Häkchen aus dem Kästchen Zugriff über öffentliche Google Cloud-IP-Adressen zulassen.
Klicken Sie auf Änderungen speichern.
Zugriff auf die Steuerungsebene über Google Cloud-IP-Adressen gewähren
Führen Sie den folgenden Befehl aus, um den Zugriff von öffentlichen IP-Adressen, die Google Cloud gehören auf die Steuerungsebene des Clusters zuzulassen:
gcloud
gcloud container clusters update CLUSTER_NAME \
--enable-google-cloud-access
Ersetzen Sie CLUSTER_NAME
durch den Namen des Clusters.
IP-Adressen von Google Cloud können auf die Steuerungsebene des Clusters zugreifen.
Console
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:
Klicken Sie auf den Namen des Clusters, den Sie ändern möchten.
Klicken Sie unter Netzwerk im Feld Autorisierte Netzwerke der Steuerungsebene auf edit Autorisierte Netzwerke der Steuerungsebene bearbeiten.
Entfernen Sie das Häkchen aus dem Kästchen Zugriff über öffentliche Google Cloud-IP-Adressen zulassen.
Klicken Sie auf Änderungen speichern.
Externen Zugriff auf die Steuerungsebene in Clustern deaktivieren, die Private Service Connect verwenden
Als öffentlich erstellte Cluster
Wenn Sie einen öffentlichen GKE-Cluster erstellen, weist GKE der Steuerungsebene standardmäßig eine externe IP-Adresse (externer Endpunkt) zu. Wenn Sie GKE anweisen, die Zuweisung dieses externen Endpunkts aufzuheben, aktiviert GKE einen privaten Endpunkt. Der Zugriff auf die Steuerungsebene von externen IP-Adressen ist deaktiviert, mit Ausnahme von Google Cloud-Diensten, die Clusterverwaltungsprozesse ausführen. Weitere Informationen zum aktivierten privaten Endpunkt und seiner Einschränkung finden Sie unter Öffentliche Cluster mit Private Service Connect.
Verwenden Sie die gcloud CLI, um die Isolation der Steuerungsebene für einen öffentlich erstellten Cluster zu ändern:
Aktualisieren Sie Ihren Cluster, um das Flag
--enable-private-endpoint
zu verwenden:gcloud container clusters update CLUSTER_NAME \ --enable-private-endpoint
Ersetzen Sie
CLUSTER_NAME
durch den Namen des vorhandenen Clusters.Prüfen Sie, ob das Flag
--enable-private-endpoint
angewendet wird:gcloud container clusters describe CLUSTER_NAME | grep "enablePrivateEndpoint"
Die Ausgabe sieht in etwa so aus:
enablePrivateEndpoint:true
Als private Cluster erstellte Cluster
Wenn Sie einen privaten GKE-Cluster erstellen, weist GKE der Steuerungsebene standardmäßig eine externe IP-Adresse (externer Endpunkt) und eine interne IP-Adresse (interner Endpunkt) zu. Sie können die Zuweisung dieses externen Endpunkts aufheben, aber nicht die Zuweisung des internen Endpunkts.
Wenn Sie GKE anweisen, die Zuweisung des externen Endpunkts aufzuheben, wird der externe Zugriff auf Ihre Steuerungsebene von externen IP-Adressen deaktiviert.
Verwenden Sie die gcloud CLI oder die Google Cloud Console, um den externen Endpunkt in einem Cluster zu entfernen, der als privater Cluster erstellt wurde:
gcloud
Aktualisieren Sie Ihren Cluster, um das Flag
--enable-private-endpoint
zu verwenden:gcloud container clusters update CLUSTER_NAME \ --enable-private-endpoint
Ersetzen Sie
CLUSTER_NAME
durch den Namen des vorhandenen Clusters.Prüfen Sie, ob das Flag
--enable-private-endpoint
angewendet wird:gcloud container clusters describe CLUSTER_NAME | grep "enablePrivateEndpoint"
Die Ausgabe sieht in etwa so aus:
enablePrivateEndpoint: true
Console
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:
Klicken Sie auf den Namen des Clusters, den Sie ändern möchten.
Klicken Sie unter Clustergrundlagen im Feld Externer Endpunkt auf edit Zugriff auf externe Steuerungsebene bearbeiten.
Entfernen Sie das Häkchen aus dem Kästchen Zugriff über öffentliche Google Cloud-IP-Adressen zulassen.
Klicken Sie auf Änderungen speichern.
Externen Zugriff auf die Steuerungsebene in Clustern aktivieren, die Private Service Connect verwenden
Verwenden Sie die gcloud CLI oder die Google Cloud Console, um der Steuerungsebene in Clustern, die als öffentlich oder privat erstellt wurden, eine externe IP-Adresse (externer Endpunkt) zuzuweisen:
gcloud
Führen Sie dazu diesen Befehl aus:
gcloud container clusters update CLUSTER_NAME \
--no-enable-private-endpoint
Ersetzen Sie CLUSTER_NAME
durch den Namen des vorhandenen Clusters.
Externe IP-Adressen können auf die Steuerungsebene des Clusters zugreifen.
Console
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:
Klicken Sie auf den Namen des Clusters, den Sie ändern möchten.
Klicken Sie unter Clustergrundlagen im Feld Externer Endpunkt auf edit Zugriff auf externe Steuerungsebene bearbeiten.
Aktivieren Sie das Kästchen Zugriffssteuerungsebene über die externe IP-Adresse.
Klicken Sie auf Änderungen speichern.
Knotenpools isolieren
Sie können GKE anweisen, Knotenpools nur mit privaten IP-Adressen bereitzustellen. Nachdem Sie einen öffentlichen Knotenpool im privaten Modus aktualisiert haben, können Arbeitslasten, die öffentlichen Internetzugang benötigen, möglicherweise fehlschlagen. Bevor Sie die Knotenisolation ändern, lesen Sie sich die Einschränkungen für Private Service Connect-Cluster durch. Sie können diese Einstellung für Cluster bearbeiten, die als öffentlich oder privat erstellt wurden.
Autopilot
Fügen Sie in Autopilot-Clustern eine Markierung auf vorhandenen Pods hinzu, damit GKE sie nur auf privaten Knoten bereitstellt:
Wenn Sie möchten, dass GKE einen Pod auf privaten Knoten plant, fügen Sie der Pod-Spezifikation den folgenden nodeSelector hinzu:
cloud.google.com/private-node=true
GKE erstellt Ihre Pods auf privaten Knoten neu. Migrieren Sie jede Arbeitslast separat und überwachen Sie die Migration, um Arbeitslastunterbrechungen zu vermeiden.
Wenn Sie eine freigegebene VPC verwenden, aktivieren Sie den privaten Google-Zugriff, nachdem Sie den Modus der Clusterisolierung geändert haben. Wenn Sie Cloud NAT verwenden, müssen Sie den privaten Google-Zugriff nicht aktivieren.
Standard
gcloud
Führen Sie den folgenden Befehl aus, um Knoten über private IP-Adressen in einem vorhandenen Knotenpool bereitzustellen:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-private-nodes
Dabei gilt:
NODE_POOL_NAME
: der Name des Knotenpools, den Sie bearbeiten möchten.CLUSTER_NAME
ist der Name des GKE-Clusters.Wenn Sie eine freigegebene VPC verwenden, aktivieren Sie den privaten Google-Zugriff, nachdem Sie den Modus der Clusterisolierung geändert haben. Wenn Sie Cloud NAT verwenden, müssen Sie den privaten Google-Zugriff nicht aktivieren.
Console
Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf:
Klicken Sie in der Liste der Cluster auf den Clusternamen.
Klicken Sie auf der Seite Cluster auf den Tab Knoten.
Klicken Sie unter Knotenpools auf den Namen des Knotenpools.
Klicken Sie auf Bearbeiten.
Klicken Sie auf das Kästchen Private Knoten aktivieren.
Klicken Sie auf Speichern.
Isolierung des Knotenpools zurücksetzen
Führen Sie in Standardclustern den folgenden Befehl aus, um GKE anzuweisen, Knotenpools mit öffentlichen IP-Adressen bereitzustellen:
gcloud container node-pools update NODE_POOL_NAME \
--cluster=CLUSTER_NAME \
--no-enable-private-nodes
Dabei gilt:
NODE_POOL_NAME
: der Name des Knotenpools, den Sie bearbeiten möchten.CLUSTER_NAME
ist der Name des GKE-Clusters.
Öffentliche IP-Adressen können auf Ihre Clusterknoten zugreifen.
Beschränkungen
Bevor Sie den Modus der Clusterisolierung ändern, beachten Sie die folgenden Einschränkungen:
- Sie können den Isolierungsmodus nur für Cluster ändern, die Private Service Connect verwenden.
- Das Ändern des Isolierungsmodus wird in öffentlichen Clustern, die in Legacy-Netzwerken ausgeführt werden, nicht unterstützt.
- Nachdem Sie einen öffentlichen Knotenpool im privaten Modus aktualisiert haben, können Arbeitslasten, die öffentlichen Internetzugang benötigen, in den folgenden Szenarien fehlschlagen:
- Cluster in einem freigegebenen VPC-Netzwerk, in dem Private Service Connect nicht aktiviert ist. Aktivieren Sie Private Service Connect manuell, damit GKE das zugewiesene Knoten-Image sicher herunterlädt. Bei Clustern, die sich nicht in einem freigegebenen VPC-Netzwerk befinden, aktiviert GKE Private Service Connect automatisch.
- Arbeitslasten, die Zugriff auf das Internet benötigen, wobei Cloud NAT nicht aktiviert oder keine benutzerdefinierte NAT-Lösung definiert ist. Aktivieren Sie Cloud NAT oder eine benutzerdefinierte NAT-Lösung, um ausgehenden Traffic zum Internet zuzulassen.
Private Service Connect-Cluster, die als öffentlich oder privat erstellt wurden
Bei Clustern, die als öffentlich erstellt wurden und Private Service Connect verwenden, ist ein privater Endpunkt aktiviert. In diesem privaten Endpunkt werden die internen IP-Adressen in URLs für neue oder vorhandene Webhooks, die Sie konfigurieren, nicht unterstützt. So verringern Sie diese Inkompatibilität:
- Richten Sie einen Webhook mit einer privaten Adresse per URL ein.
- Erstellen Sie einen monitorlosen Dienst ohne Selektor.
- Erstellen Sie einen entsprechenden Endpunkt für das erforderliche Ziel.
Private Service Connect-Cluster, die als öffentlich erstellt wurden
Nur in Private Service Connect-Clustern, die als öffentlich erstellt wurden, können alle privaten IP-Adressen aus dem Netzwerk des Clusters immer den privaten Endpunkt des Clusters erreichen. Weitere Informationen zum Zugriff auf die Steuerungsebene finden Sie unter Autorisierte Netzwerke für den Zugriff auf Steuerungsebene.