Version 1.9. Das ist die neueste Version. Diese Version wird unterstützt, wie in der Supportrichtlinie für Anthos-Versionen beschrieben. Darin sind die neuesten Patches und Updates zu Sicherheitslücken, Kontakten und Problemen mit Anthos-Clustern on Bare Metal aufgeführt. Weitere Informationen finden Sie in den Versionshinweisen zu 1.9. Eine vollständige Liste der einzelnen Neben- und Patchversionen in chronologischer Reihenfolge finden Sie in den kombinierten Versionshinweisen.

Verfügbare unterstützte Versionen: 1.9  |   1.8  |   1.7  |  

Anthos-Cluster auf Bare-Metal-Servern auf Compute Engine-VMs mit Terraform testen

In diesem Dokument wird gezeigt, wie Sie VMs mit Terraform auf Compute Engine einrichten, um Anthos-Cluster auf Bare Metal im Hochverfügbarkeitsmodus (High Availability, HA) zu installieren und zu testen. Informationen zur Verwendung des gcloud-Befehlszeilentools für diesen Vorgang finden Sie unter Anthos-Cluster auf Bare Metal auf Compute Engine-VMs testen.

Sie können Anthos-Cluster auf Bare Metal testen, ohne Hardware vorbereiten zu müssen. Mit den bereitgestellten Terraform-Skripts wird in Compute Engine ein Netzwerk von VMs erstellt, mit denen Anthos-Cluster auf Bare Metal ausgeführt werden können. 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:

  1. Terraform-Skript ausführen, um ein Netzwerk von VMs in Compute Engine einzurichten
  2. Hybridcluster bereitstellen
  3. Cluster prüfen

Hinweis

Für das Deployment sind die folgenden Ressourcen erforderlich:

  • Eine Workstation mit Zugriff auf das Internet sowie die folgenden installierten Tools: Git, Cloud SDK und Terraform (~v0.14.10).
  • Ein Google Cloud-Projekt.

    Zur Projektauswahl

  • Ein Dienstkonto im Projekt, das eine der im Folgenden aufgeführten Anforderungen erfüllt, sowie die auf die Workstation heruntergeladener Schlüsseldatei:

    1. Das Dienstkonto hat die Berechtigung "Inhaber".
    2. Das Dienstkonto hat sowohl Bearbeiterberechtigungen als auch Projekt-IAM-Administratorberechtigungen.

    Zur Seite „Dienstkonten“

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.

Bare-Metal-Infrastruktur in Google Cloud mit Compute Engine-VMs

Sie können die Anzahl der Knoten im Cluster ändern. Dazu fügen Sie der Terraform-Variablen instance_count neue Knotennamen hinzu:

###################################################################################
# The recommended instance count for High Availability (HA) is 3 for Control plane
# and 2 for Worker nodes.
###################################################################################
variable "instance_count" {
  description = "Number of instances to provision per layer (Control plane and Worker nodes) of the cluster"
  type        = map(any)
  default = {
    "controlplane" : 3
    "worker" : 2
  }
}

  1. 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
    
  2. 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"
    
  3. 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
    
  4. Initialisieren Sie das Beispielverzeichnis als Terraform-Arbeitsverzeichnis. Dadurch werden die erforderlichen Konfigurationen der Terraform-Statusverwaltung eingerichtet, ähnlich wie bei git init:

    terraform init
    
  5. 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
    
  6. 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.

  1. Stellen Sie eine SSH-Verbindung zum Administratorhost her:

    gcloud compute ssh tfadmin@cluster1-abm-ws0-001 --project=PROJECT_ID --zone=GOOGLE_CLOUD_ZONE
    
  2. 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 ein neuer Hybridcluster eingerichtet. Dazu gehören Preflight-Prüfungen auf den Knoten, das Erstellen der Administrator- und Nutzercluster und die Registrierung des Clusters bei Google Cloud mit 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.

  1. 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
    
  2. Legen Sie die Umgebungsvariable KUBECONFIG auf den Pfad zur Konfigurationsdatei des Clusters fest, um kubectl-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
    

Melden Sie sich über die Cloud Console bei Ihrem Cluster an

Damit Sie Ihre Arbeitslasten in der Cloud Console prüfen können, müssen Sie sich beim Cluster anmelden.

Eine Anleitung und weitere Informationen zum Anmelden bei Ihrem Cluster finden Sie unter Von der Cloud Console aus in 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