Anleitung und Anforderungen für Lab-Einrichtung
Schützen Sie Ihr Konto und Ihren Fortschritt. Verwenden Sie immer den privaten Modus und Lab-Anmeldedaten, um dieses Lab auszuführen.

GKE-Autopilot-Cluster über die Cloud Shell bereitstellen

Lab 1 Stunde universal_currency_alt 1 Guthabenpunkt show_chart Einsteiger
info Dieses Lab kann KI-Tools enthalten, die den Lernprozess unterstützen.
Dieser Inhalt ist noch nicht für Mobilgeräte optimiert.
Die Lernumgebung funktioniert am besten, wenn Sie auf einem Computer über einen per E‑Mail gesendeten Link darauf zugreifen.

Übersicht

In diesem Lab verwenden Sie die Befehlszeile, um GKE-Cluster zu erstellen. Sie sehen sich die Datei "kubeconfig" näher an und bearbeiten den Cluster mit dem Befehl kubectl.

Lernziele

Aufgaben in diesem Lab:

  • kubectl zum Erstellen und Bearbeiten von GKE-Clustern verwenden
  • Pods mithilfe von kubectl und Konfigurationsdateien bereitstellen
  • Container mithilfe von Container Registry speichern und bereitstellen

Lab einrichten

Auf Ihr Lab zugreifen

Für jedes Lab werden Ihnen ein neues Google Cloud-Projekt und die entsprechenden Ressourcen für eine bestimmte Zeit kostenlos zur Verfügung gestellt.

  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 eine Liste der Google Cloud-Produkte und ‑Dienste aufrufen möchten, klicken Sie oben links auf das Navigationsmenü oder geben Sie den Namen des Produkts oder Dienstes in das Feld Suchen ein. Symbol für Navigationsmenü

Nachdem Sie sich angemeldet haben, sehen Sie das Projekt-Dashboard.

Seite mit dem Tab "Dashboard" für das Projekt

Cloud Shell öffnen

In diesem Lab arbeiten Sie überwiegend in der Cloud Shell. Die Cloud Shell ist eine Befehlszeilenumgebung, die in Google Cloud ausgeführt wird. Diese Debian-basierte virtuelle Maschine verfügt über alle gängigen Managementtools, wie docker, gcloud, gsutil und kubectl, und stellt ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher zur Verfügung.

  1. Klicken Sie in der Titelleiste der Google Cloud Console auf Cloud Shell aktivieren (Symbol für Cloud Shell-Aktivierung).
  2. Klicken Sie auf Weiter.

Die Bereitstellung dauert einen Moment. Anschließend sehen Sie die Cloud Shell-Eingabeaufforderung:

Cloud Shell-Eingabefeld mit der Begrüßung „Welcome to Cloud Shell! Type "help" to get started.“

Aufgabe 1: GKE-Cluster bereitstellen

Im Rahmen dieser Aufgabe stellen Sie GKE-Cluster anhand der Cloud Shell bereit.

  1. Geben Sie in der Cloud Shell folgenden Befehl ein, um die Umgebungsvariable für Zone und Clustername einzurichten:
export my_region={{{project_0.default_region|Region}}} export my_cluster=autopilot-cluster-1
  1. Geben Sie in der Cloud Shell den folgenden Befehl ein, um einen Kubernetes-Cluster zu erstellen: Wenn Sie dazu aufgefordert werden, klicken Sie auf Autorisieren:
gcloud container clusters create-auto $my_cluster --region $my_region

Der Befehl legt in dieser Form den Standardwert für die meisten Optionen fest. Einen Überblick über alle verfügbaren Optionen finden Sie in der Referenz zu gcloud container clusters create.

Sie sehen mehrere Warnmeldungen, in denen auf Änderungen an den Standardeinstellungen für GKE-Cluster hingewiesen wird. Diese wurden mit der Übernahme neuerer Kubernetes-Versionen für die GKE eingeführt.

Hinweis: Es kann einige Minuten dauern, bis die Clusterbereitstellung abgeschlossen ist.

Wenn der Vorgang abgeschlossen ist, sollte die Seite Kubernetes Engine > Cluster in der Google Cloud Console so aussehen wie auf diesem Screenshot:

Auf der Seite „Kubernetes-Cluster“ werden Details wie Standort, Clustergröße, Anzahl der Kerne und Gesamtarbeitsspeicher für „autopilot-cluster-1“ angezeigt.

