Private Cluster erstellen


Auf dieser Seite wird erläutert, wie Sie einen privaten GKE-Cluster (Google Kubernetes Engine) erstellen, der eine Art VPC-nativer Cluster ist. In einem privaten Cluster haben Knoten nur interne IP-Adressen. Das heißt, Knoten und Pods sind standardmäßig vom Internet isoliert. Sie können sich dafür entscheiden, keinen Clientzugriff, eingeschränkten Zugriff oder uneingeschränkten Zugriff auf die Steuerungsebene zu haben.

Bestehende nicht private Cluster können nicht in private Cluster konvertiert werden. Weitere Informationen zur Funktionsweise von privaten Clustern finden Sie unter Übersicht über private Cluster.

Limits und Einschränkungen

Private Cluster müssen VPC-native Cluster sein. VPC-native Cluster unterstützen keine Legacy-Netzwerke.

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

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.
  • Prüfen Sie, ob Sie die erforderliche Berechtigung zum Erstellen von Clustern haben. Sie sollten mindestens ein Kubernetes Engine-Cluster-Administrator sein.

  • Achten Sie darauf, dass Sie eine Route zum Standard-Internetgateway haben.

Privaten Cluster ohne Clientzugriff auf den öffentlichen Endpunkt erstellen

In diesem Abschnitt erstellen Sie die folgenden Ressourcen:

  • Einen privaten Cluster mit dem Namen private-cluster-0, der private Knoten und keinen Clientzugriff auf den öffentlichen Endpunkt hat.
  • Ein Netzwerk mit dem Namen my-net-0.
  • Ein Subnetz mit dem Namen my-subnet-0.

Console

Netzwerk und Subnetz erstellen

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf VPC-Netzwerk erstellen.

  3. Geben Sie für Name my-net-0 ein.

  4. Wählen Sie unter Modus für Subnetzerstellung die Option Benutzerdefiniert aus.

  5. Geben Sie im Feld Neues Subnetz für Name den Wert my-subnet-0 ein.

  6. Wählen Sie in der Liste Region die gewünschte Region aus.

  7. Geben Sie 10.2.204.0/22 als IP-Adressbereich ein.

  8. Setzen Sie Privater Google-Zugriff auf An.

  9. Klicken Sie auf Fertig.

  10. Klicken Sie auf Erstellen.

Privaten Cluster erstellen

  1. Rufen Sie in der Google Cloud Console 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. Geben Sie im Feld Name private-cluster-0 ein.

  4. Klicken Sie im Navigationsbereich auf Netzwerk.

  5. Wählen Sie in der Liste Netzwerk die Option my-net-0 aus.

  6. Wählen Sie in der Liste Knotensubnetz die Option my-subnet-0 aus.

  7. Wählen Sie das Optionsfeld Privater Cluster aus.

  8. Entfernen Sie das Häkchen aus dem Kästchen Zugriffssteuerungsebene über die externe IP-Adresse.

  9. (Optional für Autopilot): Setzen Sie IP-Bereich der Steuerungsebene auf 172.16.0.32/28.

  10. Klicken Sie auf Erstellen.

gcloud

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

    gcloud container clusters create-auto private-cluster-0 \
        --create-subnetwork name=my-subnet-0 \
        --enable-master-authorized-networks \
        --enable-private-nodes \
        --enable-private-endpoint
    
  • Führen Sie für Standardcluster den folgenden Befehl aus:

    gcloud container clusters create private-cluster-0 \
        --create-subnetwork name=my-subnet-0 \
        --enable-master-authorized-networks \
        --enable-ip-alias \
        --enable-private-nodes \
        --enable-private-endpoint \
        --master-ipv4-cidr 172.16.0.32/28
    

