arrow_back

Privaten Kubernetes-Cluster einrichten

Anmelden Teilnehmen
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Privaten Kubernetes-Cluster einrichten

Lab 1 Stunde 30 Minuten universal_currency_alt 5 Guthabenpunkte show_chart Mittelstufe
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP178

Logo: Google Cloud-Labs zum selbstbestimmten Lernen

Übersicht

In der Kubernetes Engine ist ein privater Cluster ein Cluster, bei dem der Master vom öffentlichen Internet aus nicht erreichbar ist. Dabei haben Knoten keine öffentlichen IP-Adressen, sondern nur private Adressen. Daher wird die Arbeitslast in einer isolierten Umgebung ausgeführt. Knoten und Master kommunizieren über VPC-Peering.

In der Kubernetes Engine API werden Adressbereiche als CIDR-Blöcke (Classless Inter-Domain Routing) ausgedrückt.

In diesem Lab lernen Sie, wie Sie einen privaten Kubernetes-Cluster erstellen.

Aufgaben

  • Privaten Kubernetes-Cluster erstellen

Voraussetzungen

  • Es werden Erfahrung im Erstellen und Starten von Kubernetes-Clustern sowie solide Kenntnisse der IP-Adressen im CIDR-Bereich vorausgesetzt.

Einrichtung und Anforderungen

Vor dem Klick auf „Start Lab“ (Lab starten)

Lesen Sie diese Anleitung. Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer beginnt zu laufen, wenn Sie auf Lab starten klicken, und zeigt Ihnen, wie lange die Ressourcen für das Lab verfügbar sind.

In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung selbst durchführen – nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf Google Cloud zugreifen können.

Für dieses Lab benötigen Sie Folgendes:

  • Einen Standardbrowser (empfohlen wird Chrome)
Hinweis: Nutzen Sie den privaten oder Inkognitomodus, um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.
  • Zeit für die Durchführung des Labs – denken Sie daran, dass Sie ein begonnenes Lab nicht unterbrechen können.
Hinweis: Wenn Sie über ein persönliches Google Cloud-Konto oder -Projekt verfügen, verwenden Sie es nicht für dieses Lab. So werden zusätzliche Kosten für Ihr Konto vermieden.

Lab starten und bei der Google Cloud Console anmelden

  1. Klicken Sie auf Lab starten. Wenn Sie für das Lab bezahlen müssen, wird ein Pop-up-Fenster geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können. Auf der linken Seite befindet sich der Bereich Details zum Lab mit diesen Informationen:

    • Schaltfläche Google Cloud Console öffnen
    • Restzeit
    • Temporäre Anmeldedaten für das Lab
    • Ggf. weitere Informationen für dieses Lab
  2. Klicken Sie auf Google Cloud Console öffnen (oder klicken Sie mit der rechten Maustaste und wählen Sie Link in Inkognitofenster öffnen aus, wenn Sie Chrome verwenden).

    Im Lab werden Ressourcen aktiviert. Anschließend wird ein weiterer Tab mit der Seite Anmelden geöffnet.

    Tipp: Ordnen Sie die Tabs nebeneinander in separaten Fenstern an.

    Hinweis: Wird das Dialogfeld Konto auswählen angezeigt, klicken Sie auf Anderes Konto verwenden.
  3. Kopieren Sie bei Bedarf den folgenden Nutzernamen und fügen Sie ihn in das Dialogfeld Anmelden ein.

    {{{user_0.username | "Username"}}}

    Sie finden den Nutzernamen auch im Bereich Details zum Lab.

  4. Klicken Sie auf Weiter.

  5. Kopieren Sie das folgende Passwort und fügen Sie es in das Dialogfeld Willkommen ein.

    {{{user_0.password | "Password"}}}

    Sie finden das Passwort auch im Bereich Details zum Lab.

  6. Klicken Sie auf Weiter.

    Wichtig: Sie müssen die für das Lab bereitgestellten Anmeldedaten verwenden. Nutzen Sie nicht die Anmeldedaten Ihres Google Cloud-Kontos. Hinweis: Wenn Sie Ihr eigenes Google Cloud-Konto für dieses Lab nutzen, können zusätzliche Kosten anfallen.
  7. Klicken Sie sich durch die nachfolgenden Seiten:

    • Akzeptieren Sie die Nutzungsbedingungen.
    • Fügen Sie keine Wiederherstellungsoptionen oder Zwei-Faktor-Authentifizierung hinzu (da dies nur ein temporäres Konto ist).
    • Melden Sie sich nicht für kostenlose Testversionen an.