Klicken Sie auf Fortschritt prüfen. GKE-Cluster bereitstellen

Aufgabe 2: Verbindung zu einem GKE-Cluster herstellen

In dieser Aufgabe nutzen Sie Cloud Shell zur Authentifizierung bei einem GKE-Cluster. Danach sehen Sie sich die kubectl-Konfigurationsdateien an.

Die Authentifizierung in Kubernetes gilt für die Kommunikation mit dem Cluster von einem externen Client über den kube-API-Server, der auf dem Master ausgeführt wird. Sie gilt ebenfalls für Clustercontainer, die innerhalb des Clusters oder extern kommunizieren.

In Kubernetes gibt es verschiedene Authentifizierungsarten. In GKE wird die Authentifizierung in der Regel mit OAuth2-Tokens abgewickelt. Sie kann projektweit über Cloud Identity and Access Management oder optional über die rollenbasierte Zugriffssteuerung verwaltet werden, die in jedem Cluster definiert und konfiguriert werden kann.

In der GKE können für Clustercontainer Dienstkonten für die Authentifizierung und den Zugriff auf externe Ressourcen genutzt werden.

Hinweis: In Kubernetes-Versionen vor 1.12 sind Clientzertifikate und die Basisauthentifizierung standardmäßig nicht deaktiviert. Dabei handelt es sich aber um weniger sichere Authentifizierungsmethoden, die zur Sicherheit des Clusters deaktiviert werden sollten. Ab Version 1.12 sind diese Methoden standardmäßig deaktiviert.
  1. Führen Sie folgenden Befehl aus, um eine kubeconfig-Datei mit den aktuellen Nutzer-Anmeldedaten für die Authentifizierung zu erstellen. Außerdem stellen Sie mit dem Befehl die Endpunktdetails eines Clusters für die Kommunikation mit diesem Cluster über das kubectl-Befehlszeilentool bereit:
gcloud container clusters get-credentials $my_cluster --region $my_region

Dieser Befehl erstellt in Ihrem Basisverzeichnis ein .kube-Verzeichnis, falls noch nicht vorhanden. Im .kube-Verzeichnis erzeugt der Befehl eine Datei namens config, falls noch nicht vorhanden. Darin werden die Informationen zur Authentifizierung und zur Konfiguration gespeichert. In der Regel wird diese Konfigurationsdatei "kubeconfig" genannt.

  1. Öffnen Sie die kubeconfig-Datei mit dem nano-Texteditor:
nano ~/.kube/config

Sie können sich jetzt alle in der Datei gespeicherten Informationen zur Authentifizierung und zur Endpunktkonfiguration ansehen. Es sollten Informationen zum Cluster angezeigt werden. Diese wurden beim Erstellen des Clusters eingefügt.

  1. Drücken Sie „Strg + X“, um den nano-Editor zu schließen.
Hinweis: Die kubeconfig-Datei kann die Informationen vieler Cluster enthalten. Der derzeit aktive Kontext, also der Cluster, der durch die kubectl-Befehle bearbeitet wird, ist am current-context-Attribut zu erkennen.

Sie brauchen den Befehl gcloud container clusters get-credentials nicht auszuführen, um die kubeconfig-Datei für Cluster zu konfigurieren, die sie im selben Kontext, also mit denselben Nutzer- und Umgebungsdaten erstellt haben. Die entsprechenden Details wurden bereits bei Cluster-Erstellung übernommen.

Falls Sie eine Verbindung zu einem Cluster herstellen möchten, der von einer anderen Person oder in einer anderen Umgebung erstellt wurde, müssen Sie den Befehl aber ausführen. Mit dem Befehl lässt sich außerdem ganz einfach der aktive Kontext auf einen anderen Cluster verlagern.

Aufgabe 3: Einen GKE-Cluster mit kubectl überprüfen

Bei dieser Aufgabe überprüfen Sie einen GKE-Cluster mithilfe von Cloud Shell und kubectl.

Nachdem die Datei "kubeconfig" erzeugt und der aktive Kontext auf einen bestimmten Cluster festgelegt wurde, können Sie mit dem kubectl-Befehlszeilentool Befehle ausführen. Die meisten dieser Befehle lösen letztendlich einen REST API-Aufruf für den Master API-Server aus, der dann die zugehörige Aktion startet.

  1. Führen Sie in der Cloud Shell den folgenden Befehl aus, um sich den Inhalt der kubeconfig-Datei ausgeben zu lassen:
kubectl config view

Die vertraulichen Zertifikatdaten werden durch DATA+OMITTED ersetzt.

  1. Führen Sie in der Cloud Shell den folgenden Befehl aus, um sich die Clusterinformationen des aktiven Kontexts ausgeben zu lassen:
kubectl cluster-info

Die Ausgabe beschreibt den Cluster im aktiven Kontext.

Ausgabe:

Kubernetes control plane is running at https://34.133.211.75 GLBCDefaultBackend is running at https://34.133.211.75/api/v1/namespaces/kube-system/services/default-http-backend:http/proxy KubeDNS is running at https://34.133.211.75/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy KubeDNSUpstream is running at https://34.133.211.75/api/v1/namespaces/kube-system/services/kube-dns-upstream:dns/proxy Metrics-server is running at https://34.133.211.75/api/v1/namespaces/kube-system/services/https:metrics-server:/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
  1. Führen Sie in der Cloud Shell den folgenden Befehl aus, um sich den aktiven Kontext ausgeben zu lassen:
kubectl config current-context

Die ausgegebene Zeile zeigt den Cluster im aktiven Kontext an.

Ausgabe:

gke_{{{project_0.project_id|Project_ID}}}_{{{project_0.default_region|Region}}}_autopilot-cluster-1

PROJECT_ID ist Ihre Projekt-ID. Das ist dieselbe Information wie im current-context-Attribut der Datei "kubeconfig".

  1. Führen Sie in der Cloud Shell den folgenden Befehl aus, um sich einige Details aller Clusterkontexte in der kubeconfig-Datei ausgeben zu lassen:
kubectl config get-contexts

Es werden mehrere Zeilen mit Details zu dem von Ihnen erstellten Cluster ausgegeben. Außerdem sehen Sie, welcher der Cluster im aktiven Kontext ist. In der Regel werden mit diesem Befehl einige Details der Cluster aus der kubeconfig-Datei aufgelistet. Dazu zählen auch alle anderen von der Person erstellten Cluster und alle manuell zur kubeconfig-Datei hinzugefügten Cluster.

  1. Führen Sie in der Cloud Shell den folgenden Befehl aus, um den aktiven Kontext zu wechseln:
kubectl config use-context gke_${DEVSHELL_PROJECT_ID}_{{{project_0.default_region|Region}}}_autopilot-cluster-1

Da Sie bei dieser Aufgabe nur einen Cluster haben, ändert sich durch den Befehl nichts.

Bei zukünftigen Projekten arbeiten Sie aber möglicherweise mit mehreren Clustern. Mit diesem Befehl können Sie den aktiven Kontext wechseln, wenn bereits die Anmeldedaten und Konfiguration für mehrere Cluster in Ihrer kubeconfig-Datei enthalten sind. Sie benötigen den vollständigen Namen des Clusters (einschließlich des Präfixes gke), die Projekt-ID, den Standort und den Anzeigenamen. Alle Angaben müssen mit Unterstrichen verbunden sein.

  1. Führen Sie in der Cloud Shell den folgenden Befehl aus, um die Bash-Autovervollständigung für kubectl zu aktivieren:
source <(kubectl completion bash)

Dieser Befehl erzeugt keine Ausgabe.

  1. Geben Sie in der Cloud Shell kubectl gefolgt von einem Leerzeichen ein und drücken Sie zweimal die Tabulatortaste.

Die Shell gibt alle verfügbaren Befehle aus:

Cloud Shell mit allen verfügbaren Ausgabebefehlen

  1. Geben Sie in der Cloud Shell kubectl co ein und drücken Sie zweimal die Tabulatortaste.

Die Shell gibt alle Befehle aus, die mit „co“ oder einem beliebigen anderen Text, den Sie stattdessen eingeben, beginnen.

Cloud Shell mit allen Ausgabebefehlen, die mit „co“ beginnen, zum Beispiel „completion“, „convert“, „config“ und „cordon“

Aufgabe 4: Pods für GKE-Cluster bereitstellen

In dieser Aufgabe stellen Sie mithilfe von Cloud Shell Pods für GKE-Cluster bereit.

