Netzwerkisolation in GKE anpassen


Auf dieser Seite wird beschrieben, wie Sie die Netzwerkisolation für Google Kubernetes Engine-Cluster (GKE) konfigurieren, wenn Sie einen Cluster erstellen oder aktualisieren.

Best Practice:

Planen und entwerfen Sie die Clusternetzwerkisolierung gemeinsam mit den Netzwerkarchitekten, Netzwerkadministratoren oder einem anderen Team Ihrer Organisation, das für die Definition, Implementierung und Wartung der Netzwerkarchitektur verantwortlich ist.

Funktionsweise der Cluster-Netzwerkisolation

In einem GKE-Cluster hängt die Netzwerkisolation davon ab, wer und wie auf die Clusterkomponenten zugreifen kann. Sie können Folgendes festlegen:

  • Zugriff auf die Steuerungsebene: Sie können externen Zugriff, eingeschränkten Zugriff oder uneingeschränkten Zugriff auf die Steuerungsebene anpassen.
  • Clusternetzwerk: Sie können festlegen, wer auf die Knoten in Standardclustern oder die Arbeitslasten in Autopilot-Clustern zugreifen kann.

Beachten Sie vor dem Erstellen Ihres Clusters Folgendes:

  1. Wer kann auf die Steuerungsebene zugreifen und wie wird die Steuerungsebene freigegeben?
  2. Wie werden Ihre Knoten oder Arbeitslasten freigegeben?

Folgen Sie dazu den Planungs- und Designrichtlinien unter Netzwerkisolation.

Limits und Einschränkungen

Standardmäßig werden Ihre Cluster in GKE als VPC-native Cluster erstellt. VPC-native Cluster unterstützen keine Legacy-Netzwerke.

Maximieren Sie die folgenden Abschnitte, um die Regeln für IP-Adressbereiche und Traffic beim Erstellen eines Clusters aufzurufen.

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 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.

Zugriff auf die Steuerungsebene konfigurieren

Wenn Sie einen GKE-Cluster in einer beliebigen Version mit der Google Cloud CLI oder in Version 1.29 und höher mit der Console erstellen, ist die Steuerungsebene über die folgenden Schnittstellen zugänglich:

DNS-basierter Endpunkt

Der Zugriff auf die Steuerungsebene hängt von der DNS-Auflösung des Quelltraffics ab. Wenn Sie den DNS-basierten Endpunkt aktivieren, haben Sie folgende Vorteile:

  • Erstellen Sie eine dynamische Zugriffsrichtlinie basierend auf IAM-Richtlinien.
  • Sie können von anderen VPC-Netzwerken oder externen Standorten auf die Steuerebene zugreifen, ohne Bastion Hosts oder Proxyknoten einrichten zu müssen.

Informationen zum Konfigurieren des Zugriffs auf den DNS-basierten Endpunkt finden Sie unter DNS-basierten Endpunktzugriff definieren.

IP-basierte Endpunkte

Der Zugriff auf Endpunkte der Steuerungsebene hängt von der Quell-IP-Adresse ab und wird von Ihren autorisierten Netzwerken gesteuert. Sie können den Zugriff auf die IP-basierten Endpunkte der Steuerungsebene verwalten, darunter:

  • Aktivieren oder deaktivieren Sie den IP-basierten Endpunkt.
  • Aktivieren oder deaktivieren Sie den externen Endpunkt, um den Zugriff von externem Traffic zuzulassen. Der interne Endpunkt ist immer aktiviert, wenn Sie die IP-basierten Endpunkte der Steuerungsebene aktivieren.
  • Fügen Sie autorisierte Netzwerke hinzu, um den Zugriff von öffentlichen IP-Adressen zuzulassen oder zu verweigern. Wenn Sie keine autorisierten Netzwerke konfigurieren, ist die Steuerungsebene von jeder externen IP-Adresse aus zugänglich. Dazu gehören öffentliche IP-Adressen im Internet oder in der Google Cloud ohne Einschränkungen.
  • Sie können den Zugriff von allen oder einzelnen privaten IP-Adressen im Cluster auf die Zulassungsliste setzen oder verweigern.
  • Fügen Sie externe IP-Adressen von Google Cloud zur Zulassungsliste hinzu oder lehnen Sie den Zugriff von diesen ab. Das sind externe IP-Adressen, die einer beliebigen VM zugewiesen sind, die von einem in Google Cloudgehosteten Kunden verwendet wird.
  • IP-Adressen in anderen Regionen von Google Cloud auf die Zulassungsliste setzen oder den Zugriff verweigern.

Lesen Sie sich die Einschränkungen der Verwendung von IP-basierten Endpunkten durch, bevor Sie den Zugriff auf die Steuerungsebene definieren.

Cluster erstellen und Zugriff auf die Steuerungsebene definieren

Sie können einen Autopilot- oder Standardcluster mit der Google Cloud CLI oder der Google Cloud Console erstellen oder aktualisieren.

Console

Führen Sie die folgenden Schritte aus, um einen Cluster zu erstellen:

  1. Rufen Sie in der Google Cloud -Konsole die Seite Google Kubernetes Engine auf.

    Zur Seite "Google Kubernetes Engine"

  2. Klicken Sie auf Erstellen.

  3. Konfigurieren Sie die Attribute Ihres Clusters entsprechend den Anforderungen Ihres Projekts.

  4. Klicken Sie im Navigationsmenü auf Netzwerk.

  5. Konfigurieren Sie unter Zugriff auf Steuerungsebene die Endpunkte der Steuerungsebene:

    1. Klicken Sie das Kästchen Zugriff über DNS an, um die DNS-basierten Endpunkte der Steuerungsebene zu aktivieren.
    2. Aktivieren Sie das Kästchen Zugriff über IPv4-Adressen, um die IP‑basierten Endpunkte der Steuerungsebene zu aktivieren. Verwenden Sie die Konfiguration unter IP-Adressen für den Zugriff auf die Steuerungsebene definieren, um den Zugriff auf die IP-basierten Endpunkte anzupassen.