Dabei gilt:

  • --create-subnetwork name=my-subnet-0 bewirkt, dass GKE automatisch ein Subnetz mit dem Namen my-subnet-0 erstellt.
  • --enable-master-authorized-networks gibt an, dass der Zugriff auf den öffentlichen Endpunkt auf von Ihnen autorisierte IP-Adressbereiche beschränkt ist.
  • --enable-ip-alias sorgt dafür, dass der Cluster VPC-nativ ist (nicht für Autopilot erforderlich).
  • --enable-private-nodes gibt an, dass die Knoten des Clusters keine externen IP-Adressen haben.
  • --enable-private-endpoint gibt an, dass der Cluster mithilfe der internen IP-Adresse für den API-Endpunkt der Steuerungsebene verwaltet wird.
  • --master-ipv4-cidr 172.16.0.32/28 gibt einen internen IP-Adressbereich für die Steuerungsebene an (optional für Autopilot). Diese Einstellung ist für diesen Cluster dauerhaft und muss innerhalb der VPC eindeutig sein. Die Verwendung von internen IP-Adressen außerhalb von RFC 1918 wird unterstützt.

API

Zum Erstellen eines Clusters ohne öffentlich erreichbare Steuerungsebene geben Sie in der Ressource privateClusterConfig das Feld enablePrivateEndpoint: true an.

Dies sind derzeit die einzigen IP-Adressen mit Zugriff auf die Steuerungsebene:

  • Der primäre Bereich von my-subnet-0
  • Der für Pods verwendete sekundäre Bereich

Angenommen, Sie haben im primären Bereich von my-subnet-0 eine VM erstellt. Dann können Sie für diese VM kubectl so konfigurieren, dass die interne IP-Adresse der Steuerungsebene verwendet wird.

Wenn Sie außerhalb von my-subnet-0 auf die Steuerungsebene zugreifen möchten, gewähren Sie mindestens einem Adressbereich Zugriff auf den privaten Endpunkt.

Angenommen, Sie haben eine VM im Standardnetzwerk in derselben Region wie Ihr Cluster, aber nicht in my-subnet-0.

Beispiel:

  • my-subnet-0: 10.0.0.0/22
  • Sekundärer Bereich für Pods: 10.52.0.0/14
  • VM-Adresse: 10.128.0.3

Sie können der VM mit folgendem Befehl Zugriff auf die Steuerungsebene gewähren:

gcloud container clusters update private-cluster-0 \
    --enable-master-authorized-networks \
    --master-authorized-networks 10.128.0.3/32

Privaten Cluster mit beschränktem Zugriff auf den öffentlichen Endpunkt erstellen

Beim Erstellen eines privaten Clusters mit dieser Konfiguration können Sie ein automatisch erzeugtes Subnetz oder ein benutzerdefiniertes Subnetz verwenden.

Automatisch erzeugtes Subnetz verwenden

In diesem Abschnitt erstellen Sie einen privaten Cluster mit dem Namen private-cluster-1, in dem GKE automatisch ein Subnetz für Ihre Clusterknoten erzeugt. Für das Subnetz ist der private Google-Zugriff aktiviert. GKE erstellt im Subnetz automatisch zwei sekundäre Bereiche: einen für Pods und einen für Dienste.

Sie können dazu die Google Cloud CLI oder die GKE API verwenden.

gcloud

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

    gcloud container clusters create-auto private-cluster-1 \
        --create-subnetwork name=my-subnet-1 \
        --enable-master-authorized-networks \
        --enable-private-nodes
    
  • Führen Sie für Standardcluster den folgenden Befehl aus:

    gcloud container clusters create private-cluster-1 \
        --create-subnetwork name=my-subnet-1 \
        --enable-master-authorized-networks \
        --enable-ip-alias \
        --enable-private-nodes \
        --master-ipv4-cidr 172.16.0.0/28
    

Dabei gilt:

  • --create-subnetwork name=my-subnet-1 bewirkt, dass GKE automatisch ein Subnetz mit dem Namen my-subnet-1 erstellt.
  • --enable-master-authorized-networks gibt an, dass der Zugriff auf den öffentlichen Endpunkt auf von Ihnen autorisierte IP-Adressbereiche beschränkt ist.
  • --enable-ip-alias sorgt dafür, dass der Cluster VPC-nativ ist (nicht für Autopilot erforderlich).
  • --enable-private-nodes gibt an, dass die Knoten des Clusters keine externen IP-Adressen haben.
  • --master-ipv4-cidr 172.16.0.0/28 gibt einen internen IP-Adressbereich für die Steuerungsebene an (optional für Autopilot). Diese Einstellung ist für diesen Cluster dauerhaft und muss innerhalb der VPC eindeutig sein. Die Verwendung von internen IP-Adressen außerhalb von RFC 1918 wird unterstützt.

