VPC und Cluster mit Terraform erstellen

Überblick

Terraform ist ein Open-Source-Tool, mit dem Sie Cloud-Umgebungen wie AWS konfigurieren und Software wie Kubernetes darauf installieren können. Sie können Ihre AWS-Umgebung konfigurieren und Ihre Cluster darin entweder mit Terraform oder mit der Installationsanleitung für GKE on AWS erstellen.

Auf dieser Seite wird beschrieben, wie Sie mit Terraform Ihre AWS-Umgebung konfigurieren und einen Cluster mithilfe einer auf GitHub gespeicherten Beispielkonfiguration installieren. Damit Sie diese Skripts verwenden können, müssen Sie sich mit Terraform vertraut machen. Insbesondere müssen Sie die Terraform-Konfigurationsdateien bearbeiten, um Ihre eigenen Nutzer- und Projektinformationen hinzuzufügen und um alle erforderlichen Änderungen an der Standard-Clusterkonfiguration vorzunehmen.

Informationen zum Konfigurieren Ihrer AWS-Umgebung und zum Erstellen von Clustern ohne Terraform finden Sie unter Übersicht über die AWS-Voraussetzungen und in der Anleitung zum Cluster erstellen.

Funktionsweisen der Skripts

Mit diesem Script wird Terraform so konfiguriert, dass eine AWS-VPC erstellt und ein Cluster darauf bereitgestellt wird. Die resultierende VPC erfüllt alle Voraussetzungen für GKE on AWS und hat dieselbe Netzwerktopologie wie die VPC, die in der manuellen Anleitung zum Erstellen von VPC-Netzwerken von Google erstellt wurde.

Der vom Skriptsatz erstellte Cluster hat folgende Merkmale:

  • Drei Steuerungsebenenknoten (einer in jeder der drei konfigurierten Verfügbarkeitszonen) Diese Knoten haben den Typ t3.large.
  • Einen Knotenpool mit zwei Knoten vom Typ t3.large. Dieser Knotenpool wird in der AWS-Region us-east-1 bereitgestellt und kann automatisch auf fünf Knoten skaliert werden.

Standard-VPC und -Cluster ändern

Sie können die Eigenschaften der von den Terraform-Skripts erstellten VPC und des Clusters ändern. Bearbeiten Sie dazu die entsprechenden Terraform-Dateien.

  • Passen Sie die Region und die Verfügbarkeitszonen an. Bearbeiten Sie dazu die Datei variables.tf.
  • Ändern Sie den AWS-Instanztyp.
  • Ändern Sie die Merkmale der VPC, einschließlich der Subnetze, Verfügbarkeitszonen und des Load-Balancers. Bearbeiten Sie dazu die Dateien im Unterordner modules/vpc.

Führen Sie den folgenden Befehl aus, um eine Liste der AWS-Regionen, die von einer bestimmten Google Cloud-Region gesteuert werden, und der zugehörigen Kubernetes-Versionen abzurufen:

gcloud container aws get-server-config --location `GOOGLE_CLOUD_REGION`

Ersetzen Sie GOOGLE_CLOUD_REGION durch den Namen der Google Cloud-Region, von der aus GKE on AWS Ihren Cluster steuern soll.

Vorbereitung

  1. Installieren Sie die Google Cloud CLI mit der Installationsanleitung für die Google Cloud CLI. Wenn Sie es bereits installiert haben, folgen Sie dieser Anleitung, um Version 412.0.0 oder höher zu verwenden.

  2. Installieren Sie die AWS-Befehlszeile mit der Installationsanleitung für die AWS-Befehlszeile.

  3. Erstellen Sie Ihre AWS-Zugriffsschlüssel.

  4. Konfigurieren Sie Ihre lokale AWS-Umgebung mit dem folgenden Befehl:

    aws configure
    

Terraform vorbereiten

  1. Konfigurieren Sie die Authentifizierung der Google Cloud CLI mit den folgenden Befehlen:

    gcloud config set project GOOGLE_PROJECT_ID
    gcloud auth application-default login --no-launch-browser
    
  2. Aktivieren Sie die erforderlichen Dienste in Ihrem Google Cloud-Projekt:

    gcloud --project="GOOGLE_PROJECT_ID" services enable \
      gkemulticloud.googleapis.com \
      gkeconnect.googleapis.com \
      connectgateway.googleapis.com \
      cloudresourcemanager.googleapis.com \
      anthos.googleapis.com \
      logging.googleapis.com \
      monitoring.googleapis.com \
      opsconfigmonitoring.googleapis.com
    

    Ersetzen Sie GOOGLE_PROJECT_ID durch die Google-Projekt-ID.

  3. Erstellen Sie eine lokale Kopie des Repositorys und wechseln Sie zum Ordner AWS:

    git clone https://github.com/GoogleCloudPlatform/anthos-samples.git
    cd anthos-samples/anthos-multi-cloud/AWS
    