gcloud

Führen Sie für Autopilot-Cluster den folgenden Befehl aus:

  gcloud container clusters create-auto CLUSTER_NAME \
    --enable-ip-access  \
    --enable-dns-access

Führen Sie für Standardcluster den folgenden Befehl aus:

  gcloud container clusters create CLUSTER_NAME \
      --enable-ip-access \
      --enable-dns-access

Ersetzen Sie Folgendes:

  • CLUSTER_NAME: Der Name Ihres Clusters.

Beide Befehle enthalten Flags, mit denen Folgendes möglich ist:

  • enable-dns-access: Ermöglicht den Zugriff auf die Steuerungsebene über den DNS-basierten Endpunkt der Steuerungsebene.
  • enable-ip-access: Ermöglicht den Zugriff auf die Steuerungsebene über IPv4-Adressen. Lassen Sie dieses Flag weg, wenn Sie sowohl den internen als auch den externen Endpunkt der Steuerungsebene deaktivieren möchten.

Verwenden Sie die Flags, die unter IP-Adressen für den Zugriff auf die Steuerungsebene definieren aufgeführt sind, um den Zugriff auf die IP-basierten Endpunkte anzupassen.

Zugriff auf den DNS-basierten Endpunkt definieren

Sie können die Authentifizierung und Autorisierung für den DNS-basierten Endpunkt verwalten, indem Sie die IAM-Berechtigung container.clusters.connect konfigurieren. Weisen Sie Ihrem Google Cloud -Projekt die folgenden IAM-Rollen zu, um diese Berechtigung zu konfigurieren:

  • roles/container.developer
  • roles/container.viewer

Optional können Sie die Erreichbarkeit des DNS-basierten Endpunkts mithilfe der folgenden Funktionen verwalten:

  • VPC Service Controls: Der DNS-basierte Endpunkt unterstützt VPC Service Controls, um dem Zugriff auf die Kontrollebene eine Sicherheitsebene hinzuzufügen. VPC Service Controls funktionieren konsistent für Google Cloud APIs.

  • Zugriff auf den DNS-basierten Endpunkt von Clients ohne öffentlichen Internetzugriff: Der DNS-basierte Endpunkt ist über Google Cloud APIs zugänglich, die im öffentlichen Internet verfügbar sind. Wenn Sie von privaten Clients auf den DNS-basierten Endpunkt zugreifen möchten, können Sie den privaten Google-Zugriff, das Cloud NAT-Gateway oder Private Service Connect für Google Cloud APIs verwenden.

    Wenn Sie Private Service Connect für Google Cloud -APIs verwenden, leitet GKE Anfragen für gke.goog-Adressen an die interne IP-Adresse weiter, die über Private Service Connect für Google APIs hinzugefügt wurde, und nicht an die standardmäßige öffentliche Google-IP-Adresse. Wenn Sie Private Service Connect für Google Cloud -APIs konfigurieren möchten, führen Sie die Schritte unter Über Endpunkte auf Google APIs zugreifen aus.

  • Zugriff auf den DNS-basierten Endpunkt von lokalen Clients: Lokale Clients können über den privater Google-Zugriff auf den DNS-basierten Endpunkt zugreifen. Führen Sie die Schritte unter Privaten Google-Zugriff für lokale Hosts konfigurieren aus, um den privaten Google-Zugriff zu konfigurieren.

IP-Adressen definieren, die auf die Steuerungsebene zugreifen können

So legen Sie die IP-Adressen fest, die auf die Steuerungsebene zugreifen können:

Console

  1. Wählen Sie unter Zugriff auf die Steuerungsebene die Option Autorisierte Netzwerke aktivieren aus.
  2. Klicken Sie auf Autorisiertes Netzwerk hinzufügen.
  3. Geben Sie einen Namen für das Netzwerk ein.
  4. Geben Sie unter Netzwerk einen CIDR-Bereich ein, dem Sie Zugriff auf die Cluster-Steuerungsebene gewähren möchten.
  5. Klicken Sie auf Fertig.
  6. Fügen Sie bei Bedarf weitere autorisierte Netzwerke hinzu.
Firewallregeln für IP-Adressen der Steuerungsebene definieren

So definieren Sie die Firewall-Regeln für die IP-Adresse der Steuerungsebene:

  1. Maximieren Sie den Bereich Firewallregeln für IP-Adressen einblenden.
  2. Aktivieren Sie das Kästchen Zugriff über die externe IP-Adresse der Steuerungsebene, um den Zugriff auf die Steuerungsebene über öffentliche IP-Adressen zuzulassen.

    Best Practice:

    Definieren Sie autorisierte Netzwerke für die Steuerungsebene, um den Zugriff auf die Steuerungsebene einzuschränken.

  3. Aktivieren Sie das Kästchen Zugriff über die interne IP-Adresse der Steuerungsebene von beliebiger Region aus. Interne IP-Adressen aus jeder Region von Google Cloudkönnen auf den internen Endpunkt der Steuerungsebene zugreifen.

  4. Wählen Sie Autorisierte Netzwerke am internen Endpunkt der Steuerungsebene erzwingen aus. Nur die IP-Adressen, die Sie in der Liste Autorisierte Netzwerke hinzufügen definiert haben, können auf den internen Endpunkt der Steuerungsebene zugreifen. Der interne Endpunkt ist standardmäßig aktiviert.

  5. Wählen Sie Externe Google Cloud IP-Adressen zu autorisierten Netzwerken hinzufügen aus. Alle öffentlichen IP-Adressen aus Google Cloud können auf die Steuerungsebene zugreifen.