kubectl verwenden, um Pods für GKE bereitzustellen

Kubernetes nutzt sogenannte "Pods", um ein oder mehrere zusammengehörige Container zu einer einzigen Entität zusammenzufassen, die als Einheit auf demselben Knoten geplant und bereitgestellt wird. Sie können einen Pod bereitstellen, der aus einem einzelnen, aus einem Container-Image erzeugten Container besteht. Ein Pod kann aber auch viele Container enthalten, die mehreren Container-Images entstammen.

  1. Führen Sie in der Cloud Shell den folgenden Befehl aus, um nginx als Pod mit dem Namen „nginx-1“ bereitzustellen:
kubectl create deployment --image nginx nginx-1

Dieser Befehl erzeugt einen Pod namens „nginx“ mit einem Container, der das nginx-Image ausführt. Wenn kein Repository angegeben ist, wird standardmäßig lokal oder in der öffentlichen Docker-Registry nach dem Image gesucht. In diesem Fall wird das Image aus der öffentlichen Docker-Registry abgerufen.

  1. Führen Sie in der Cloud Shell den folgenden Befehl aus, um sich alle bereitgestellten Pods im Cluster im aktiven Kontext anzeigen zu lassen:
kubectl get pods

Die Ausgabe sollte folgendermaßen aussehen (mit geringfügig abweichendem Pod-Namen):

Hinweis: Wenn Ihnen die Meldung angezeigt wird, dass der Server die Anfrage derzeit nicht verarbeiten kann, warten Sie, bis die Bereitstellung abgeschlossen ist.

Ausgabe:

NAME READY STATUS RESTARTS AGE nginx-1-74c7bbdb84-nvwsc 1/1 Running 0 2m52s
  1. Führen Sie in der Cloud Shell den folgenden Befehl aus, um sich die Ressourcennutzung für alle Knoten des Clusters anzusehen:
kubectl top node

Die Ausgabe sollte wie unten gezeigt aussehen.

Ausgabe:

NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% gk3-autopilot-cluster-1-pool-2-7246ae0e-4q7s 1971m 102% 1803Mi 30% Hinweis: Wenn der Fehler metrics not available yet ausgegeben wird, führen Sie den obigen Befehl noch einmal aus.

Ein weiterer top-Befehl (kubectl top pods) gibt vergleichbare Informationen zu allen innerhalb des Clusters bereitgestellten Pods aus.

  1. Sie übertragen Ihren Pod-Namen nun in eine Variable, die Sie im weiteren Verlauf des Labs nutzen werden. Gerade bei langen Namen kann die Verwendung von Variablen helfen, Tippfehler zu vermeiden. Ersetzen Sie [your_pod_name] durch den eindeutigen Namen Ihres Pods:
export my_nginx_pod=[your_pod_name]

Beispiel:

export my_nginx_pod=nginx-1-74c7bbdb84-nvwsc
  1. Prüfen Sie, ob die Umgebungsvariable erfolgreich festgelegt wurden. Dafür lassen Sie sich von der Cloud Shell den Wert zurückgegeben:
echo $my_nginx_pod

Ausgabe:

nginx-1-74c7bbdb84-nvwsc
  1. Führen Sie in der Cloud Shell den folgenden Befehl aus, um sich alle Details des Pods anzeigen zu lassen, den Sie gerade erstellt haben:
kubectl describe pod $my_nginx_pod

Die Ausgabe sollte wie unten gezeigt aussehen. Die Details des Pods sowie sein Status, seine Zustände und die Ereignisse während seines Lebenszyklus werden angezeigt.

Ausgabe:

Image: nginx Image: nginx Image: nginx Image ID: docker.io/library/nginx@sha256:480868e8c8c797794257e2abd88d0f9a8809b2fe956cbfbc05dcc0bca1f7cd43 Port: Host Port: State: Running Started: Wed, 17 May 2023 10:47:04 +0000 Ready: True Restart Count: 0 Limits: cpu: 500m ephemeral-storage: 1Gi memory: 2Gi Requests: cpu: 500m ephemeral-storage: 1Gi memory: 2Gi Environment: Mounts: /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-ksxxr (ro) Conditions: Type Status Initialized True Ready True ContainersReady True PodScheduled True Volumes: kube-api-access-ksxxr: Type: Projected (a volume that contains injected data from multiple sources) TokenExpirationSeconds: 3607 ConfigMapName: kube-root-ca.crt ConfigMapOptional: DownwardAPI: true QoS Class: Guaranteed Node-Selectors: Tolerations: kubernetes.io/arch=amd64:NoSchedule node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedScheduling 5m42s gke.io/optimize-utilization-scheduler 0/2 nodes are available: 2 Insufficient cpu, 2 Insufficient memory. preemption: 0/2 nodes are available: 2 No preemption victims found for incoming pod. Normal Scheduled 4m15s gke.io/optimize-utilization-scheduler Successfully assigned default/nginx-1-6b7bff9fc7-t7fzk to gk3-autopilot-cluster-1-pool-1-242a3a6a-j9rh Normal TriggeredScaleUp 5m34s cluster-autoscaler pod triggered scale-up: [{https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-02-92c260add90a/zones/{{{project_0.default_zone|Zone}}}/instanceGroups/gk3-autopilot-cluster-1-pool-1-242a3a6a-grp 0->1 (max: 1000)}] Normal Pulling 3m30s kubelet Pulling image "nginx" Normal Pulled 3m16s kubelet Successfully pulled image "nginx" in 13.843394735s (13.843643782s including waiting) Normal Created 3m16s kubelet Created container nginx Normal Started 3m15s kubelet Started container nginx

Datei in einen Container verschieben

Sie müssen eine Datei erstellen und in einen Container einfügen, um statischen Inhalt mithilfe des nginx-Webservers bereitzustellen.

  1. Geben Sie in der Cloud Shell den folgenden Befehl ein, um eine Datei namens test.html im nano-Texteditor zu öffnen:
nano ~/test.html
  1. Fügen Sie den folgenden Text (Shell-Script) in die leere Datei test.html ein:
Das ist der Titel
Hallo Welt!
  1. Drücken Sie „Strg + X“, dann „Y“ und dann die Eingabetaste, um die Datei zu speichern und den nano-Editor zu beenden.

  2. Führen Sie in der Cloud Shell den folgenden Befehl aus, um die Datei innerhalb des nginx-Containers im nginx-Pod an der richtigen Stelle für eine statische Bereitstellung zu platzieren:

kubectl cp ~/test.html $my_nginx_pod:/usr/share/nginx/html/test.html

Dieser Befehl kopiert die Datei test.html vom lokalen Basisverzeichnis in das Verzeichnis /usr/share/nginx/html des ersten Containers im nginx-Pod. In einem Pod mit mehreren Containern können Sie auch einen anderen Container hierfür angeben. Nutzen Sie dazu die Option -c gefolgt vom Namen des gewünschten Containers.

Pod zum Testen freigeben

Ein Dienst ist erforderlich, um einen Pod für Clients außerhalb des Clusters freizugeben. Dienste werden an anderer Stelle in diesem Kurs besprochen und finden in anderen Labs vielfältige Verwendung. Sie können einen einfachen Befehl nutzen, um einen Dienst zu erstellen, der einen Pod freigibt.

  1. Führen Sie in der Cloud Shell den folgenden Befehl aus, um einen Dienst zu erstellen, der den nginx-Pod extern freigibt:
kubectl expose pod $my_nginx_pod --port 80 --type LoadBalancer

Dieser Befehl erzeugt einen Load-Balancer-Dienst, der es ermöglicht, mit Internetadressen, die außerhalb des Clusters liegen, auf den nginx-Pod zuzugreifen.

  1. Führen Sie in der Cloud Shell den folgenden Befehl aus, um sich Details zu den Diensten im Cluster anzeigen zu lassen:
kubectl get services

Die Ausgabe sollte wie unten gezeigt aussehen. Sie verwenden die externe IP-Adresse im nächsten Schritt.

Hinweis: Möglicherweise müssen Sie den Befehl mehrmals ausführen, bis der neue Dienst seine externe IP-Adresse erhält.

Ausgabe:

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.11.240.1 443/TCP 1h nginx-1-7...wsc LoadBalancer 10.11.240.87 80:31695/TCP 3s

Der Kubernetes-Dienst ist einer der Standarddienste, der vom Cluster erstellt oder genutzt wird. Auch der nginx-Dienst, den Sie erstellt haben, wird angezeigt.