GKE on AWS bereitstellen

  1. Bearbeiten Sie die folgenden Zeilen in der Datei terraform.tfvars, um die Standardwerte zu ersetzen:

    gcp_project_id = GOOGLE_PROJECT_ID
    admin_users = ["GCP_ACCOUNT_EMAIL"]
    

    Ersetzen Sie Folgendes:

    • GOOGLE_PROJECT_ID: Ihre Google-Projekt-ID. Diese finden Sie auf der linken Seite der Dashboard-Seite der Google Cloud Console.

    • ACCOUNT_EMAILS: eine durch Kommas getrennte Liste von E-Mail-Adressen, die sich nach dem Erstellen bei den Clustern anmelden können, z. B. "admin@example.com","operator@example.com" Mindestens eine Adresse muss ein Google Cloud-Konto haben. Informationen zum Hinzufügen weiterer Identitätsanbieter zu Ihrem Cluster finden Sie unter Identität mit dem GKE Identity Service verwalten.

  2. Initialisieren und erstellen Sie den Terraform-Plan:

    terraform init
    

    Terraform installiert alle erforderlichen Bibliotheken, z. B. den Google Cloud-Anbieter.

  3. Wenden Sie den Terraform-Plan an, um die AWS Virtual Private Cloud und den Cluster zu erstellen:

    terraform apply
    

    Folgen Sie der Anleitung zum Erstellen eines Clusters.

Die Installation dauert etwa 12 Minuten. Wenn Terraform die AWS Virtual Private Cloud und den Cluster erstellt hat, werden Informationen im Cluster ausgegeben und eine Datei mit dem Namen var.sh erstellt. Sie können die Werte in dieser Datei verwenden, wenn Sie zusätzliche Knotenpools erstellen.

Um zu prüfen, ob der Cluster erfolgreich erstellt wurde, achten Sie darauf, dass er auf der Kubernetes Engine-Seite der Google Cloud Console in Ihrem Google Cloud-Projekt angezeigt wird.

Mit dem Cluster verbinden

Führen Sie den folgenden Befehl aus, um die Konnektivität zu Ihrem Cluster zu überprüfen und Details abzurufen:

   gcloud container fleet memberships get-credentials CLUSTER_NAME
   kubectl get nodes

Ersetzen Sie CLUSTER_NAME durch den Namen Ihres Clusters. Sie finden den Clusternamen in der Terraform-Ausgabedatei var.sh.

Die Ausgabe enthält eine Liste der Knoten in Ihrem Cluster und deren Status.

Cluster und AWS Virtual Private Cloud löschen

Bevor Sie den Cluster und AWS Virtual Private Cloud löschen, müssen Sie Folgendes entfernen:

  • Alle aktiven AWS-Load-Balancer in der AWS Virtual Private Cloud
  • Alle zusätzlichen Knotenpools in Ihrem Cluster, die nicht mit Terraform erstellt wurden
  • Alle zusätzlichen Cluster in der Virtual Private Cloud von AWS, die nicht mit Terraform erstellt wurden

Führen Sie den folgenden Befehl aus, um den Cluster und die AWS Virtual Private Cloud zu entfernen, die Sie mit Terraform erstellt haben:

terraform destroy

Terraform entleert Arbeitslasten von Ihren Knoten, löscht Ihren primären Knotenpool und Ihren Cluster sowie Ihre AWS Virtual Private Cloud.

Cloud Logging und Cloud Monitoring autorisieren

Wenn Sie Cloud Logging und Cloud Monitoring aktivieren möchten, müssen Sie dem Google Cloud-Projekt nach dem Erstellen eines Clusters eine Zulassungsrichtlinie hinzufügen.

Fügen Sie eine Zulassungsrichtlinie mit der Google Cloud-Befehlszeile hinzu:

gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:PROJECT_ID.svc.id.goog[gke-system/gke-telemetry-agent]" \
--role=roles/gkemulticloud.telemetryWriter

Ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.

Nächste Schritte

Weitere Informationen zu Terraform GKE on AWS-Skripts finden Sie unter