gcloud

Mit den folgenden Flags können Sie die IP-Adressen konfigurieren, die auf die externen und internen Endpunkte der Steuerungsebene zugreifen können:

  • enable-private-endpoint: Gibt an, dass der Zugriff auf den externen Endpunkt deaktiviert ist. Lassen Sie dieses Flag weg, wenn Sie den Zugriff auf die Steuerungsebene von externen IP-Adressen aus zulassen möchten. In diesem Fall empfehlen wir dringend, den Zugriff auf den externen Endpunkt mit dem Flag enable-master-authorized-networks zu steuern.
  • enable-master-authorized-networks: gibt an, dass der Zugriff auf den externen Endpunkt auf von Ihnen autorisierte IP-Adressbereiche beschränkt ist.
  • master-authorized-networks: Listet die CIDR-Werte für die autorisierten Netzwerke auf. Diese Liste ist durch Kommas getrennt. Beispiel: 8.8.8.8/32,8.8.8.0/24.

    Best Practice:

    Verwenden Sie das Flag enable-master-authorized-networks, um den Zugriff auf die Steuerungsebene einzuschränken.

  • enable-authorized-networks-on-private-endpoint: Gibt an, dass der Zugriff auf den internen Endpunkt auf IP-Adressbereiche beschränkt ist, die Sie mit dem Flag enable-master-authorized-networks autorisieren.

  • no-enable-google-cloud-access: Der Zugriff auf die Steuerebene wird von externen IP-Adressen vonGoogle Cloud verweigert.

  • enable-master-global-access: Ermöglicht den Zugriff von IP-Adressen in anderen Regionen vonGoogle Cloud .

    Sie können das Clusternetzwerk weiter konfigurieren, indem Sie die Knoten- oder Pod-Isolation auf Clusterebene definieren.

Sie können auch einen Cluster erstellen und Attribute auf Clusterebene definieren, z. B. Knotennetzwerk und ‑subnetz, IP‑Stack-Typ und IP‑Adresszuweisung. Weitere Informationen finden Sie unter VPC-nativen Cluster erstellen.

Zugriff auf die Steuerungsebene ändern

Verwenden Sie entweder die gcloud CLI oder die Google Cloud Console, um den Zugriff auf die Steuerungsebene für einen Cluster zu ändern.

Console

  1. Rufen Sie in der Google Cloud -Konsole die Seite Google Kubernetes Engine auf.

    Zur Seite "Google Kubernetes Engine"

  2. Klicken Sie in der Clusterliste auf den Clusternamen.

  3. Klicken Sie auf dem Tab Clusterdetails unter Steuerungsebenen-Netzwerk auf .

  4. Ändern Sie im Dialogfeld Steuerungsebenen-Netzwerk bearbeiten den Zugriff auf die Steuerungsebene entsprechend den Anforderungen Ihres Anwendungsfalls.

  5. Prüfen Sie die Konfiguration der Kontrollebene.

gcloud

Führen Sie den folgenden Befehl aus und hängen Sie die Flags an, die für Ihren Anwendungsfall geeignet sind. Sie können die folgenden Flags verwenden:

  • enable-dns-access: Ermöglicht den Zugriff auf die Steuerungsebene über den DNS-basierten Endpunkt der Steuerungsebene.
  • enable-ip-access: Ermöglicht den Zugriff auf die Steuerungsebene über IPv4-Adressen. Lassen Sie dieses Flag weg, wenn Sie sowohl den internen als auch den externen Endpunkt der Steuerungsebene deaktivieren möchten.
  • enable-private-endpoint: Gibt an, dass der Zugriff auf den externen Endpunkt deaktiviert ist. Lassen Sie dieses Flag weg, wenn Sie den Zugriff auf die Steuerungsebene von externen IP-Adressen aus zulassen möchten. In diesem Fall empfehlen wir dringend, den Zugriff auf den externen Endpunkt mit dem Flag enable-master-authorized-networks zu steuern.
  • enable-master-authorized-networks: gibt an, dass der Zugriff auf den externen Endpunkt auf von Ihnen autorisierte IP-Adressbereiche beschränkt ist.
  • master-authorized-networks: Listet die CIDR-Werte für die autorisierten Netzwerke auf. Diese Liste ist durch Kommas getrennt. Beispiel: 8.8.8.8/32,8.8.8.0/24.

    Best Practice:

    Verwenden Sie das Flag enable-master-authorized-networks, um den Zugriff auf die Steuerungsebene einzuschränken.

  • enable-authorized-networks-on-private-endpoint: Gibt an, dass der Zugriff auf den internen Endpunkt auf IP-Adressbereiche beschränkt ist, die Sie mit dem Flag enable-master-authorized-networks autorisieren.

  • no-enable-google-cloud-access: Der Zugriff auf die Steuerebene wird von externen IP-Adressen vonGoogle Cloud verweigert.

  • enable-master-global-access: Ermöglicht den Zugriff von IP-Adressen in anderen Regionen vonGoogle Cloud .

    gcloud container clusters update CLUSTER_NAME
    

    Ersetzen Sie CLUSTER_NAME durch den Namen des Clusters.

Konfiguration der Steuerungsebene prüfen

Sie können sich die Endpunkte Ihres Clusters mit der gcloud CLI oder derGoogle Cloud -Konsole anzeigen lassen.