API

Geben Sie das Feld privateClusterConfig in der API-Ressource Cluster an:

{
  "name": "private-cluster-1",
  ...
  "ipAllocationPolicy": {
    "createSubnetwork": true,
  },
  ...
    "privateClusterConfig" {
      "enablePrivateNodes": boolean # Creates nodes with internal IP addresses only
      "enablePrivateEndpoint": boolean # false creates a cluster control plane with a publicly-reachable endpoint
      "masterIpv4CidrBlock": string # CIDR block for the cluster control plane
      "privateEndpoint": string # Output only
      "publicEndpoint": string # Output only
  }
}

Dies sind an diesem Punkt die einzigen IP-Adressen mit Zugriff auf die Clustersteuerungsebene:

  • Der primäre Bereich von my-subnet-1
  • Der für Pods verwendete sekundäre Bereich

Angenommen, Sie haben außerhalb Ihres VPC-Netzwerks mehrere Maschinen mit Adressen im Bereich 203.0.113.0/29. Diesen Maschinen können Sie mit folgendem Befehl Zugriff auf den öffentlichen Endpunkt gewähren:

gcloud container clusters update private-cluster-1 \
    --enable-master-authorized-networks \
    --master-authorized-networks 203.0.113.0/29

Dies sind jetzt die einzigen IP-Adressen mit Zugriff auf die Steuerungsebene:

  • Der primäre Bereich von my-subnet-1
  • Der für Pods verwendete sekundäre Bereich
  • Von Ihnen autorisierte Adressbereiche, beispielsweise 203.0.113.0/29.

Benutzerdefiniertes Subnetz verwenden

In diesem Abschnitt erstellen Sie die folgenden Ressourcen:

  • Ein privater Cluster mit dem Namen private-cluster-2.
  • Ein Netzwerk mit dem Namen my-net-2.
  • Ein Subnetz mit dem Namen my-subnet-2 mit dem primären Bereich 192.168.0.0/20 für Ihre Clusterknoten. Das Subnetz hat die folgenden sekundären Adressbereiche:
    • my-pods für die Pod-IP-Adressen.
    • my-services für die Service-IP-Adressen.

Console

Netzwerk, Subnetz und sekundäre Bereiche erstellen

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf VPC-Netzwerk erstellen.

  3. Geben Sie für Name my-net-2 ein.

  4. Wählen Sie unter Modus für Subnetzerstellung die Option Benutzerdefiniert aus.

  5. Geben Sie im Feld Neues Subnetz für Name den Wert my-subnet-2 ein.

  6. Wählen Sie in der Liste Region die gewünschte Region aus.

  7. Geben Sie 192.168.0.0/20 als IP-Adressbereich ein.

  8. Klicken Sie auf Sekundären IP-Bereich erstellen. Geben Sie my-services für Name des Subnetzbereichs und 10.0.32.0/20 für Sekundärer IP-Bereich ein.

  9. Klicken Sie auf IP-Bereich hinzufügen. Geben Sie für Name des Subnetzbereichs my-pods und für Sekundärer IP-Bereich 10.4.0.0/14 ein.

  10. Setzen Sie Privater Google-Zugriff auf An.

  11. Klicken Sie auf Fertig.

  12. Klicken Sie auf Erstellen.

Privaten Cluster erstellen