Nach wenigen Augenblicken wird die Google Cloud Console in diesem Tab geöffnet.

Hinweis: Wenn Sie sich eine Liste der Google Cloud-Produkte und ‑Dienste ansehen möchten, klicken Sie oben links auf das Navigationsmenü. Symbol für Navigationsmenü

Cloud Shell aktivieren

Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud. Mit Cloud Shell erhalten Sie Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen.

  1. Klicken Sie oben in der Google Cloud Console auf Cloud Shell aktivieren Symbol für Cloud Shell-Aktivierung.

Wenn Sie verbunden sind, sind Sie bereits authentifiziert und das Projekt ist auf Ihre Project_ID, eingestellt. Die Ausgabe enthält eine Zeile, in der die Project_ID für diese Sitzung angegeben ist:

Ihr Cloud-Projekt in dieser Sitzung ist festgelegt als {{{project_0.project_id | "PROJECT_ID"}}}

gcloud ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.

  1. (Optional) Sie können den aktiven Kontonamen mit diesem Befehl auflisten:
gcloud auth list
  1. Klicken Sie auf Autorisieren.

Ausgabe:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} Um das aktive Konto festzulegen, führen Sie diesen Befehl aus: $ gcloud config set account `ACCOUNT`
  1. (Optional) Sie können die Projekt-ID mit diesem Befehl auflisten:
gcloud config list project

Ausgabe:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Hinweis: Die vollständige Dokumentation für gcloud finden Sie in Google Cloud in der Übersicht zur gcloud CLI.

Aufgabe 1: Region und Zone einrichten

  1. Richten Sie die Projektregion für dieses Lab ein:
gcloud config set compute/zone {{{project_0.default_zone | "Zone"}}}
  1. Erstellen Sie eine Variable für die Region:
export REGION={{{project_0.default_region | Region}}}
  1. Erstellen Sie eine Variable für die Zone:
export ZONE={{{project_0.default_zone | Zone}}}

Informationen dazu finden Sie unter Regionen und Zonen.

Hinweis: Wenn Sie gcloud auf Ihrem eigenen Computer ausführen, werden die Konfigurationseinstellungen sitzungsübergreifend beibehalten. In Cloud Shell müssen Sie sie für jede neue Sitzung oder Verbindung festlegen.

Aufgabe 2: Privaten Cluster erstellen

  1. Beim Erstellen eines privaten Clusters müssen Sie für die VMs, die die Masterkomponenten von Kubernetes ausführen, eine CIDR-Adresse im Bereich /28 wählen und IP-Aliasse aktivieren.

Anschließend erstellen Sie einen Cluster namens private-cluster und geben für die Master einen CIDR-Bereich von 172.16.0.16/28 an. Sind die IP-Aliasse aktiviert, erstellt die Kubernetes Engine automatisch ein Subnetzwerk für Sie.

Sie erstellen den privaten Cluster mit den Flags --private-cluster, --master-ipv4-cidr und --enable-ip-alias.

  1. Führen Sie folgenden Befehl aus, um den Cluster zu erstellen:
gcloud beta container clusters create private-cluster \ --enable-private-nodes \ --master-ipv4-cidr 172.16.0.16/28 \ --enable-ip-alias \ --create-subnetwork ""

Test nach Abschluss der Aufgabe

Klicken Sie auf Fortschritt prüfen. Wenn der private Cluster erstellt wurde, erhalten Sie ein Testergebnis.

Privaten Cluster erstellen

Aufgabe 3: Subnetz und sekundäre Adressbereiche ansehen

  1. Lassen Sie sich eine Liste der Subnetze im Standardnetzwerk anzeigen:
gcloud compute networks subnets list --network default
  1. Suchen Sie in der Ausgabe den Namen des Subnetzwerks, das automatisch für Ihren Cluster erstellt wurde, beispielsweise gke-private-cluster-subnet-xxxxxxxx. Speichern Sie den Namen des Clusters – im nächsten Schritt benötigen Sie ihn wieder.

  2. Rufen Sie jetzt Informationen zum automatisch erstellten Subnetz ab. Führen Sie dazu den folgenden Befehl aus und ersetzen Sie [SUBNET_NAME] durch Ihr Subnetz:

gcloud compute networks subnets describe [SUBNET_NAME] --region=$REGION

In der Ausgabe sehen Sie den primären Adressbereich mit dem Namen Ihres privaten GKE-Clusters und den sekundären Bereichen:

... ipCidrRange: 10.0.0.0/22 kind: compute#subnetwork name: gke-private-cluster-subnet-163e3c97 ... privateIpGoogleAccess: true ... secondaryIpRanges: - ipCidrRange: 10.40.0.0/14 rangeName: gke-private-cluster-pods-163e3c97 - ipCidrRange: 10.0.16.0/20 rangeName: gke-private-cluster-services-163e3c97 ...

In der Ausgabe sehen Sie, dass ein sekundärer Bereich für Pods und der andere für Dienste genutzt wird.

Wie Sie sehen, ist privateIPGoogleAccess auf true festgelegt. Dadurch können Ihre Clusterhosts, die nur private IP-Adressen haben, mit APIs und Diensten von Google kommunizieren.

Aufgabe 4: Autorisierte Masternetzwerke aktivieren

Die einzigen IP-Adressen, die jetzt Zugriff auf den Master haben, befinden sich in folgenden Bereichen:

  • Primärer Bereich Ihres Subnetzwerks. Dies ist der Bereich, der für Knoten verwendet wird.
  • Sekundärer Bereich Ihres Subnetzwerks. Dies ist der Bereich, der für Pods verwendet wird.

Wenn Sie zusätzlichen Zugriff auf den Master ermöglichen möchten, müssen Sie ausgewählte Adressbereiche autorisieren.

VM-Instanz erstellen

  1. Erstellen Sie eine Quellinstanz, mit der Sie die Verbindung zu Kubernetes-Clustern prüfen können:
gcloud compute instances create source-instance --zone=$ZONE --scopes 'https://www.googleapis.com/auth/cloud-platform'

Test nach Abschluss der Aufgabe

Klicken Sie auf Fortschritt prüfen. Wenn die VM-Instanz erstellt wurde, erhalten Sie ein Testergebnis.

VM-Instanz erstellen
  1. Rufen Sie mit folgendem Befehl die <External_IP> (externe IP-Adresse) der source-instance (Quellinstanz) auf:
gcloud compute instances describe source-instance --zone=$ZONE | grep natIP

Beispielausgabe:

natIP: 35.192.107.237
  1. Kopieren Sie die <nat_IP>-Adresse und speichern Sie sie zur Verwendung in späteren Schritten.

  2. Führen Sie folgenden Befehl aus, um den externen Adressbereich zu autorisieren. Ersetzen Sie dabei [MY_EXTERNAL_RANGE] durch den CIDR-Bereich der externen Adressen aus der vorherigen Ausgabe. Ihr CIDR-Bereich lautet natIP/32. Mit dem CIDR-Bereich natIP/32 setzen wir eine bestimmte IP-Adresse auf die Zulassungsliste:

gcloud container clusters update private-cluster \ --enable-master-authorized-networks \ --master-authorized-networks [MY_EXTERNAL_RANGE] Hinweis: Ersetzen Sie in einer Produktionsumgebung [MY_EXTERNAL_RANGE] durch den externen CIDR-Adressbereich Ihres Netzwerks.

Test nach Abschluss der Aufgabe

Klicken Sie auf Fortschritt prüfen. Wenn der externe Adressbereich autorisiert wurde, erhalten Sie ein Testergebnis.

Externen Adressbereich autorisieren