Console

  1. Rufen Sie in der Google Cloud -Konsole die Seite Google Kubernetes Engine auf.

    Zur Seite "Google Kubernetes Engine"

  2. Klicken Sie in der Clusterliste auf den Clusternamen.

  3. Auf dem Tab Clusterdetails unter Steuerungsebene können Sie die folgenden Eigenschaften der Endpunkte der Steuerungsebene prüfen:

    • Der DNS-Endpunkt enthält den Namen des DNS-basierten Endpunkts Ihres Clusters, sofern Sie diesen Endpunkt aktiviert haben.
    • Zugriff auf Steuerungsebene über IPv4-Adressen enthält den Status des IP-basierten Endpunkts. Wenn diese Option aktiviert ist, sehen Sie die Informationen zu den öffentlichen und privaten Endpunkten.
    • Für Zugriff über die interne IP-Adresse der Steuerungsebene von beliebiger Region aus wird der Status Aktiviert angezeigt, wenn Google-IP-Adressen aus anderen Regionen auf die Steuerungsebene zugreifen können.
    • Unter Autorisierte Netzwerke wird die Liste der CIDRs angezeigt, die auf die Steuerungsebene zugreifen können, sofern Sie autorisierte Netzwerke aktiviert haben.
    • Für Autorisierte Netzwerke am internen Endpunkt der Steuerungsebene erzwingen wird der Status Aktiviert angezeigt, wenn nur die CIDRs im Feld Autorisierte Netzwerke auf den internen Endpunkt zugreifen können.
    • Externe Google Cloud -IP-Adressen zu autorisierten Netzwerken hinzufügen hat den Status Aktiviert, wenn die externen IP-Adressen von Google Cloudauf die Steuerungsebene zugreifen können.

Wenn Sie ein Attribut ändern möchten, klicken Sie auf das Dreipunkt-Menü  Zugriff auf Steuerungsebene über IPv4-Adressen und passen Sie es an Ihren Anwendungsfall an.

gcloud

Führen Sie den folgenden Befehl aus, um die Konfiguration der Steuerebene zu überprüfen:

gcloud container clusters describe CLUSTER_NAME

Die Ausgabe enthält einen controlPlaneEndpointsConfig-Block, der die Netzwerkdefinition beschreibt. Die Ausgabe sollte in etwa so aussehen:

controlPlaneEndpointsConfig:
dnsEndpointConfig:
  allowExternalTraffic: true
  endpoint: gke-dc6d549babec45f49a431dc9ca926da159ca-518563762004.us-central1-c.autopush.gke.goog
ipEndpointsConfig:
  authorizedNetworksConfig:
    cidrBlocks:
    - cidrBlock: 8.8.8.8/32
    - cidrBlock: 8.8.8.0/24
    enabled: true
    gcpPublicCidrsAccessEnabled: false
    privateEndpointEnforcementEnabled: true
  enablePublicEndpoint: false
  enabled: true
  globalAccess: true
  privateEndpoint: 10.128.0.13

In diesem Beispiel hat der Cluster die folgende Konfiguration:

  • Sowohl DNS- als auch IP-adressbasierte Endpunkte sind aktiviert.
  • Autorisierte Netzwerke sind aktiviert und die CIDR-Bereiche sind definiert. Diese autorisierten Netzwerke werden für die interne IP-Adresse erzwungen.
  • Der Zugriff auf die Steuerungsebene von externen IP-Adressen von Google Cloud wird abgelehnt.

Beispiele für die Konfiguration des Zugriffs auf die Steuerungsebene

In diesem Abschnitt wird die Konfiguration der folgenden Beispiele für die Netzwerkisolation beschrieben. Prüfen Sie, ob diese Beispiele Ähnlichkeiten mit Ihrem Anwendungsfall haben:

  • Beispiel 1: Der Zugriff auf die Steuerungsebene ist von bestimmten von Ihnen definierten IP-Adressen aus möglich. Dazu gehören möglicherweise IP-Adressen aus anderen Regionen von Google Cloud oder von Google reservierte IP-Adressen.
  • Beispiel 2: Auf die Steuerungsebene kann über keine externe IP-Adresse zugegriffen werden.
Beispiel 1: Zugriff auf die Steuerungsebene von bestimmten IP-Adressen aus

In diesem Abschnitt erstellen Sie einen Cluster mit den folgenden Konfigurationen für die Netzwerkisolation:

  • Auf der Steuerungsebene ist der DNS-basierte Endpunkt aktiviert.
  • Auf der Steuerungsebene ist neben dem standardmäßig aktivierten internen Endpunkt auch der externe Endpunkt aktiviert.
  • Für die Steuerungsebene sind autorisierte Netzwerke definiert, sodass nur die folgenden autorisierten Netzwerke die Steuerungsebene erreichen können:

Sie können diesen Cluster mithilfe der Google Cloud CLI oder der Google Cloud Console erstellen.

Console

  1. Rufen Sie in der Google Cloud -Konsole die Seite Google Kubernetes Engine auf.

    Zur Seite "Google Kubernetes Engine"

  2. Klicken Sie auf Erstellen.

  3. Konfigurieren Sie den Cluster entsprechend Ihren Anforderungen.

  4. Klicken Sie im Navigationsmenü auf Netzwerk.

  5. Konfigurieren Sie unter Zugriff auf Steuerungsebene die Endpunkte der Steuerungsebene:

    1. Klicken Sie auf das Kästchen Zugriff über DNS.
    2. Aktivieren Sie das Kästchen Zugriff über IPv4-Adressen.
  6. Wählen Sie Autorisierte Netzwerke aktivieren aus.

  7. Klicken Sie auf Autorisiertes Netzwerk hinzufügen.

  8. Geben Sie einen Namen für das Netzwerk ein.

  9. Geben Sie unter Netzwerk einen CIDR-Bereich ein, dem Sie Zugriff auf die Cluster-Steuerungsebene gewähren möchten.

  10. Klicken Sie auf Fertig.

  11. Fügen Sie bei Bedarf weitere autorisierte Netzwerke hinzu.

  12. Maximieren Sie den Bereich Firewallregeln für IP-Adressen einblenden.

  13. Wählen Sie Zugriff über die interne IP-Adresse der Steuerungsebene von beliebiger Region aus aus. Interne IP-Adressen aus jeder Region in Google Cloud können über die interne IP-Adresse auf die Steuerungsebene zugreifen.

  14. Wählen Sie Externe Google Cloud IP-Adressen zu autorisierten Netzwerken hinzufügen aus. Alle externen IP-Adressen von Google Cloud können auf die Steuerungsebene zugreifen.