Erstellen Sie einen privaten Cluster, der Ihr Subnetz verwendet:

  1. Rufen Sie in der Google Cloud Console 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. Geben Sie im Feld Name private-cluster-2 ein.

  4. Klicken Sie im Navigationsbereich auf Netzwerk.

  5. Wählen Sie das Optionsfeld Privater Cluster aus.

  6. Wenn Sie eine Steuerungsebene erstellen möchten, auf die von autorisierten externen IP-Bereichen aus zugegriffen werden kann, behalten Sie das Häkchen im Kästchen Zugriffsebene der Steuerungsebene mit externer IP-Adresse bei.

  7. (Optional für Autopilot) Legen Sie den IP-Bereich der Steuerungsebene auf 172.16.0.16/28 fest.

  8. Wählen Sie in der Liste Netzwerk die Option my-net-2 aus.

  9. Wählen Sie in der Liste Knotensubnetz die Option my-subnet-2 aus.

  10. Entfernen Sie das Häkchen aus dem Kästchen Sekundäre Bereiche automatisch erstellen.

  11. Wählen Sie in der Liste Sekundärer Pod-CIDR-Bereich die Option my-pods aus.

  12. Wählen Sie in der Liste Sekundärer CIDR-Dienstbereich die Option my-services aus.

  13. Klicken Sie das Kästchen Autorisierte Steuerungsebenennetzwerke aktivieren an.

  14. Klicken Sie auf Erstellen.

gcloud

Netzwerk erstellen

Erstellen Sie zuerst ein Netzwerk für den Cluster. Mit dem folgenden Befehl wird das Netzwerk my-net-2 erstellt:

gcloud compute networks create my-net-2 \
    --subnet-mode custom

Subnetz und sekundäre Bereiche erstellen

Erstellen Sie dann das Subnetz my-subnet-2 im Netzwerk my-net-2 mit den sekundären Bereichen my-pods für Pods und my-services für Dienste:

gcloud compute networks subnets create my-subnet-2 \
    --network my-net-2 \
    --range 192.168.0.0/20 \
    --secondary-range my-pods=10.4.0.0/14,my-services=10.0.32.0/20 \
    --enable-private-ip-google-access

Privaten Cluster erstellen

Erstellen Sie nun den privaten Cluster private-cluster-2 mit dem Netzwerk, Subnetz und den sekundären Bereichen, die Sie erstellt haben.

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

    gcloud container clusters create-auto private-cluster-2 \
        --enable-master-authorized-networks \
        --network my-net-2 \
        --subnetwork my-subnet-2 \
        --cluster-secondary-range-name my-pods \
        --services-secondary-range-name my-services \
        --enable-private-nodes
    
  • Führen Sie für Standardcluster den folgenden Befehl aus:

    gcloud container clusters create private-cluster-2 \
        --enable-master-authorized-networks \
        --network my-net-2 \
        --subnetwork my-subnet-2 \
        --cluster-secondary-range-name my-pods \
        --services-secondary-range-name my-services \
        --enable-private-nodes \
        --enable-ip-alias \
        --master-ipv4-cidr 172.16.0.16/28 \
        --no-enable-basic-auth \
        --no-issue-client-certificate
    

Dies sind derzeit die einzigen IP-Adressen mit Zugriff auf die Steuerungsebene:

  • Der primäre Bereich von my-subnet-2
  • Der sekundäre Bereich my-pods

Angenommen, Sie haben eine Gruppe von Computern außerhalb von my-net-2 mit Adressen im Bereich 203.0.113.0/29. Diesen Maschinen können Sie mit folgendem Befehl Zugriff auf den öffentlichen Endpunkt gewähren:

gcloud container clusters update private-cluster-2 \
    --enable-master-authorized-networks \
    --master-authorized-networks 203.0.113.0/29

Dies sind derzeit die einzigen IP-Adressen mit Zugriff auf die Steuerungsebene:

  • Der primäre Bereich von my-subnet-2
  • Der sekundäre Bereich my-pods
  • Von Ihnen autorisierte Adressbereiche, beispielsweise 203.0.113.0/29.

Mit Cloud Shell auf einen privaten Cluster zugreifen

Der private Cluster private-cluster-1, den Sie im Abschnitt Automatisch erzeugtes Subnetz verwenden erstellt haben, hat einen öffentlichen Endpunkt und aktivierte autorisierte Netzwerke. Wenn Sie mit Cloud Shell auf den Cluster zugreifen möchten, fügen Sie die externe IP-Adresse Ihrer Cloud Shell der Liste der autorisierten Netzwerke des Clusters hinzu.