Nun können Sie von einer Reihe externer Adressen auf den Master zugreifen. Installieren Sie jetzt kubectl, um darüber Informationen zu Ihrem Cluster zu erhalten. Sie können mit kubectl beispielsweise prüfen, ob Ihre Knoten tatsächlich keine externen IP-Adressen haben.

  1. Stellen Sie mit folgendem Befehl eine SSH-Verbindung zu source-instance her:
gcloud compute ssh source-instance --zone=$ZONE
  1. Drücken Sie auf Y, um fortzufahren, und bei den Fragen zur Passphrase auf die Eingabetaste.

  2. Installieren Sie die kubectl-Komponenten von Cloud SDK in der SSH-Shell:

sudo apt-get install kubectl
  1. Konfigurieren Sie mit folgendem Befehl über die SSH-Shell den Kubernetes-Cluster:
sudo apt-get install google-cloud-sdk-gke-gcloud-auth-plugin gcloud container clusters get-credentials private-cluster --zone=$ZONE Hinweis: Achten Sie darauf, dass die zugewiesene Zone in die Variable ZONE exportiert wurde.
  1. Prüfen Sie, ob Ihre Clusterknoten auch wirklich keine externen IP-Adressen haben:
kubectl get nodes --output yaml | grep -A4 addresses

Die Ausgabe zeigt, dass die Knoten interne IP-Adressen haben, jedoch keine externen:

... addresses: - address: 10.0.0.4 type: InternalIP - address: "" type: ExternalIP ...
  1. Mit dem folgenden Befehl können Sie ebenfalls prüfen, ob Ihre Knoten auch wirklich keine externen IP-Adressen haben:
kubectl get nodes --output wide

In der Ausgabe ist die Spalte EXTERNAL-IP leer:

STATUS ... VERSION EXTERNAL-IP OS-IMAGE ... Ready v1.8.7-gke.1 Container-Optimized OS from Google Ready v1.8.7-gke.1 Container-Optimized OS from Google Ready v1.8.7-gke.1 Container-Optimized OS from Google
  1. Schließen Sie mit folgender Eingabe die SSH-Shell:
exit

Aufgabe 5: Bereinigen

  1. Löschen Sie den Kubernetes-Cluster:
gcloud container clusters delete private-cluster --zone=$ZONE
  1. Drücken Sie auf Y, um fortzufahren.

Test nach Abschluss der Aufgabe

Klicken Sie auf Fortschritt prüfen. Wenn der Kubernetes-Cluster gelöscht wurde, erhalten Sie ein Testergebnis.

Kubernetes-Cluster löschen

Aufgabe 6: Privaten Cluster für benutzerdefiniertes Subnetzwerk erstellen

Im vorherigen Abschnitt wurde in der Kubernetes Engine automatisch ein Subnetzwerk für Sie eingerichtet. In diesem Abschnitt erstellen Sie ein eigenes, benutzerdefiniertes Subnetzwerk und anschließend einen privaten Cluster. Ihr Subnetzwerk hat einen primären Adressbereich und zwei sekundäre.

  1. So erstellen Sie ein Subnetzwerk und sekundäre Bereiche:
gcloud compute networks subnets create my-subnet \ --network default \ --range 10.0.4.0/22 \ --enable-private-ip-google-access \ --region=$REGION \ --secondary-range my-svc-range=10.0.32.0/20,my-pod-range=10.4.0.0/14

Test nach Abschluss der Aufgabe

Klicken Sie auf Fortschritt prüfen. Wenn das Subnetzwerk und die sekundären Bereiche in der Region erstellt wurden, erhalten Sie ein Testergebnis.

Subnetzwerk und sekundäre Bereich in der Region erstellen
  1. So erstellen Sie einen privaten Cluster, der Ihr Subnetzwerk verwendet:
gcloud beta container clusters create private-cluster2 \ --enable-private-nodes \ --enable-ip-alias \ --master-ipv4-cidr 172.16.0.32/28 \ --subnetwork my-subnet \ --services-secondary-range-name my-svc-range \ --cluster-secondary-range-name my-pod-range \ --zone=$ZONE