Sie können mit der Konfiguration des Clusternetzwerks fortfahren, indem Sie die Knoten- oder Pod-Isolation auf Clusterebene definieren.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud container clusters create-auto CLUSTER_NAME \
    --enable-dns-access \
    --enable-ip-access \
    --enable-master-authorized-networks \
    --enable-master-global-access \
    --master-authorized-networks CIDR1,CIDR2,...

Ersetzen Sie Folgendes:

  • CLUSTER_NAME ist der Name des GKE-Clusters.
  • CIDR1,CIDR2,... ist eine durch Kommas getrennte Liste der CIDR-Werte für die autorisierten Netzwerke. Beispiel: 8.8.8.8/32,8.8.8.0/24.
Beispiel 2: Auf die Steuerungsebene kann über interne IP-Adressen zugegriffen werden

In diesem Abschnitt erstellen Sie einen Cluster mit den folgenden Konfigurationen für die Netzwerkisolation:

  • Auf der Steuerungsebene ist der DNS-basierte Endpunkt aktiviert.
  • Der externe Endpunkt ist auf der Steuerungsebene deaktiviert.
  • Für die Steuerungsebene sind autorisierte Netzwerke aktiviert.
  • Der Zugriff auf die Steuerungsebene über die interne IP-Adresse ist von jederGoogle Cloud -Region aus zulässig.
  • Google Cloud externe IP-Adressen haben keinen Zugriff auf Ihren Cluster.

Sie können diesen Cluster mithilfe der Google Cloud CLI oder der Google Cloud -Konsole erstellen.

Console

  1. Rufen Sie in der Google Cloud -Konsole die Seite Google Kubernetes Engine auf.

    Zur Seite "Google Kubernetes Engine"

  2. Klicken Sie auf Erstellen.

  3. Konfigurieren Sie den Cluster entsprechend Ihren Anforderungen.

  4. Klicken Sie im Navigationsmenü auf Netzwerk.

  5. Konfigurieren Sie unter Zugriff auf Steuerungsebene die Endpunkte der Steuerungsebene:

    1. Klicken Sie auf das Kästchen Zugriff über DNS.
    2. Aktivieren Sie das Kästchen Zugriff über IPv4-Adressen.
  6. Maximieren Sie den Bereich Firewallregeln für IP-Adressen einblenden.

  7. Entfernen Sie das Häkchen bei Zugriff über die externe IP-Adresse der Steuerungsebene. Auf die Steuerungsebene kann nicht über eine externe IP-Adresse zugegriffen werden.

  8. Wählen Sie unter Zugriff auf die Steuerungsebene die Option Autorisierte Netzwerke aktivieren aus.

  9. Aktivieren Sie das Kästchen Zugriff über die interne IP-Adresse der Steuerungsebene von beliebiger Region aus. Interne IP-Adressen aus jeder Google Cloud -Region können über die interne IP-Adresse auf die Steuerungsebene zugreifen.

Sie können mit der Clusternetzwerkkonfiguration fortfahren, indem Sie die Knoten- oder Pod-Isolation auf Clusterebene definieren.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud container clusters create-auto CLUSTER_NAME \
    --enable-dns-access \
    --enable-ip-access \
    --enable-private-endpoint \
    --enable-master-authorized-networks \
    --master-authorized-networks CIDR1,CIDR2,... \
    --no-enable-google-cloud-access \
    --enable-master-global-access

Ersetzen Sie Folgendes:

  • CLUSTER_NAME: Der Name des Clusters.
  • CIDR1,CIDR2,... ist eine durch Kommas getrennte Liste der CIDR-Werte für die autorisierten Netzwerke. Beispiel: 8.8.8.8/32,8.8.8.0/24.

Clusternetzwerk konfigurieren

In diesem Abschnitt konfigurieren Sie Ihren Cluster so, dass er Knoten mit internem (privatem) oder externem (öffentlichem) Zugriff hat. In GKE können Sie die Knotennetzwerkkonfiguration je nach Clustertyp kombinieren:

  • Standardcluster: Sie können Knotenpools erstellen oder aktualisieren, um private oder öffentliche Knoten im selben Cluster bereitzustellen. Wenn Sie beispielsweise einen Knotenpool mit privaten Knoten erstellen, werden die Knoten von GKE nur mit internen IP-Adressen bereitgestellt. Vorhandene Knotenpools werden in GKE nicht geändert. Sie können die Standardnetzwerkkonfiguration auch auf Clusterebene definieren. GKE wendet diese Standardnetzwerkkonfiguration nur an, wenn für neue Knotenpools keine Netzwerkkonfiguration definiert ist.
  • Autopilot-Cluster: Sie können einen Cluster erstellen oder aktualisieren, um die Standardnetzwerkkonfiguration für alle Arbeitslasten zu definieren. GKE plant neue und vorhandene Arbeitslasten je nach Konfiguration auf öffentlichen oder privaten Knoten. Sie können auch die Clusternetzwerkkonfiguration einer einzelnen Arbeitslast explizit definieren.