Möglicherweise müssen Sie den Befehl mehrmals ausführen, bis die externe IP-Adresse angezeigt wird.

Ausgabe:

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.11.240.1 443/TCP 1h nginx-1-7...wsc LoadBalancer 10.11.240.87 104.154.177.46 80:31695/TCP 1m

Klicken Sie auf Fortschritt prüfen. Pods für GKE-Cluster bereitstellen

  1. Führen Sie in Cloud Shell den folgenden Befehl aus, um zu prüfen, ob der nginx-Container die statische HTML-Datei bereitstellt, die Sie kopiert haben.

Ersetzen Sie [EXTERNAL_IP] durch die externe IP-Adresse des Dienstes, die Sie im vorherigen Schritt als Ausgabe erhalten haben.

curl http://[EXTERNAL_IP]/test.html

Der Inhalt der Datei wird ausgegeben. Sie können dieselbe Adresse in Ihrem Browser aufrufen, um die Datei als gerenderte HTML-Datei zu sehen.

Beispiel:

Das ist der Titel
Hallo Welt!
  1. Führen Sie in der Cloud Shell den folgenden Befehl aus, um sich die Ressourcen anzeigen zu lassen, die der nginx-Pod nutzt:
kubectl top pods

Ausgabe:

NAME CPU(cores) MEMORY(bytes) nginx-1-74c7bbdb84-nvwsc 0m 2Mi

Aufgabe 5: GKE-Pods prüfen

Im Rahmen dieser Aufgabe stellen Sie eine Verbindung zu einem Pod her, passen Einstellungen an, bearbeiten Dateien und nehmen Änderungen im laufenden Betrieb vor.

Hinweis: Nutzen Sie diesen Prozess nur zur Fehlerbehebung oder für Tests. Da Sie die Änderungen nicht am Quell-Image des Pods vornehmen, sind sie in Replikaten nicht vorhanden.

Umgebung vorbereiten

In der Regel ist es am besten, Pods und andere Ressourcen in Kubernetes mithilfe von Konfigurationsdateien – manchmal auch Manifest genannt – bereitzustellen. Konfigurationsdateien werden normalerweise in der YAML-Syntax geschrieben und geben die Details der Ressource an. Mit Konfigurationsdateien können Sie komplexe Optionen viel einfacher festlegen als mit einer langen Reihe von Befehlszeilenargumenten.

Die YAML-Syntax ähnelt der JSON-Syntax, ist aber übersichtlicher. Sie erlaubt die gleiche Art hierarchischer Strukturierung von Objekten und Attributen. Das Quell-Repository des Labs enthält zur Illustration Beispiele von YAML-Dateien.

  1. Geben Sie in der Cloud Shell den folgenden Befehl ein, um das Repository für das Lab in der Cloud Shell zu klonen:
git clone https://github.com/GoogleCloudPlatform/training-data-analyst
  1. Erstellen Sie einen Softlink als Verknüpfung zum Arbeitsverzeichnis:
ln -s ~/training-data-analyst/courses/ak8s/v1.1 ~/ak8s
  1. Wechseln Sie zum Verzeichnis, in dem sich die Beispieldateien für dieses Lab befinden:
cd ~/ak8s/GKE_Shell/

Wir haben für Sie als Beispiel eine YAML-Manifestdatei mit dem Namen new-nginx-pod.yaml bereitgestellt:

apiVersion: v1 kind: Pod metadata: name: new-nginx labels: name: new-nginx spec: containers: - name: new-nginx image: nginx ports: - containerPort: 80
  1. Führen Sie den folgenden Befehl aus, um die Manifestdatei bereitzustellen:
kubectl apply -f ./new-nginx-pod.yaml Hinweis: Es kann einige Minuten dauern, bis die Pod-Bereitstellung abgeschlossen ist und sich der Status in „Wird ausgeführt“ ändert.

Klicken Sie auf Fortschritt prüfen. Neuen Pod mit einer YAML-Datei bereitstellen

  1. Führen Sie den folgenden Befehl aus, um sich eine Liste aller Pods anzeigen zu lassen:
kubectl get pods

Die Ausgabe sollte wie im Beispiel aussehen.

Ausgabe:

NAME READY STATUS RESTARTS AGE new-nginx 1/1 Running 0 9s nginx-1-74c7bbdb84-nvwsc 1/1 Running 0 55m