Test nach Abschluss der Aufgabe

Klicken Sie auf Fortschritt prüfen. Wenn der private Cluster, der Ihr Subnetzwerk verwendet, erstellt wurde, erhalten Sie ein Testergebnis.

Privaten Cluster erstellen, der Ihr Subnetzwerk verwendet
  1. Rufen Sie den externen Adressbereich der Quellinstanz ab:
gcloud compute instances describe source-instance --zone=$ZONE | grep natIP

Beispielausgabe:

natIP: 35.222.210.67
  1. Kopieren Sie die <nat_IP>-Adresse und speichern Sie sie zur Verwendung in späteren Schritten.

  2. Führen Sie folgenden Befehl aus, um den externen Adressbereich zu autorisieren. Ersetzen Sie dabei [MY_EXTERNAL_RANGE] durch den CIDR-Bereich der externen Adressen aus der vorherigen Ausgabe. Ihr CIDR-Bereich lautet natIP/32. Mit dem CIDR-Bereich natIP/32 setzen wir eine bestimmte IP-Adresse auf die Zulassungsliste:

gcloud container clusters update private-cluster2 \ --enable-master-authorized-networks \ --zone=$ZONE \ --master-authorized-networks [MY_EXTERNAL_RANGE]

Test nach Abschluss der Aufgabe

Klicken Sie auf Fortschritt prüfen. Wenn der externe Adressbereich für einen privaten Cluster in einem benutzerdefinierten Subnetzwerk autorisiert wurde, erhalten Sie ein Testergebnis.

Externen Adressbereich für privaten Cluster in benutzerdefiniertem Subnetzwerk autorisieren
  1. Stellen Sie mit folgendem Befehl eine SSH-Verbindung zu source-instance her:
gcloud compute ssh source-instance --zone=$ZONE
  1. Konfigurieren Sie mit folgendem Befehl über die SSH-Shell den Kubernetes-Cluster:
gcloud container clusters get-credentials private-cluster2 --zone=$ZONE Hinweis: Achten Sie darauf, dass die zugewiesene Zone in die Variable ZONE exportiert wurde.
  1. Prüfen Sie, ob Ihre Clusterknoten auch wirklich keine externen IP-Adressen haben:
kubectl get nodes --output yaml | grep -A4 addresses

Die Ausgabe zeigt, dass die Knoten interne IP-Adressen haben, jedoch keine externen:

... addresses: - address: 10.0.4.3 type: InternalIP ...

Die einzigen IP-Adressen, die jetzt Zugriff auf den Master haben, befinden sich in folgenden Bereichen:

  • Primärer Bereich Ihres Subnetzwerks. Dies ist der Bereich, der für Knoten verwendet wird. In diesem Beispiel ist der Bereich für Knoten 10.0.4.0/22.
  • Sekundärer Bereich Ihres Subnetzwerks. Dies ist der Bereich, der für Pods verwendet wird. In diesem Beispiel ist der Bereich für Pods 10.4.0.0/14.

Das wars! Sie haben das Lab erfolgreich abgeschlossen.

Sie haben gelernt, wie Sie einen privaten Kubernetes-Cluster erstellen.

Weitere Informationen

Google Cloud-Schulungen und -Zertifizierungen

In unseren Schulungen erfahren Sie alles zum optimalen Einsatz unserer Google Cloud-Technologien und können sich entsprechend zertifizieren lassen. Unsere Kurse vermitteln technische Fähigkeiten und Best Practices, damit Sie möglichst schnell mit Google Cloud loslegen und Ihr Wissen fortlaufend erweitern können. Wir bieten On-Demand-, Präsenz- und virtuelle Schulungen für Anfänger wie Fortgeschrittene an, die Sie individuell in Ihrem eigenen Zeitplan absolvieren können. Mit unseren Zertifizierungen weisen Sie nach, dass Sie Experte im Bereich Google Cloud-Technologien sind.

Anleitung zuletzt am 15. April 2024 aktualisiert

Lab zuletzt am 20. September 2023 getestet

© 2024 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.