Cluster konfigurieren

In diesem Abschnitt konfigurieren Sie das Clusternetzwerk auf Clusterebene. GKE berücksichtigt diese Konfiguration, wenn diese Konfiguration für Ihren Knotenpool oder Ihre Arbeitslast nicht definiert ist.

Verwenden Sie entweder die Google Cloud CLI oder die Console vonGoogle Cloud , um die Konfiguration auf Clusterebene zu definieren.

Console

Cluster erstellen

  1. Rufen Sie in der Google Cloud -Konsole die Seite Google Kubernetes Engine auf.

    Zur Seite "Google Kubernetes Engine"

  2. Klicken Sie auf Erstellen und dann im Bereich „Standard“ oder „Autopilot“ auf Konfigurieren.

  3. Konfigurieren Sie den Cluster entsprechend Ihren Anforderungen.

  4. Klicken Sie im Navigationsmenü auf Netzwerk.

  5. Führen Sie im Abschnitt Clusternetzwerk je nach Anwendungsfall die folgenden Schritte aus:

    1. Wählen Sie Private Knoten aktivieren aus, um Knoten nur mit internen IP-Adressen (private Knoten) bereitzustellen, die externen Clients den Zugriff auf die Knoten verwehren. Du kannst diese Einstellungen jederzeit ändern.
    2. Entfernen Sie das Häkchen bei Private Knoten aktivieren, um Knoten nur mit externen (öffentlichen) IP-Adressen bereitzustellen. So können externe Clients auf die Knoten zugreifen.
  6. Konfigurieren Sie im Bereich Erweiterte Netzwerkoptionen zusätzliche VPC-native Attribute. Weitere Informationen finden Sie unter VPC-nativen Cluster erstellen.

  7. Klicken Sie auf Erstellen.

Vorhandenen Cluster aktualisieren

  1. Rufen Sie in der Google Cloud -Konsole die Seite Google Kubernetes Engine auf.

    Zur Seite "Google Kubernetes Engine"

  2. Klicken Sie in der Clusterliste auf den Clusternamen.

  3. Klicken Sie auf der Seite Private Knoten auf dem Tab Standardkonfiguration für neuen Knotenpool auf Private Knoten bearbeiten.

  4. Führen Sie im Dialogfeld Private Knoten bearbeiten einen der folgenden Schritte aus:

    1. Wählen Sie Private Knoten aktivieren aus, um Knoten nur mit internen IP-Adressen (private Knoten) bereitzustellen, die externen Clients den Zugriff auf die Knoten verwehren. Du kannst diese Einstellungen jederzeit ändern.
    2. Entfernen Sie das Häkchen bei Private Knoten aktivieren, um Knoten nur mit externen (öffentlichen) IP-Adressen bereitzustellen. So können externe Clients auf die Knoten zugreifen.
  5. Klicken Sie auf Änderungen speichern.

gcloud

Verwenden Sie eines der folgenden Flags, um das Clusternetzwerk zu definieren:

  • enable-private-nodes: Knoten mit nur internen IP-Adressen bereitstellen (private Knoten). Beachten Sie die folgenden Bedingungen, wenn Sie dieses Flag verwenden:
    • Das Flag enable-ip-alias ist erforderlich, wenn enable-private-nodes verwendet wird.
    • Das Flag master-ipv4-cidr ist optional, um private Subnetze zu erstellen. Wenn Sie dieses Flag verwenden, erstellt GKE ein neues Subnetz, das die von Ihnen in master-ipv4-cidr definierten Werte verwendet. Mit diesem neuen Subnetz wird dann die interne IP-Adresse für die Steuerungsebene bereitgestellt.
  • no-enable-private-nodes: Knoten mit nur externen IP-Adressen bereitstellen (öffentliche Knoten).

In Autopilot-Clustern können Sie den Cluster mit dem Flag enable-private-nodes erstellen oder aktualisieren.

  • Führen Sie den folgenden Befehl aus, um einen Cluster zu erstellen:

    gcloud container clusters create-auto CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    
  • Verwenden Sie den folgenden Befehl, um einen Cluster zu aktualisieren.

    gcloud container clusters update CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    

    Das Clusterupdate wird erst wirksam, nachdem alle Knotenpools neu geplant wurden. Dieser Vorgang kann mehrere Stunden dauern.

Bei Standardclustern können Sie den Cluster mit dem Flag enable-private-nodes erstellen oder aktualisieren.

  • Führen Sie den folgenden Befehl aus, um einen Cluster zu erstellen:

    gcloud container clusters create CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    
  • Verwenden Sie den folgenden Befehl, um einen Cluster zu aktualisieren:

    gcloud container clusters update CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    

    Die Clusteraktualisierung wirkt sich nur auf neue Knotenpools aus. In GKE wird diese Konfiguration für vorhandene Knotenpools nicht aktualisiert.

Die Clusterkonfiguration wird von der Netzwerkkonfiguration auf Knotenpool- oder Arbeitslastebene überschrieben.

Knotenpools oder Arbeitslasten konfigurieren

Sie können private oder öffentliche Knoten auf Arbeitslastebene für Autopilot-Cluster oder Knotenpools für Standardcluster entweder mit der Google Cloud CLI oder derGoogle Cloud -Konsole konfigurieren. Wenn Sie die Netzwerkkonfiguration nicht auf Arbeitslast- oder Knotenpoolebene definieren, wendet GKE die Standardkonfiguration auf Clusterebene an.

Console