Sie sehen Ihren neuen nginx-Pod und außerdem den Pod, den wir zu Beginn des Labs erstellt haben.

Shell-Weiterleitung nutzen, um eine Verbindung zu einem Pod herzustellen

Einige Container-Images enthalten eine Shell-Umgebung, die Sie starten können. Es kann praktischer sein, mit der Shell-Umgebung zu arbeiten, anstatt mit kubectl einzelne Befehle auszuführen. Das nginx-Image enthält beispielsweise eine Bash-Shell. In dieser Aufgabe verwenden Sie die Shell-Weiterleitung, um eine Verbindung zur Bash-Shell in Ihrem nginx-Pod herzustellen und eine Reihe von Aktionen auszuführen.

  1. Führen Sie in der Cloud Shell den folgenden Befehl aus, um im nginx-Container eine interaktive Bash-Shell zu starten:
kubectl exec -it new-nginx -- /bin/bash

Eine neue Shell-Eingabeaufforderung wird angezeigt.

Ausgabe:

root@new-nginx:/#

Sie haben eine interaktive Bash-Shell im Container des Pods „new-nginx“ gestartet. Wenn der Pod mehrere Container hat, wählen Sie den gewünschten mithilfe seines Namens und der Option -c aus.

Da das nginx-Container-Image standardmäßig nicht über einen Texteditor verfügt, müssen Sie einen installieren.

  1. Führen Sie in der Cloud Shell in der nginx-Bash-Shell folgende Befehle aus, um den nano-Texteditor zu installieren:
apt-get update apt-get install nano

Wenn die Nachricht Do you want to continue (y/n) (Möchten Sie fortfahren (Ja/Nein)) angezeigt wird, geben Sie zur Bestätigung „Y“ für Ja ein.

Sie müssen im statisch bereitgestellten Verzeichnis des nginx-Containers eine Datei namens test.html erstellen.

  1. Führen Sie in der Cloud Shell in der nginx-Bash-Shell folgende Befehle aus, um zum Verzeichnis statischer Dateien zu wechseln und die Datei test.html zu erstellen:
cd /usr/share/nginx/html nano test.html
  1. Geben Sie in der Cloud Shell in der nginx-Bash-Shell in der nano-Sitzung folgenden Text ein:
Das ist der Titel
Hallo Welt!
  1. Drücken Sie „Strg + X“, dann „Y“ und dann die Eingabetaste, um die Datei zu speichern und den nano-Editor zu beenden.
  2. Führen Sie in der Cloud Shell in der nginx-Bash-Shell den folgenden Befehl aus, um die nginx-Bash-Shell zu beenden:
exit

Sie könnten einen Dienst erstellen, um eine Verbindung zum geänderten nginx-Container (mit der neuen statischen HTML-Datei) herzustellen und ihn zu testen. Einfacher ist es aber, eine Portweiterleitung zu nutzen, um eine Verbindung zum Pod direkt aus Cloud Shell herzustellen.

  1. Führen Sie in der Cloud Shell den folgenden Befehl aus, um eine Portweiterleitung von der Cloud Shell zum nginx-Pod einzurichten (vom Port 10081 der Cloud Shell-VM zum Port 80 des nginx-Containers):
kubectl port-forward new-nginx 10081:80

Die Ausgabe sollte wie im Beispiel aussehen.

Ausgabe:

Forwarding from 127.0.0.1:10081 -> 80 Forwarding from [::1]:10081 -> 80

Es handelt sich hierbei um einen Vordergrundprozess. Zum Testen müssen Sie daher eine weitere Cloud Shell-Instanz öffnen.

  1. Klicken Sie in der Menüleiste der Cloud Shell auf das Pluszeichen (+), um eine weitere Cloud Shell-Sitzung zu starten.

Symbol + in der Cloud Shell-Menüleiste hervorgehoben

In Ihrem Cloud Shell-Fenster wird nun eine zweite Cloud Shell-Sitzung angezeigt. Um zwischen den Sitzungen zu wechseln, klicken Sie auf ihre Namen in der Menüleiste.

  1. Führen Sie in der zweiten Cloud Shell-Sitzung den folgenden Befehl aus, um den geänderten nginx-Container mithilfe der Portweiterleitung zu testen:
curl http://127.0.0.1:10081/test.html

Der HTML-Text, den Sie in die Datei test.html eingegeben haben, wird angezeigt.

