Deploy infrastructure with Terraform

Fortschritt prüfen

/ 100

Dieses Lab kann KI-Tools enthalten, die den Lernprozess unterstützen.

GSP233

Google Cloud-Labs zum selbstbestimmten Lernen

Überblick

In Terraform ist ein Provider die logische Abstraktion einer vorgelagerten API. In diesem Lab erfahren Sie, wie Sie einen Kubernetes-Cluster einrichten und einen Nginx-Dienst vom Typ Load-Balancer darin bereitstellen.

Ziele

Aufgaben in diesem Lab:

  • Mit Terraform einen Kubernetes-Cluster und einen Dienst bereitstellen

Vorbereitung

Für dieses Lab erforderlich:

  • Vorkenntnisse zu Kubernetes-Diensten
  • Vorkenntnisse im Umgang mit kubectl-CLI.

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 Google Cloud-Ressourcen für das Lab verfügbar sind.

In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung 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 (empfohlen), 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: Verwenden Sie für dieses Lab nur das Teilnehmerkonto. Wenn Sie ein anderes Google Cloud-Konto verwenden, fallen dafür möglicherweise Kosten an.

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

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.

  2. Klicken Sie sich durch die folgenden Fenster:

    • Fahren Sie mit dem Informationsfenster zu Cloud Shell fort.
    • Autorisieren Sie Cloud Shell, Ihre Anmeldedaten für Google Cloud API-Aufrufe zu verwenden.

Wenn eine Verbindung besteht, sind Sie bereits authentifiziert und das Projekt ist auf 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.

Kubernetes-Dienste

Ein Dienst ist eine Pod-Gruppe, die im Cluster ausgeführt wird. Dienste sind "günstig", sodass Sie viele davon im Cluster haben können. Mit Kubernetes-Diensten können Sie eine Mikrodienstarchitektur effektiv betreiben.

Dienste bieten wichtige Funktionen, die im gesamten Cluster standardisiert sind: Load-Balancing, Service Discovery zwischen Anwendungen sowie Funktionen für die Zero-Downtime-Bereitstellung von Anwendungen.

Jeder Dienst hat eine Pod-Label-Abfrage, mit der die Pods definiert werden, die Daten für den Dienst verarbeiten. Die Label-Abfrage stimmt häufig mit Pods überein, die von einem oder mehreren Replikationscontrollern erstellt wurden. Leistungsstarke Routing-Szenarien erreichen Sie, wenn Sie die Label-Abfrage eines Dienstes über die Kubernetes API mit Bereitstellungssoftware aktualisieren.

Vorteile von Terraform

Sie können Kubernetes-Ressourcen, die in YAML-Dateien definiert wurden, zwar mit kubectl oder ähnlichen CLI-basierten Tools für API-Aufrufe verwalten, die Orchestrierung mit Terraform bietet aber einige Vorteile:

  • Eine Sprache: Sie können dieselbe Konfigurationssprache verwenden, um die Kubernetes-Infrastruktur bereitzustellen und Anwendungen darin zu implementieren.
  • Drifterkennung: terraform plan zeigt Ihnen die Differenz zwischen dem tatsächlichen Zustand der Infrastruktur zu einem bestimmten Zeitpunkt und der von Ihnen angestrebten Konfiguration.
  • Verwaltung des kompletten Lebenszyklus: Terraform erstellt nicht nur Ressourcen, sondern ermöglicht mit einem einzigen Befehl das Erstellen, Aktualisieren und Löschen der verwalteten Ressourcen, ohne dass die API zur Identifizierung dieser Ressourcen geprüft werden muss.
  • Synchrones Feedback: Obwohl asynchrones Verhalten oft vorteilhaft ist, kann es manchmal kontraproduktiv sein, da Nutzerinnen und Nutzer die Vorgangsergebnisse (Fehler oder Details der erstellten Ressource) selbst herausfinden müssen. Wenn Ihnen z. B. die IP/der Hostname des Load Balancers bis zum Abschluss der Bereitstellung nicht vorliegt, können Sie keinen DNS-Eintrag erstellen, der darauf verweist.
  • Beziehungsdiagramm: Terraform erkennt Beziehungen zwischen Ressourcen, was bei der Planung helfen kann. Beispielsweise versucht Terraform nicht, einen Dienst in einem Kubernetes-Cluster zu erstellen, bevor dieser existiert.

Aufgabe 1: Beispielcode klonen

  1. Klonen Sie in Cloud Shell zuerst den Beispielcode mit dem folgenden Befehl:
gcloud storage cp -r gs://spls/gsp233/* .
  1. Rufen Sie das Verzeichnis tf-gke-k8s-service-lb mit dem folgenden Befehl auf:
cd tf-gke-k8s-service-lb

Aufgabe 2: Den Code verstehen

  1. Führen Sie den folgenden Befehl aus, um den Inhalt der Datei main.tf zu prüfen:
cat main.tf

Beispielausgabe:

... variable "region" { type = string description = "Region for the resource." } variable "location" { type = string description = "Location represents region/zone for the resource." } variable "network_name" { default = "tf-gke-k8s" } provider "google" { region = var.region } resource "google_compute_network" "default" { name = var.network_name auto_create_subnetworks = false } resource "google_compute_subnetwork" "default" { name = var.network_name ip_cidr_range = "10.127.0.0/20" network = google_compute_network.default.self_link region = var.region private_ip_google_access = true } ...
  • Für region, zone und network_name sind Variablen definiert. Sie werden verwendet, um den Kubernetes-Cluster zu erzeugen.
  • Mit dem Google Cloud Provider erstellen Sie die Ressourcen in diesem Projekt.
  • Zum Erstellen des entsprechenden Netzwerks und Clusters sind mehrere Ressourcen definiert.
  • Nachdem terraform apply ausgeführt wurde, werden einige Ausgaben angezeigt.
  1. Führen Sie den folgenden Befehl aus, um den Inhalt der Datei k8s.tf zu prüfen:
cat k8s.tf

Beispielausgabe:

provider "kubernetes" { version = "~> 1.10.0" host = google_container_cluster.default.endpoint token = data.google_client_config.current.access_token client_certificate = base64decode( google_container_cluster.default.master_auth[0].client_certificate, ) client_key = base64decode(google_container_cluster.default.master_auth[0].client_key) cluster_ca_certificate = base64decode( google_container_cluster.default.master_auth[0].cluster_ca_certificate, ) } resource "kubernetes_namespace" "staging" { metadata { name = "staging" } } resource "google_compute_address" "default" { name = var.network_name region = var.region } resource "kubernetes_service" "nginx" { metadata { namespace = kubernetes_namespace.staging.metadata[0].name name = "nginx" } spec { selector = { run = "nginx" } session_affinity = "ClientIP" port { protocol = "TCP" port = 80 target_port = 80 } type = "LoadBalancer" load_balancer_ip = google_compute_address.default.address } } resource "kubernetes_replication_controller" "nginx" { metadata { name = "nginx" namespace = kubernetes_namespace.staging.metadata[0].name labels = { run = "nginx" } } spec { selector = { run = "nginx" } template { container { image = "nginx:latest" name = "nginx" resources { limits { cpu = "0.5" memory = "512Mi" } requests { cpu = "250m" memory = "50Mi" } } } } } } output "load-balancer-ip" { value = google_compute_address.default.address }
  • Das Script konfiguriert den Kubernetes-Provider mit Terraform und erstellt den Dienst, den Namespace und die Ressource „replication_controller“.
  • Das Script liefert eine nginx-Dienst-IP als Ausgabe.

Aufgabe 3: Abhängigkeiten initialisieren und installieren

Der Befehl terraform init initialisiert ein Arbeitsverzeichnis, das die Terraform-Konfigurationsdateien enthält.

Außerdem erfolgen damit mehrere Initialisierungsschritte, um das Verzeichnis für die Verwendung vorzubereiten. Der Befehl kann bedenkenlos mehrmals ausgeführt werden, um das Arbeitsverzeichnis bei Konfigurationsänderungen entsprechend zu aktualisieren:

  1. Führen Sie den Befehl terraform init aus:
terraform init

Beispielausgabe:

... * provider.google: version = "~> 3.8.0" * provider.kubernetes: version = "~> 1.10.0" Terraform wurde erfolgreich initialisiert. You may now begin working with Terraform. Try running `terraform plan` to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary.
  1. Führen Sie den Befehl terraform apply aus, um die Änderungen anzuwenden, die erforderlich sind, um den gewünschten Konfigurationsstatus zu erreichen:
terraform apply -var="region={{{ project_0.default_region | "Region to be allocated" }}}" -var="location={{{ project_0.default_zone | "Zone to be allocated" }}}"
  1. Prüfen Sie die Aktionen von Terraform und die Ressourcen, die erstellt werden.

  2. Wenn Sie bereit sind, geben Sie yes ein, um die Terraform-Aktionen zu starten.

Nach Abschluss des Vorgangs sollte eine Ausgabe ähnlich der folgenden angezeigt werden.

Beispielausgabe:

Apply complete! Resources: 7 added, 0 changed, 0 destroyed. Ausgabe: cluster_name = tf-gke-k8s cluster_region = "{{{project_0.default_region|REGION}}}" cluster_zone = "{{{project_0.default_region|ZONE}}}" load-balancer-ip = 35.233.177.223 network = https://www.googleapis.com/compute/beta/projects/qwiklabs-gcp-5438ad3a5e852e4a/global/networks/tf-gke-k8s subnetwork_name = tf-gke-k8s

Die durch Terraform erstellten Ressourcen prüfen

  1. Öffnen Sie in der Konsole das Navigationsmenü und klicken Sie auf Kubernetes Engine.
  2. Klicken Sie auf den Cluster tf-gke-k8s und prüfen Sie die Konfiguration.
  3. Klicken Sie im linken Bereich auf Gateways, Dienste und eingehender Traffic und prüfen Sie den Dienststatus von nginx.
  4. Klicken Sie auf die Endpunkte-IP-Adresse, um die Seite Willkommen bei nginx! in einem neuen Browsertab zu öffnen.

Seite „Willkommen bei nginx!“

Klicken Sie auf Fortschritt prüfen. Wenn Sie erfolgreich Infrastruktur mit Terraform bereitgestellt haben, erhalten Sie ein Testergebnis.

Infrastruktur mit Terraform bereitstellen

Das wars! Sie haben das Lab erfolgreich abgeschlossen.

In diesem Lab haben Sie mit Terraform einen Kubernetes-Cluster und einen Dienst initialisiert, geplant und bereitgestellt.

Weitere Informationen

Zur Terraform-Community

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 10. März 2026 aktualisiert

Lab zuletzt am 10. März 2026 getestet

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

Führen Sie diesen kurzen Schritt aus, um Ihr Lab zu starten.