Führen Sie in Standardclustern die folgenden Schritte aus:

  1. Rufen Sie in der Google Cloud -Konsole die Seite Google Kubernetes Engine auf.

    Zur Seite "Google Kubernetes Engine"

  2. Klicken Sie auf der Seite Clusterdetails auf den Namen des Clusters, den Sie ändern möchten.

  3. Klicken Sie auf Knotenpool hinzufügen .

  4. Konfigurieren Sie das Kästchen Private Knoten aktivieren entsprechend Ihrem Anwendungsfall:

    1. Wählen Sie Private Knoten aktivieren aus, um Knoten nur mit internen IP-Adressen (private Knoten) bereitzustellen.
    2. Entfernen Sie das Häkchen bei Private Knoten aktivieren, um Knoten nur mit externen (öffentlichen) IP-Adressen bereitzustellen. So können externe Clients auf die Knoten zugreifen. Sie können diese Konfiguration jederzeit ändern.
  5. Konfigurieren Sie den neuen Knotenpool.

  6. Klicken Sie auf Erstellen.

Weitere Informationen zur Verwaltung von Knotenpools finden Sie unter Knotenpools hinzufügen und verwalten.

gcloud

  • Wenn Sie möchten, dass GKE in Autopilot-Clustern einen Pod auf privaten Knoten plant, fügen Sie der Pod-Spezifikation den folgenden nodeSelector hinzu:

    cloud.google.com/private-node=true
    

    Verwenden Sie private-node=true im Pod nodeSelector, um einen Pod auf Knoten mit nur internen IP-Adressen (private Knoten) zu planen.

    GKE erstellt Ihre Pods je nach Konfiguration auf privaten oder öffentlichen Knoten neu. Migrieren Sie jede Arbeitslast separat und überwachen Sie die Migration, um Arbeitslastunterbrechungen zu vermeiden.

  • Führen Sie in Standardclustern 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 \
        --enable-ip-alias
    

    Ersetzen Sie Folgendes:

    • NODE_POOL_NAME: der Name des Knotenpools, den Sie bearbeiten möchten.
    • CLUSTER_NAME ist der Name Ihres vorhandenen Clusters.

    Verwenden Sie eines der folgenden Flags, um die Netzwerkkonfiguration des Knotenpools zu definieren:

    • enable-private-nodes: Knoten mit nur internen IP-Adressen bereitstellen (private Knoten).
    • no-enable-private-nodes: Knoten mit nur externen IP-Adressen bereitstellen (öffentliche Knoten).

Erweiterte Konfigurationen

In den folgenden Abschnitten werden erweiterte Konfigurationen beschrieben, die Sie beim Konfigurieren der Clusternetzwerkisolation verwenden können.

Mit Cloud Shell auf einen Cluster mit deaktiviertem externen Endpunkt zugreifen

Wenn der externe Endpunkt der Steuerungsebene Ihres Clusters deaktiviert ist, können Sie mit Cloud Shell nicht auf Ihre GKE-Steuerungsebene zugreifen. Wenn Sie Cloud Shell zum Zugriff auf Ihren Cluster verwenden möchten, empfehlen wir Ihnen, den DNS-basierten Endpunkt zu aktivieren.

So überprüfen Sie den Zugriff auf Ihren Cluster:

  1. Wenn Sie den DNS-basierten Endpunkt aktiviert haben, führen Sie den folgenden Befehl aus, um Anmeldedaten für Ihren Cluster abzurufen:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --dns-endpoint
    

    Wenn Sie den IP-basierten Endpunkt aktiviert haben, führen Sie den folgenden Befehl aus, um Anmeldedaten für Ihren Cluster abzurufen:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --project=PROJECT_ID \
        --internal-ip
    

    Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

  2. Verwenden Sie in Cloud Shell kubectl, um auf Ihren Cluster zuzugreifen:

    kubectl get nodes
    

    Die Ausgabe sieht in etwa so aus:

    NAME                                               STATUS   ROLES    AGE    VERSION
    gke-cluster-1-default-pool-7d914212-18jv   Ready    <none>   104m   v1.21.5-gke.1302
    gke-cluster-1-default-pool-7d914212-3d9p   Ready    <none>   104m   v1.21.5-gke.1302
    gke-cluster-1-default-pool-7d914212-wgqf   Ready    <none>   104m   v1.21.5-gke.1302
    

Der Befehl get-credentials verwendet automatisch den DNS-basierten Endpunkt, wenn der IP-basierte Endpunktzugriff deaktiviert ist.

Firewallregeln für bestimmte Anwendungsfälle hinzufügen

In diesem Abschnitt wird erläutert, wie Sie einem Cluster eine Firewallregel hinzufügen. Die Steuerungsebene Ihres Clusters wird von Firewallregeln standardmäßig so beschränkt, dass nur TCP-Verbindungen zu den Knoten und Pods auf den Ports 443 (HTTPS) und 10250 (Kubelet) initiiert werden. Bei einigen Kubernetes-Funktionen müssen eventuell Firewallregeln ergänzt werden, um den Zugriff auf zusätzlichen Ports zuzulassen. Erstellen Sie keine Firewallregeln oder hierarchischen Firewallregeln, die eine höhere Priorität als die automatisch erstellten Firewallregeln haben.

Zu den Kubernetes-Features, für die weitere Firewallregeln erforderlich sind, gehören:

Durch Hinzufügen einer Firewallregel wird Traffic von der Clustersteuerungsebene zu Folgendem ermöglicht:

  • Zum angegebenen Port jedes Knotens (hostPort)
  • Zum angegebenen Port jedes Pods, der auf diesen Knoten ausgeführt wird
  • Zum angegebenen Port jedes Dienstes, der auf diesen Knoten ausgeführt wird