Das ist der Titel
Hallo Welt!

Logs eines Pods ansehen

  1. Klicken Sie in der Menüleiste der Cloud Shell auf das Pluszeichen (+), um eine weitere neue Cloud Shell-Sitzung zu starten.

In Ihrem Cloud Shell-Fenster erscheint nun eine dritte Cloud Shell-Sitzung. Wie zuvor können Sie durch Klicken auf die Namen in der Menüleiste zwischen den Sitzungen wechseln.

  1. Führen Sie im dritten Cloud Shell-Fenster den folgenden Befehl aus, um sich für den Pod „new-nginx“ die vorhandenen und neu eingehenden Logs (inklusive Zeitstempeln) direkt anzeigen zu lassen:
kubectl logs new-nginx -f --timestamps
  1. Die Logs werden Ihnen in diesem neuen Fenster angezeigt.
  2. Kehren Sie zum zweiten Cloud Shell-Fenster zurück und führen Sie den curl-Befehl noch einmal aus, um Traffic auf dem Pod zu erzeugen.
  3. Sehen Sie sich nun die zusätzlichen Logeinträge im dritten Cloud Shell-Fenster an.

Drittes Cloud Shell-Fenster mit zusätzlichen Logeinträgen

  1. Schließen Sie das dritte Cloud Shell-Fenster, um das Anzeigen der Logeinträge zu beenden.
  2. Schließen Sie das ursprüngliche Cloud Shell-Fenster, um die Portweiterleitung zu beenden.

Lab beenden

Wenn Sie das Lab abgeschlossen haben, klicken Sie auf Lab beenden. Google Skills entfernt daraufhin die von Ihnen genutzten Ressourcen und bereinigt das Konto.

Anschließend erhalten Sie die Möglichkeit, das Lab zu bewerten. Wählen Sie die entsprechende Anzahl von Sternen aus, schreiben Sie einen Kommentar und klicken Sie anschließend auf Senden.

Die Anzahl der Sterne hat folgende Bedeutung:

  • 1 Stern = Sehr unzufrieden
  • 2 Sterne = Unzufrieden
  • 3 Sterne = Neutral
  • 4 Sterne = Zufrieden
  • 5 Sterne = Sehr zufrieden

Wenn Sie kein Feedback geben möchten, können Sie das Dialogfeld einfach schließen.

Verwenden Sie für Feedback, Vorschläge oder Korrekturen den Tab Support.

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

Vorbereitung

  1. Labs erstellen ein Google Cloud-Projekt und Ressourcen für einen bestimmten Zeitraum
  2. Labs haben ein Zeitlimit und keine Pausenfunktion. Wenn Sie das Lab beenden, müssen Sie von vorne beginnen.
  3. Klicken Sie links oben auf dem Bildschirm auf Lab starten, um zu beginnen

Privates Surfen verwenden

  1. Kopieren Sie den bereitgestellten Nutzernamen und das Passwort für das Lab
  2. Klicken Sie im privaten Modus auf Konsole öffnen

In der Konsole anmelden

  1. Melden Sie sich mit Ihren Lab-Anmeldedaten an. Wenn Sie andere Anmeldedaten verwenden, kann dies zu Fehlern führen oder es fallen Kosten an.
  2. Akzeptieren Sie die Nutzungsbedingungen und überspringen Sie die Seite zur Wiederherstellung der Ressourcen
  3. Klicken Sie erst auf Lab beenden, wenn Sie das Lab abgeschlossen haben oder es neu starten möchten. Andernfalls werden Ihre bisherige Arbeit und das Projekt gelöscht.

Diese Inhalte sind derzeit nicht verfügbar

Bei Verfügbarkeit des Labs benachrichtigen wir Sie per E-Mail

Sehr gut!

Bei Verfügbarkeit kontaktieren wir Sie per E-Mail

Es ist immer nur ein Lab möglich

Bestätigen Sie, dass Sie alle vorhandenen Labs beenden und dieses Lab starten möchten

Privates Surfen für das Lab verwenden

Am besten führen Sie dieses Lab in einem Inkognito- oder privaten Browserfenster aus. So vermeiden Sie Konflikte zwischen Ihrem privaten Konto und dem Teilnehmerkonto, die zusätzliche Kosten für Ihr privates Konto verursachen könnten.