In diesem Dokument wird beschrieben, wie Sie VMs in Compute Engine mit Terraform einrichten, damit Sie GKE on Bare Metal im Hochverfügbarkeitsmodus installieren und testen können. Informationen zur Verwendung der Google Cloud CLI finden Sie unter GKE on Bare Metal auf Compute Engine-VMs testen.
Sie können GKE on Bare Metal schnell testen, ohne dafür Hardware vorbereiten zu müssen. Mit den bereitgestellten Terraform-Skripts wird ein Netzwerk aus VMs in Compute Engine erstellt, das zum Ausführen von GKE on Bare Metal verwendet werden kann. In dieser Anleitung wird das Modell für das Deployment von Hybridclustern verwendet.
Zum Ausführen eines Beispielclusters führen Sie die folgenden Schritte aus:
- Terraform-Skript ausführen, um ein Netzwerk von VMs in Compute Engine einzurichten
- Hybridcluster bereitstellen
- Cluster überprüfen
Hinweise
Für das Deployment sind die folgenden Ressourcen erforderlich:
- Eine Workstation mit Zugriff auf das Internet sowie die folgenden installierten Tools: Git, Google Cloud CLI und Terraform (>= v0.15.5, < 1.2).
Ein Google Cloud-Projekt.
Ein Dienstkonto im Projekt, das eine der im Folgenden aufgeführten Anforderungen erfüllt, sowie die auf die Workstation heruntergeladener Schlüsseldatei:
- Das Dienstkonto hat die Berechtigung "Inhaber".
- Das Dienstkonto hat sowohl Bearbeiterberechtigungen als auch Projekt-IAM-Administratorberechtigungen.
VM-Netzwerk in Compute Engine einrichten
In diesem Abschnitt verwenden Sie die Terraform-Skripts aus dem anthos-samples-Repository. Die Skripts konfigurieren Compute Engine mit den folgenden Ressourcen:
- Sechs VMs für das Deployment des Hybridclusters:
- Eine Administrator-VM für das Deployment des Hybridclusters auf den anderen Maschinen.
- Drei VMs für die drei Knoten der Steuerungsebene, die zum Ausführen der Steuerungsebene des Hybridclusters erforderlich sind.
- Zwei VMs für die beiden Worker-Knoten, die zum Ausführen von Arbeitslasten im Hybridcluster erforderlich sind.
- Ein
VxLAN
-Overlay-Netzwerk zwischen allen Knoten, um die L2-Konnektivität zu emulieren. - SSH-Zugriff auf die Knoten control-plane und worker über die Administrator-VM.
Sie können die Anzahl der Knoten im Cluster ändern. Dazu fügen Sie der Terraform-Variablen instance_count
neue Knotennamen hinzu:
Laden Sie die Terraform-Skripts für das Beispiel
anthos-bm-gcp-terraform
herunter:git clone https://github.com/GoogleCloudPlatform/anthos-samples cd anthos-samples/anthos-bm-gcp-terraform
Aktualisieren Sie die Datei
terraform.tfvars.sample
so, dass sie die für Ihre Umgebung spezifischen Variablen enthält:project_id = "PROJECT_ID" region = "GOOGLE_CLOUD_REGION" zone = "GOOGLE_CLOUD_ZONE" credentials_file = "PATH_TO_GOOGLE_CLOUD_SERVICE_ACCOUNT_KEY_FILE"
Benennen Sie die Datei
terraform.tfvars.sample
in den Standardnamen um, der von Terraform für die Variablendatei verwendet wird:mv terraform.tfvars.sample terraform.tfvars
Initialisieren Sie das Beispielverzeichnis als Terraform-Arbeitsverzeichnis. Dadurch werden die erforderlichen Konfigurationen der Terraform-Statusverwaltung eingerichtet, ähnlich wie bei
git init
:terraform init
Erstellen Sie einen Terraform-Ausführungsplan. In diesem Schritt werden der Status der Ressourcen verglichen, die Skripts geprüft und ein Ausführungsplan erstellt:
terraform plan
Wenden Sie die im Terraform-Skript beschriebenen Änderungen an. Mit diesem Schritt wird der Plan für den angegebenen Anbieter (in diesem Fall Google Cloud) ausgeführt, um den gewünschten Status der Ressourcen herzustellen:
terraform apply # when prompted to confirm the Terraform plan, type 'Yes' and enter
Hybridcluster bereitstellen
Wenn die Terraform-Ausführung abgeschlossen ist, können Sie den Hybridcluster bereitstellen.
Stellen Sie eine SSH-Verbindung zum Administratorhost her:
gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONE
Sie können alle Meldungen zum Aktualisieren der VM ignorieren und diese Anleitung abschließen. Wenn Sie die VMs als Testumgebung beibehalten möchten, sollten Sie das Betriebssystem aktualisieren oder ein Upgrade auf den nächsten Release durchführen, wie in der Ubuntu-Dokumentation beschrieben.
Führen Sie den folgenden Codeblock aus, um den Hybridcluster
cluster1
auf den konfigurierten Compute Engine-VMs zu erstellen:sudo ./run_initialization_checks.sh && \ sudo bmctl create config -c cluster1 && \ sudo cp ~/cluster1.yaml bmctl-workspace/cluster1 && \ sudo bmctl create cluster -c cluster1
Mit dem Befehl bmctl
wird die Einrichtung eines neuen Hybridclusters gestartet. Dazu gehören Preflight-Prüfungen auf den Knoten, das Erstellen der Administrator- und Nutzercluster und das Registrieren des Clusters bei Google Cloud über Connect.
Die Einrichtung kann bis zu 15 Minuten dauern. Wenn der Cluster erstellt wird, wird die folgende Ausgabe angezeigt:
Created config: bmctl-workspace/cluster1/cluster1.yaml
Creating bootstrap cluster... OK
Installing dependency components... OK
Waiting for preflight check job to finish... OK
- Validation Category: machines and network
- [PASSED] 10.200.0.3
- [PASSED] 10.200.0.4
- [PASSED] 10.200.0.5
- [PASSED] 10.200.0.6
- [PASSED] 10.200.0.7
- [PASSED] gcp
- [PASSED] node-network
Flushing logs... OK
Applying resources for new cluster
Waiting for cluster to become ready OK
Writing kubeconfig file
kubeconfig of created cluster is at bmctl-workspace/cluster1/cluster1-kubeconfig, please run
kubectl --kubeconfig bmctl-workspace/cluster1/cluster1-kubeconfig get nodes
to get cluster node status.
Please restrict access to this file as it contains authentication credentials of your cluster.
Waiting for node pools to become ready OK
Moving admin cluster resources to the created admin cluster
Flushing logs... OK
Deleting bootstrap cluster... OK
Cluster prüfen und damit interagieren
Sie finden die Datei kubeconfig
des Clusters auf der Administratormaschine im Verzeichnis bmctl-workspace
. Führen Sie die folgenden Schritte aus, um Ihr Deployment zu überprüfen.
Wenn Sie die Verbindung zum Administratorhost getrennt haben, stellen Sie eine SSH-Verbindung zum Host her:
# You can copy the command from the output of the Terraform execution above gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONE
Legen Sie die Umgebungsvariable
KUBECONFIG
auf den Pfad zur Konfigurationsdatei des Clusters fest, umkubectl
-Befehle im Cluster auszuführen:export CLUSTER_ID=cluster1 export KUBECONFIG=$HOME/bmctl-workspace/$CLUSTER_ID/$CLUSTER_ID-kubeconfig kubectl get nodes
Es sollten die Knoten des ausgegebenen Clusters angezeigt werden, etwa wie in der folgenden Ausgabe:
NAME STATUS ROLES AGE VERSION cluster1-abm-cp1-001 Ready master 17m v1.18.6-gke.6600 cluster1-abm-cp2-001 Ready master 16m v1.18.6-gke.6600 cluster1-abm-cp3-001 Ready master 16m v1.18.6-gke.6600 cluster1-abm-w1-001 Ready <none> 14m v1.18.6-gke.6600 cluster1-abm-w2-001 Ready <none> 14m v1.18.6-gke.6600
Über die Google Cloud Console beim Cluster anmelden
Damit Sie Ihre Arbeitslasten in der Google Cloud Console beobachten können, müssen Sie sich beim Cluster anmelden.
Eine Anleitung und weitere Informationen zum Anmelden bei Ihrem Cluster finden Sie unter Über die Google Cloud Console bei einem Cluster anmelden.
Bereinigen
Sie haben zwei Möglichkeiten, die Clustereinrichtung zu bereinigen.
Console
Terraform
- Heben Sie die Registrierung des Clusters auf, bevor Sie alle von Terraform erstellten Ressourcen löschen.
# Use SSH to connect to the admin host
gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONE
# Reset the cluster
export CLUSTER_ID=cluster1
export KUBECONFIG=$HOME/bmctl-workspace/$CLUSTER_ID/$CLUSTER_ID-kubeconfig
sudo bmctl reset --cluster $CLUSTER_ID
# log out of the admin host
exit
- Löschen Sie mit Terraform alle Ressourcen.
terraform destroy --auto-approve