Vorgehensweise:

  1. Verwenden Sie im Cloud Shell-Befehlszeilenfenster dig, um die externe IP-Adresse Ihrer Cloud Shell zu finden:

    dig +short myip.opendns.com @resolver1.opendns.com
    
  2. Fügen Sie der Liste autorisierter Netzwerke Ihres Clusters die externe Adresse von Cloud Shell hinzu:

    gcloud container clusters update private-cluster-1 \
        --enable-master-authorized-networks \
        --master-authorized-networks EXISTING_AUTH_NETS,SHELL_IP/32
    

    Ersetzen Sie Folgendes:

    • EXISTING_AUTH_NETS: Die IP-Adressen der vorhandenen Liste autorisierter Netzwerke. Sie finden Ihre autorisierten Netzwerke in der Console oder durch Ausführen des folgenden Befehls:

      gcloud container clusters describe private-cluster-1 --format "flattened(masterAuthorizedNetworksConfig.cidrBlocks[])"
      
    • SHELL_IP ist die externe IP-Adresse Ihrer Cloud Shell.

  3. Rufen Sie die Anmeldedaten ab, damit Sie kubectl für den Zugriff auf den Cluster verwenden können:

    gcloud container clusters get-credentials private-cluster-1 \
        --project=PROJECT_ID \
        --internal-ip
    

    Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

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

    kubectl get nodes
    

    Die Ausgabe sieht in etwa so aus:

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

Privaten Cluster mit unbeschränktem Zugriff auf den öffentlichen Endpunkt erstellen

In diesem Abschnitt erstellen Sie einen privaten Cluster, in dem jede IP-Adresse auf die Steuerungsebene zugreifen kann.

Console

  1. Rufen Sie in der Google Cloud Console 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. Geben Sie im Feld Name private-cluster-3 ein.

  4. Klicken Sie im Navigationsbereich auf Netzwerk.

  5. Wählen Sie die Option Privater Cluster aus.

  6. Behalten Sie das Häkchen im Kästchen Zugriffsebene der Steuerungsebene mit externer IP-Adresse bei.

  7. (Optional für Autopilot) Legen Sie den IP-Bereich der Steuerungsebene auf 172.16.0.32/28 fest.

  8. Belassen Sie Netzwerk und Knotensubnetz auf default. GKE generiert dadurch ein Subnetz für den Cluster.

  9. Entfernen Sie das Häkchen aus dem Kästchen Autorisierte Steuerungsebenennetzwerke aktivieren.

  10. Klicken Sie auf Erstellen.

gcloud

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

    gcloud container clusters create-auto private-cluster-3 \
        --create-subnetwork name=my-subnet-3 \
        --no-enable-master-authorized-networks \
        --enable-private-nodes
    
  • Führen Sie für Standardcluster den folgenden Befehl aus:

    gcloud container clusters create private-cluster-3 \
        --create-subnetwork name=my-subnet-3 \
        --no-enable-master-authorized-networks \
        --enable-ip-alias \
        --enable-private-nodes \
        --master-ipv4-cidr 172.16.0.32/28
    

Dabei gilt:

  • --create-subnetwork name=my-subnet-3 bewirkt, dass GKE automatisch ein Subnetz mit dem Namen my-subnet-3 erstellt.
  • --no-enable-master-authorized-networks deaktiviert autorisierte Netzwerke für den Cluster.
  • --enable-ip-alias sorgt dafür, dass der Cluster VPC-nativ ist (nicht für Autopilot erforderlich).
  • --enable-private-nodes gibt an, dass die Knoten des Clusters keine externen IP-Adressen haben.
  • --master-ipv4-cidr 172.16.0.32/28 gibt einen internen IP-Adressbereich für die Steuerungsebene an (optional für Autopilot). Diese Einstellung ist für diesen Cluster dauerhaft und muss innerhalb der VPC eindeutig sein. Die Verwendung von internen IP-Adressen außerhalb von RFC 1918 wird unterstützt.