Informationen zu Firewallregeln finden Sie in der Dokumentation zu Cloud Load Balancing unter Firewallregeln.

Wenn Sie eine Firewallregel in einem Cluster hinzufügen möchten, müssen Sie den CIDR-Block der Clustersteuerungsebene und das verwendete Ziel erfassen. Nach dem Erfassen können Sie die Regel erstellen.

CIDR-Block der Steuerungsebene ansehen

Sie benötigen den CIDR-Block der Clustersteuerungsebene, um eine Firewallregel hinzuzufügen.

Console

  1. Rufen Sie in der Google Cloud -Konsole die Seite Google Kubernetes Engine auf.

    Zur Seite "Google Kubernetes Engine"

  2. Klicken Sie in der Clusterliste auf den Clusternamen.

Notieren Sie sich vom Tab Details unter Netzwerk den Wert im Feld Adressbereich der Steuerungsebene.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud container clusters describe CLUSTER_NAME

Ersetzen Sie CLUSTER_NAME durch den Namen Ihres Clusters.

Notieren Sie sich in der Befehlsausgabe den Wert im Feld masterIpv4CidrBlock.

Vorhandene Firewallregeln ansehen

Das von den vorhandenen Firewallregeln des Clusters verwendete Ziel muss angegeben werden. In diesem Fall sind es Zielknoten.

Console

  1. Rufen Sie in der Google Cloud -Konsole die Seite Firewallrichtlinien auf.

    Zu den Firewall-Richtlinien

  2. Geben Sie unter VPC-Firewallregeln bei Tabelle filtern den Wert gke-CLUSTER_NAME ein.

Notieren Sie aus den Ergebnissen den Wert im Feld Ziele.

gcloud

Führen Sie den folgenden Befehl aus:

gcloud compute firewall-rules list \
    --filter 'name~^gke-CLUSTER_NAME' \
    --format 'table(
        name,
        network,
        direction,
        sourceRanges.list():label=SRC_RANGES,
        allowed[].map().firewall_rule().list():label=ALLOW,
        targetTags.list():label=TARGET_TAGS
    )'

Notieren Sie sich aus der Befehlsausgabe den Wert im Feld Ziele.

Wenn Sie Firewallregeln für eine freigegebene VPC aufrufen möchten, fügen Sie dem Befehl das Flag --project HOST_PROJECT_ID hinzu.

Firewallregel hinzufügen

Console

  1. Rufen Sie in der Google Cloud -Konsole die Seite Firewallrichtlinien auf.

    Zu den Firewall-Richtlinien

  2. Klicken Sie auf Firewallregel erstellen.

  3. Geben Sie für Name einen Namen für die Firewallregel ein.

  4. Wählen Sie in der Liste Netzwerk das entsprechende Netzwerk aus.

  5. Klicken Sie unter Trafficrichtung auf Eingehend.

  6. Klicken Sie unter Aktion bei Übereinstimmung auf Zulassen.

  7. Wählen Sie in der Liste Ziele Angegebene Ziel-Tags aus.

  8. Geben Sie unter Zieltags den zuvor notierten Zielwert ein.

  9. Wählen Sie in der Liste Quellfilter die Option IPv4-Bereiche aus.

  10. Geben Sie bei Quell-IPv4-Bereiche den CIDR-Block der Clustersteuerungsebene ein.

  11. Klicken Sie unter Protokolle und Ports auf Angegebene Protokolle und Ports, wählen Sie das Kästchen für das entsprechende Protokoll aus (TCP oder udp) und geben Sie die Portnummer in das Protokollfeld ein.

  12. Klicken Sie auf Erstellen.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud compute firewall-rules create FIREWALL_RULE_NAME \
    --action ALLOW \
    --direction INGRESS \
    --source-ranges CONTROL_PLANE_RANGE \
    --rules PROTOCOL:PORT \
    --target-tags TARGET

Ersetzen Sie Folgendes:

  • FIREWALL_RULE_NAME ist der von Ihnen ausgewählte Name für die Firewallregel.
  • CONTROL_PLANE_RANGE ist der IP-Adressbereich der Clustersteuerungsebene (masterIpv4CidrBlock), den Sie zuvor erfasst haben.
  • PROTOCOL:PORT ist der gewünschte Port und das zugehörige Protokoll, tcp oder udp.
  • TARGET ist der vorher notierte Zielwert (Targets).

Wenn Sie eine Firewallregel für eine freigegebene VPC hinzufügen möchten, fügen Sie dem Befehl die folgenden Flags hinzu:

--project HOST_PROJECT_ID
--network NETWORK_ID

Privaten Knoten ausgehenden Internetzugriff gewähren

Wenn Sie privaten Knoten ausgehenden Internetzugriff gewähren möchten, z. B. um Images aus einer externen Registry abzurufen, verwenden Sie Cloud NAT, um einen Cloud Router zu erstellen und zu konfigurieren. Mit Cloud NAT können private Knoten ausgehende Verbindungen über das Internet herstellen, um Pakete zu senden und zu empfangen.

Der Cloud Router ermöglicht allen Knoten in der Region, Cloud NAT für alle primären und Alias-IP-Bereiche zu verwenden. Außerdem werden die externen IP-Adressen für das NAT-Gateway automatisch zugeordnet.

Eine Anleitung zum Erstellen und Konfigurieren eines Cloud Routers finden Sie in der Cloud NAT-Dokumentation unter Cloud NAT-Konfiguration mit Cloud Router erstellen.

Windows Server-Containeranwendung bereitstellen

Informationen zum Bereitstellen einer Windows Server-Containeranwendung in einem Cluster mit privaten Knoten finden Sie in der Dokumentation zu Windows-Knotenpools.

Nächste Schritte