HashiCorp Terraform ist ein IaC-Tool (Infrastructure as Code), mit dem Sie eine Cloud-Infrastruktur bereitstellen und verwalten können. Terraform bietet Plug-ins, die als Anbieter bezeichnet werden und mit denen Sie mit Cloud-Anbietern und anderen APIs interagieren können. Sie können den Terraform-Anbieter für Google Cloud verwenden, um Google Cloud-Ressourcen wie GKE bereitzustellen und zu verwalten.
So funktioniert Terraform
Terraform hat eine deklarative, konfigurationsorientierte Syntax, mit der Sie die Infrastruktur beschreiben können, die Sie in Ihrem Google Cloud-Projekt bereitstellen möchten. Nachdem Sie diese Konfiguration in einer oder mehreren Terraform-Konfigurationsdateien erstellt haben, können Sie die Konfiguration mit der Terraform-Befehlszeile auf Ihre GKE-Ressourcen anwenden.
In den folgenden Schritten wird die Funktionsweise von Terraform erläutert:
- Sie beschreiben die Infrastruktur, die Sie bereitstellen möchten, in einer Terraform-Konfigurationsdatei. Sie müssen keinen Code schreiben, der beschreibt, wie die Infrastruktur bereitgestellt wird. Terraform stellt die Infrastruktur für Sie bereit.
- Sie führen den Befehl
terraform plan
aus, der Ihre Konfiguration auswertet und einen Ausführungsplan generiert. Sie können den Plan prüfen und bei Bedarf Änderungen vornehmen. -
Anschließend führen Sie den Befehl
terraform apply
aus, der die folgenden Aktionen ausführt:- Ihre Infrastruktur wird basierend auf Ihrem Ausführungsplan bereitgestellt, indem die entsprechenden GKE APIs im Hintergrund aufgerufen werden.
- Es wird eine Terraform-Zustandsdatei erstellt, eine JSON-Datei, die die Ressourcen in Ihrer Konfigurationsdatei den Ressourcen in der realen Infrastruktur zuordnet. Terraform verwendet diese Datei, um den aktuellen Status Ihrer Infrastruktur zu erfassen und zu bestimmen, wann Ressourcen erstellt, aktualisiert und gelöscht werden müssen.
-
Wenn Sie anschließend
terraform apply
ausführen, verwendet Terraform die Zuordnung in der Zustandsdatei, um die vorhandene Infrastruktur mit dem Code zu vergleichen und bei Bedarf Aktualisierungen vorzunehmen:- Wenn ein Ressourcenobjekt in der Konfigurationsdatei definiert, aber in der Zustandsdatei nicht vorhanden ist, wird es von Terraform erstellt.
- Wenn ein Ressourcenobjekt in der Zustandsdatei vorhanden ist, aber eine andere Konfiguration als die Konfigurationsdatei hat, aktualisiert Terraform die Ressource entsprechend Ihrer Konfigurationsdatei.
- Wenn ein Ressourcenobjekt in der Zustandsdatei mit der Konfigurationsdatei übereinstimmt, lässt Terraform die Ressource unverändert.
Terraform-basierte Anleitungen für GKE
In der folgenden Tabelle sind alle Terraform-basierten Anleitungen und Tutorials für GKE aufgeführt:
Leitfaden | Details |
---|---|
GKE-Cluster erstellen und Arbeitslast mit Terraform bereitstellen | Hier erfahren Sie, wie Sie einen GKE Autopilot-Cluster (Google Kubernetes Engine) erstellen und eine Arbeitslast mit Terraform bereitstellen. |
Cloud Service Mesh auf einem GKE Autopilot-Cluster bereitstellen | Hier erfahren Sie, wie Sie verwaltetes Cloud Service Mesh in einem GKE Autopilot-Cluster einrichten. |
Cluster- und Knotenpoollabels erstellen und verwalten | Hier erfahren Sie, wie Sie einen Cluster mit Labels erstellen. |
GKE-Ressourcen mit Tags verwalten | Hier erfahren Sie, wie Sie Ihre GKE-Cluster mithilfe von Tags verwalten. |
Autopilot-Cluster erstellen | Hier erfahren Sie, wie Sie einen GKE-Cluster in Autopilot erstellen. |
GPUs in GKE-Standardknotenpools ausführen | Hier erfahren Sie, wie Sie verarbeitungsintensive Arbeitslasten wie künstliche Intelligenz (KI) und Grafikverarbeitung ausführen und optimieren, indem Sie NVIDIA®-GPU-Hardwarebeschleuniger an die Knoten Ihrer GKE Standard-Cluster anschließen und verwenden. |
Sekundäre Bootlaufwerke zum Vorabladen von Daten oder Container-Images verwenden | Hier erfahren Sie, wie Sie die Startlatenz von Arbeitslasten mithilfe von sekundären Bootlaufwerken verbessern. |
VPC-nativen Cluster erstellen | Hier erfahren Sie, wie Sie VPC-native Cluster in GKE konfigurieren. |
TPU-Arbeitslasten in GKE Standard bereitstellen | Hier erfahren Sie, wie Sie mithilfe von Cloud TPU-Beschleunigern (TPUs) in GKE Standard-Clustern Arbeitslasten für das Training, die Optimierung und die Inferenz von KI- und ML-Modellen in großem Umfang anfordern und bereitstellen. |
Internen Load Balancer erstellen | Hier erfahren Sie, wie Sie einen internen Passthrough-Network-Load-Balancer oder einen internen Load Balancer in GKE erstellen. |
Knotenpools hinzufügen und verwalten | Hier erfahren Sie, wie Sie in Knotenpools, die Ihre GKE Standard-Cluster ausführen, Vorgänge hinzufügen und ausführen. |
Cluster und Knotenpools mit Arm-Knoten erstellen | Hier erfahren Sie, wie Sie einen GKE Standard-Cluster oder einen Knotenpool mit Arm-Knoten erstellen, damit Sie Arm-Arbeitslasten in GKE ausführen können. |
Reservierte zonale Ressourcen nutzen | Hier erfahren Sie, wie Sie reservierte Compute Engine-Ressourcen in GKE nutzen. |
Hochverfügbare PostgreSQL-Datenbank in GKE bereitstellen | Hier wird beschrieben, wie Sie eine hochverfügbare PostgreSQL-Topologie in GKE bereitstellen. PostgreSQL ist eine objektrelationale Open-Source-Datenbank, die für Zuverlässigkeit und Datenintegrität bekannt ist. |
Knotenimage angeben | Hier erfahren Sie, wie Sie ein Knoten-Image für Knoten in GKE Standard-Clustern angeben. |
Cluster mit Windows Server-Knotenpools erstellen | Hier erfahren Sie, wie Sie GKE-Cluster mit Knotenpools erstellen, auf denen Microsoft Windows Server ausgeführt wird. |
GPUs mit mehreren Instanzen ausführen | Hier erfahren Sie, wie Sie die Auslastung erhöhen und die Kosten senken, indem Sie GPUs mit mehreren Instanzen ausführen. |
Roll-out von Clusterupgrades sequenzieren | Hier erfahren Sie, wie Sie GKE-Cluster-Upgrades mithilfe von Roll-out-Sequenzierung verwalten. |
Zonale Cluster erstellen | Hier erfahren Sie, wie Sie einen zonalen Standardcluster erstellen, für den die Standardfeatures in GKE aktiviert sind. |
Netzwerk für einen einfachen Produktionscluster konfigurieren | Hier wird beschrieben, wie Sie eine Webanwendung in einem GKE-Cluster bereitstellen und mit einem HTTPS-Load-Balancer verfügbar machen. |
Messwerte der Steuerungsebene erfassen und ansehen | Hier erfahren Sie, wie Sie einen GKE-Cluster so konfigurieren, dass Messwerte, die vom Kubernetes API-Server, Scheduler und Controller Manager ausgegeben werden, mit Google Cloud Managed Service for Prometheus an Cloud Monitoring gesendet werden. |
cAdvisor-/Kubelet-Messwerte erfassen und ansehen | Hier erfahren Sie, wie Sie einen GKE-Cluster (Google Kubernetes Engine) so konfigurieren, dass eine Gruppe ausgewählter cAdvisor-/Kubelet-Messwerte mit Google Cloud Managed Service for Prometheus an Cloud Monitoring gesendet wird. |
Logdurchsatz anpassen | Hier wird der Standard-Logdurchsatz beschrieben und es wird gezeigt, wie er erhöht werden kann. |
Backup for GKE für Cluster aktivieren. | Hier erfahren Sie, wie Sie Backup for GKE für einen Cluster aktivieren. |
Ressourcen während der Wiederherstellung ändern | Hier wird beschrieben, wie Sie während der Wiederherstellung mithilfe von Transformationsregeln Änderungen an Kubernetes-Ressourcen vornehmen. |
Moderaten Modus in einem Sicherungsplan aktivieren | Hier erfahren Sie, wie Sie den moderaten Modus in einem Sicherungsplan aktivieren. |
Backup for GKE API aktivieren | Hier erfahren Sie, wie Sie Backup for GKE aktivieren. |
Eine Reihe von Sicherungen planen | Hier erfahren Sie, wie Sie einen Sicherungsplan für Backup for GKE erstellen, mit dem Sie Ihre Arbeitslasten in GKE sichern. |
Terraform-Module und -Blueprints für GKE
Mithilfe von Modulen und Blueprints können Sie die Bereitstellung und Verwaltung von Google Cloud-Ressourcen in großem Maßstab automatisieren. Ein Modul ist ein wiederverwendbarer Satz von Terraform-Konfigurationsdateien, der eine logische Abstraktion von Terraform-Ressourcen erstellt. Ein Blueprint ist ein Paket aus bereitstellbaren und wiederverwendbaren Modulen und einer Richtlinie, mit der eine bestimmte Lösung implementiert und dokumentiert wird.
In der folgenden Tabelle sind alle GKE-spezifischen Module und Blueprints aufgeführt:
Modul oder Blueprint | Details |
---|---|
terraform-google-container-vm | Konfiguriert speziell ausgerichtete GKE-Cluster. |
terraform-google-gke-gitlab | Installiert GitLab in GKE. |
Terraform-Ressourcen für GKE
Ressourcen sind die grundlegenden Elemente der Terraform-Sprache. Jeder Ressourcenblock beschreibt ein oder mehrere Infrastrukturobjekte, z. B. virtuelle Netzwerke oder Compute-Instanzen.
In der folgenden Tabelle sind die Terraform-Ressourcen aufgeführt, die für GKE verfügbar sind:
Nächste Schritte
- Terraform-Codebeispiele für GKE
- Dokumentation zu Terraform in Google Cloud
- Google Cloud-Anbieterdokumentation in HashiCorp
- Infrastruktur als Code für Google Cloud