Firewallregeln für bestimmte Anwendungsfälle hinzufügen

In diesem Abschnitt wird erläutert, wie Sie eine Firewallregel zu einem privaten Cluster 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 erstellte 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 privaten 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.

Schritt 1: 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 Console 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 den folgenden Befehl aus:

gcloud container clusters describe CLUSTER_NAME

Ersetzen Sie CLUSTER_NAME durch den Namen Ihres privaten Clusters.

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

Schritt 2: 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 Console 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.

Schritt 3: Firewallregel hinzufügen

Console

  1. Rufen Sie in der Google Cloud Console 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).

Externe IP-Adressen für Knoten ausschließen

Kontrollieren Sie nach dem Erstellen eines privaten Clusters, dass die Knoten des Clusters keine externen IP-Adressen haben.

Console

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

    Zur Seite "Google Kubernetes Engine"

  2. Klicken Sie in der Liste der Cluster auf den Clusternamen.

  3. Klicken Sie bei Autopilot-Clustern im Abschnitt Clustergrundlagen auf das Feld Externer Endpunkt. Der Wert ist Deaktiviert.

Führen Sie für Standardcluster die folgenden Schritte aus:

  1. Klicken Sie auf der Seite Cluster auf den Tab Knoten.
  2. Klicken Sie unter Knotenpools auf den Namen des Knotenpools.
  3. Klicken Sie auf der Seite Knotenpooldetails unter Instanzgruppen auf den Namen Ihrer Instanzgruppe. Beispiel: gke-private-cluster-0-default-pool-5c5add1f-grp.
  4. Bestätigen Sie in der Liste der Instanzen, dass Ihre Instanzen keine externen IP-Adressen haben.

gcloud

Führen Sie den folgenden Befehl aus:

kubectl get nodes --output wide

Die Spalte EXTERNAL-IP der Ausgabe ist leer:

STATUS ... VERSION        EXTERNAL-IP  OS-IMAGE ...
Ready      v.8.7-gke.1                 Container-Optimized OS
Ready      v1.8.7-gke.1                Container-Optimized OS
Ready      v1.8.7-gke.1                Container-Optimized OS

Wiederverwendung von VPC-Peering im Cluster prüfen

Für private Cluster, die nach dem 15. Januar 2020 erstellt werden, können VPC-Netzwerk-Peering-Verbindungen wiederverwendet werden.

Mit der gcloud CLI oder der Google Cloud Console können Sie prüfen, ob Ihr privater Cluster VPC-Netzwerk-Peering-Verbindungen wiederverwendet.

Console

Prüfen Sie die Zeile für das VPC-Peering auf der Seite Clusterdetails. Wenn Ihr Cluster VPC-Peering-Verbindungen wiederverwendet, beginnt die Ausgabe mit gke-n. Beispiel: gke-n34a117b968dee3b2221-93c6-40af-peer

gcloud

gcloud container clusters describe CLUSTER_NAME \
    --format="value(privateClusterConfig.peeringName)"

Wenn Ihr Cluster VPC-Peering-Verbindungen wiederverwendet, beginnt die Ausgabe mit gke-n. Beispiel: gke-n34a117b968dee3b2221-93c6-40af-peer.

Bereinigen

Wenn Sie mit den Aufgaben auf dieser Seite fertig sind, entfernen Sie die Ressourcen anhand der folgenden Schritte, sodass keine unerwünschten Kosten für Ihr Konto entstehen:

Cluster löschen

Console

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

    Zur Seite "Google Kubernetes Engine"

  2. Wählen Sie jeden Cluster aus.

  3. Klicken Sie auf Löschen.

gcloud

gcloud container clusters delete -q private-cluster-0 private-cluster-1 private-cluster-2 private-cluster-3

Netzwerk löschen

Console

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie in der Liste der Netzwerke auf my-net-0.

  3. Klicken Sie auf der Seite VPC-Netzwerkdetails auf VPC-Netzwerk löschen.

  4. Klicken Sie im Dialogfeld Netzwerk löschen auf Löschen.

gcloud

gcloud compute networks delete my-net-0

Nächste Schritte