Demo-Administratorcluster und -Nutzercluster für Google Distributed Cloud auf Compute Engine-VMs erstellen

Erstellen Sie Democluster auf Compute Engine-VMs, um mehr über Google Distributed Cloud zu erfahren. Das Erstellen eines Administrator- und eines Nutzerclusters mithilfe dieses Leitfadens kann zwischen 40 Minuten und einer Stunde dauern. Die Democluster, die Sie in diesem Leitfaden erstellen, helfen Ihnen, die Bereitstellung und den Betrieb von Google Distributed Cloud-Clustern zu bewerten. Sie sind aber nicht für die Produktion vorgesehen.

In diesem Dokument wird beschrieben, wie Sie ein Script ausführen, das:

  • Fünf Compute Engine-VMs für die Installation von Democlustern bereitstellt
  • Ein VPC-Netzwerk für Clusterkonnektivität einrichtet

Sobald das Script die erforderlichen Ressourcen bereitgestellt hat, können Sie mit einem der folgenden Clients einen Administratorcluster und einen zugehörigen Nutzercluster erstellen, auf dem Arbeitslasten gehostet werden können: bmctl, Google Cloud Console, Google Cloud CLI oder Terraform.

Übersicht der Vorgehensweise

Dieser Leitfaden enthält die folgenden Hauptschritte:

  1. Bereiten Sie Ihre lokale Umgebung vor, sodass das Script die erforderlichen Umgebungsvariablen enthält und Sie die grundlegenden Informationen zum Ausführen von Befehlen zusammengestellt haben.

  2. Erstellen Sie die VMs und das Netzwerk mit dem heruntergeladenen Script.

  3. Erstellen Sie den Administratorcluster mit einem der unterstützten Clients.

  4. Erstellen Sie den Nutzercluster mit einem der unterstützten Clients.

  5. Klicken Sie auf Bereinigen, um die Cluster und VMs zu entfernen, die Sie mit diesem Leitfaden erstellt haben.

1. Lokale Umgebung vorbereiten

Da in dieser Anleitung ein Script verwendet wird, das das Netzwerk für Sie einrichtet, müssen Sie nicht viele Informationen sammeln und nichts planen. In den folgenden Schritten richten Sie Ihre lokale Umgebung ein und sammeln die grundlegenden Informationen, die Sie in den nachfolgenden Abschnitten des Leitfadens benötigen:

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Notieren Sie sich die Projekt-ID, da Sie diese zum Festlegen einer Umgebungsvariablen benötigen, die in den Scripts und Befehlen auf dieser Seite verwendet wird. Wenn Sie ein bestehendes Projekt ausgewählt haben, vergewissern Sie sich, dass Sie entweder Project Owner oder Editor sind.
  7. Sie können das Skript in Cloud Shell oder auf einem lokalen Computer ausführen, auf dem Linux oder macOS ausgeführt wird. Wenn Sie Cloud Shell nicht verwenden:
    1. Sie sollten die neueste Version der Google Cloud CLI installiert haben, das Befehlszeilentool für die Interaktion mit Google Cloud. Aktualisieren Sie bei Bedarf die gcloud CLI-Komponenten:
      gcloud components update

      Je nachdem, wie die gcloud CLI installiert wurde, wird möglicherweise die folgende Meldung angezeigt:

      You cannot perform this action because the Google Cloud CLI component manager is disabled for this installation. You can run the following command to achieve the same result for this installation:

      Folgen Sie der Anleitung, um den Befehl zum Aktualisieren der Komponenten zu kopieren und einzufügen.

    2. Prüfen Sie, ob kubectl installiert ist. Wenn Sie kubectl installieren möchten, führen Sie den folgenden Befehl aus:
      gcloud components install kubectl
  8. Umgebungsvariablen einrichten:
    export PROJECT_ID=PROJECT_ID
    export ADMIN_CLUSTER_NAME=ADMIN_CLUSTER_NAME
    export ON_PREM_API_REGION=ON_PREM_API_REGION
    export ZONE=ZONE
    • ADMIN_CLUSTER_NAME: der Name, den Sie für den Administratorcluster auswählen.
    • ON_PREM_API_REGION: die Google Cloud-Region, in der die GKE On-Prem API ausgeführt wird und Metadaten speichert. Geben Sie us-central1 oder eine andere unterstützte Region an.
    • ZONE: die Google Cloud-Zone, in der die Compute Engine-VMs erstellt werden. Sie können us-central1-a oder eine der anderen Compute Engine-Zonen verwenden.
  9. Führen Sie die folgenden Befehle aus, um das Standardprojekt und die Standardzone festzulegen.
    gcloud config set project $PROJECT_ID
    gcloud config set compute/zone $ZONE

    Wenn Sie den Fehler PERMISSION_DENIED erhalten, prüfen Sie die eingegebene Projekt-ID. Wenn die Projekt-ID korrekt ist, führen Sie gcloud auth login aus, um sich mit dem Konto, das Zugriff auf das Projekt hat, in der gcloud CLI anzumelden.

  10. Rufen Sie eine Liste der unterstützten Versionen ab, die Sie installieren können:
    gcloud container bare-metal admin-clusters query-version-config \
        --location=ON_PREM_API_REGION
  11. Wählen Sie in der Ausgabe des vorherigen Befehls eine Version aus und legen Sie sie in einer Umgebungsvariablen fest:
    export BMCTL_VERSION=BMCTL_VERSION

    Wir empfehlen, die höchste kompatible Version auszuwählen, um die neuesten Funktionen und Fehlerbehebungen von Google Distributed Cloud zu erhalten.

2. VMs und Netzwerk erstellen

In diesem Abschnitt laden Sie das Script install_admin_cluster.sh herunter und führen es aus.

  1. Klonen Sie das Repository anthos-samples und wechseln Sie in das Verzeichnis, in dem sich das Script befindet:

    git clone https://github.com/GoogleCloudPlatform/anthos-samples
    cd anthos-samples/anthos-bm-gcp-bash
    
  2. Führen Sie das Skript aus:

    bash install_admin_cluster.sh
    
  3. Geben Sie 2 ein, um nur die Compute Engine-Infrastruktur einzurichten, und bestätigen Sie Ihre Auswahl, wenn Sie dazu aufgefordert werden.

    Das Script erstellt Compute Engine-VMs, ein VXLAN-Netzwerk und richtet die Administratorworkstation und die Clusterknoten ein. Die Einrichtung der Infrastruktur dauert etwa 5 Minuten.

    Weitere Informationen zum Script finden Sie unter folgendem Link:

    Das Script

    Sie finden das Script im Ordner anthos-bm-gcp-bash im GitHub-Repository anthos-samples. Das Script automatisiert die folgenden manuellen Schritte:

    1. Aktivieren der folgenden Google Cloud APIs:
      anthos.googleapis.com
      anthosaudit.googleapis.com
      anthosgke.googleapis.com
      cloudresourcemanager.googleapis.com
      connectgateway.googleapis.com
      container.googleapis.com
      compute.googleapis.com
      gkeconnect.googleapis.com
      gkehub.googleapis.com
      gkeonprem.googleapis.com
      serviceusage.googleapis.com
      stackdriver.googleapis.com
      monitoring.googleapis.com
      logging.googleapis.com
      kubernetesmetadata.googleapis.com
      iam.googleapis.com
      opsconfigmonitoring.googleapis.com
    2. Anstatt mehrere Dienstkonten für verschiedene APIs und Dienste zu erstellen, erstellt das Script ein einzelnes Dienstkonto namens baremetal-gcr und gewährt ihm die folgenden IAM-Rollen:
      • roles/gkehub.admin
      • roles/gkehub.connect
      • roles/logging.logWriter
      • roles/monitoring.dashboardEditor
      • roles/monitoring.metricWriter
      • roles/monitoring.viewer
      • roles/opsconfigmonitoring.resourceMetadata.writer
      • roles/serviceusage.serviceUsageViewer
      • roles/stackdriver.resourceMetadata.writer
    3. Erstellen der folgenden VMs:
      • Eine VM für die Administratorworkstation.
      • Eine VM für den Knoten der Steuerungsebene des Administratorclusters.
      • Zwei VMs für die Worker-Knoten des Nutzerclusters.
      • Eine VM für den Knoten der Steuerungsebene des Nutzerclusters.
    4. Prüfen, ob SSH auf allen VMs aktiviert ist und ob die Administratorworkstation SSH-Zugriff auf alle anderen VMs hat, die für Clusterknoten erstellt wurden.
    5. Erstellen eines VXLAN-Overlay-Netzwerk (Virtual Extensible LAN) für die Layer 2-Verbindung zwischen den VMs. Das VXLAN ist nicht persistent. Wenn Sie eine VM-Instanz neu starten, wird das Netzwerk gelöscht. Das Netzwerk ist für das Subnetz 10.200.0.0/24 eingerichtet. Die Layer 2-Verbindung ist eine Voraussetzung für den gebündelten Load Balancer.
    6. Installieren der folgenden Tools auf der Administratorworkstation:
      • bmctl
      • kubectl
      • Docker

      Außerdem lädt das Script den Dienstkontoschlüssel für das Dienstkonto baremetal-gcr auf die Administratorworkstation herunter.

    7. Prüfen, ob root@10.200.0.x auf der Administratorworkstation funktioniert. Dafür führt das Script die folgenden Aufgaben aus:
      1. Generieren eines neuen SSH-Schlüssels auf der Administratorworkstation.
      2. Hinzufügen des öffentlichen Schlüssels zu allen anderen VMs im Deployment.

    Das Script gibt jeden ausgeführten Befehl und den Status aus. Wenn alle Schritte abgeschlossen sind, gibt das Script Folgendes aus:

    ✅ Successfully set up SSH access from admin workstation to cluster node VMs.
    
    ✅ GCE Infrastructure setup complete. Please check the logs for any errors!!!
    
    ✅ If you do not see any errors in the output log, then you now have the following setup:
    
    |---------------------------------------------------------------------------------------------------------|
    | VM Name               | L2 Network IP (VxLAN) | INFO                                                    |
    |---------------------------------------------------------------------------------------------------------|
    | abm-admin-cluster-cp  | 10.200.0.3            | 🌟 Ready for use as control plane for the admin cluster |
    | abm-user-cluster-cp   | 10.200.0.4            | 🌟 Ready for use as control plane for the user cluster  |
    | abm-user-cluster-w1   | 10.200.0.5            | 🌟 Ready for use as worker for the user cluster         |
    | abm-user-cluster-w2   | 10.200.0.6            | 🌟 Ready for use as worker for the user cluster         |
    |---------------------------------------------------------------------------------------------------------|
    

3. Administratorcluster erstellen

bmctl

Wenn Sie einen Administratorcluster mit bmctl erstellen möchten, greifen Sie in einem Terminalfenster auf die VM der Administratorworkstation zu und führen dort Befehle aus:

  1. Verwenden Sie SSH, um als Root auf die Administratorworkstation-VM abm-ws zuzugreifen:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  2. Legen Sie Ihre Nutzeranmeldedaten als Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) fest:

    gcloud auth application-default login
    

    Folgen Sie den Anweisungen, um Ihr Google-Konto für ADC auszuwählen.

  3. Generieren Sie eine Clusterkonfigurationsdatei:

    bmctl create config -c ADMIN_CLUSTER_NAME --project-id=PROJECT_ID
    
  4. Prüfen Sie die Konfigurationsdatei für den Administratorcluster:

    Die folgende Clusterkonfigurationsdatei enthält die Werte, die Sie zuvor angegeben haben. Achten Sie neben den von Ihnen eingegebenen Werten auf die folgenden Unterschiede zur generierten Konfigurationsdatei:

    • Kommentare wurden aus diesem Beispiel entfernt, um die Lesbarkeit zu verbessern.
    • Das Script erstellt ein einzelnes Dienstkonto mit allen erforderlichen Berechtigungen und lädt den in der Konfigurationsdatei referenzierten Schlüssel bm-gcr.json herunter.
    gcrKeyPath: /root/bm-gcr.json
    sshPrivateKeyPath: /root/.ssh/id_rsa
    gkeConnectAgentServiceAccountKeyPath: /root/bm-gcr.json
    gkeConnectRegisterServiceAccountKeyPath: /root/bm-gcr.json
    cloudOperationsServiceAccountKeyPath: /root/bm-gcr.json
    ---
    apiVersion: v1
    kind: Namespace
    metadata:
      name: cluster-ADMIN_CLUSTER_NAME
    ---
    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: ADMIN_CLUSTER_NAME
      namespace: cluster-ADMIN_CLUSTER_NAME
    spec:
      type: admin
      profile: default
      anthosBareMetalVersion: BMCTL_VERSION
      gkeConnect:
        projectID: PROJECT_ID
      controlPlane:
        nodePoolSpec:
          nodes:
          - address: 10.200.0.3
      clusterNetwork:
        pods:
          cidrBlocks:
          - 192.168.0.0/16
        services:
          cidrBlocks:
          - 10.96.0.0/20
      loadBalancer:
        mode: bundled
        ports:
          controlPlaneLBPort: 443
        vips:
          controlPlaneVIP: 10.200.0.48
      clusterOperations:
        projectID: PROJECT_ID
        location: us-central1
      storage:
        lvpNodeMounts:
          path: /mnt/localpv-disk
          storageClassName: local-disks
        lvpShare:
          path: /mnt/localpv-share
          storageClassName: local-shared
          numPVUnderSharedPath: 5
      nodeConfig:
        podDensity:
          maxPodsPerNode: 110
    
  5. Ersetzen Sie den Inhalt der generierten Konfigurationsdatei auf Ihrer Administratorworkstation durch die Inhalte aus dem vorherigen Beispiel.

    Öffnen Sie die generierte Datei bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME.yaml und ersetzen Sie ihren Inhalt durch den Inhalt des Beispiels, das Sie im vorhergehenden Schritt geprüft haben.

  6. Erstellen Sie den Administratorcluster:

    bmctl create cluster -c ADMIN_CLUSTER_NAME

    Mit dem Befehl bmctl wird die Ausgabe während der Ausführung von Preflight-Prüfungen auf dem Bildschirm angezeigt und der Cluster erstellt. Ausführliche Informationen werden in Logs im Ordner baremetal/bmctl-workspace/abm-user-cluster-metallb/log auf der Administratorworkstation geschrieben.

    Die Erstellung eines Clusters kann einige Minuten dauern.

  7. Rufen Sie in der Console die Seite GKE-Cluster auf.

    Zur Seite „GKE-Cluster“

    Achten Sie darauf, dass das Projekt ausgewählt ist, in dem Sie den Nutzercluster erstellt haben. Der Administratorcluster sollte aufgeführt sein.

  8. Melden Sie sich im Administratorcluster an:

    1. Klicken Sie auf den Link zum Clusternamen und dann in der Seitenleiste auf Anmelden.

    2. Wählen Sie Mit Google-Identität anmelden aus.

    3. Klicken Sie auf Anmelden.

Administratorcluster prüfen

Die kubeconfig-Datei Ihres Administratorclusters finden Sie auf der Administratorworkstation im Verzeichnis bmctl-workspace des Root-Kontos. Führen Sie die folgenden Schritte aus, um Ihr Deployment zu überprüfen.

  1. Verwenden Sie SSH, um als Root auf die Administratorworkstation zuzugreifen:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  2. Prüfen Sie, ob der Administratorcluster erstellt wurde und ausgeführt wird:

    kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
    

    Die Ausgabe sieht in etwa so aus:

    NAME                   STATUS   ROLES                  AGE   VERSION
    abm-admin-cluster-cp   Ready    control-plane   94m   v1.27.4-gke.1600
    
  3. Wenn Sie fertig sind, geben Sie exit ein, um die Verbindung zur Administratorworkstation zu trennen.

Console

Wenn Sie einen Administratorcluster in der Console erstellen möchten, müssen Sie bmctl register bootstrap auf der Administratorworkstation-VM ausführen, um einen Bootstrap-Cluster zu erstellen. Während der Befehl bmctl register bootstrap ausgeführt wird, führen Sie in der Console Schritte aus, um den Administratorcluster zu erstellen.

Grundlagen der Bootstrap-Umgebung eingeben

  1. Öffnen Sie in der Google Cloud Console die Seite GKE-Cluster.

    Zur Seite „GKE-Cluster“

  2. Klicken Sie auf Erstellen.

  3. Wählen Sie im Dialogfeld Cluster erstellen die Option Lokal aus und klicken Sie für Bare Metal auf Konfigurieren:

  4. Achten Sie darauf, in der Projektliste PROJECT_ID auszuwählen.

  5. Klicken Sie in der linken Navigationsleiste auf Bootstrap-Umgebung installieren.

  6. Geben Sie ADMIN_CLUSTER_NAME als Namen des Administratorclusters ein.

  7. Wählen Sie BMCTL_VERSION als Version für Ihren Administratorcluster aus. Das Script hat diese Version des bmctl-Befehlszeilentools auf die Administratorworkstation heruntergeladen. Die von Ihnen installierte Version von Google Distributed Cloud muss der bmctl-Version entsprechen.

  8. Wählen Sie im Feld Standort der Google Cloud API die Option ON_PREM_API_REGION aus der Liste aus. Mit dieser Einstellung wird die Region angegeben, in der die GKE On-Prem API ausgeführt wird, und die Region, in der Folgendes gespeichert ist:

    • Die Metadaten des Clusters, die die GKE On-Prem API zum Verwalten des Clusterlebenszyklus benötigt
    • Cloud Logging- und Cloud Monitoring-Daten von Systemkomponenten
    • Die von Cloud-Audit-Logs erstellten Administrator-Audit-Logs

    Clustername, Projekt und Standort identifizieren den Cluster in Google Cloud eindeutig.

Folgen Sie zum Erstellen des Bootstrap-Clusters den Schritten im nächsten Abschnitt, anstatt den in der Console angezeigten Schritten. Lassen Sie die Console-Seite geöffnet, da Sie dort mit dem Erstellen des Administratorclusters fortfahren.

Bootstrap-Cluster erstellen

Wenn Sie einen GKE On-Prem API-Client wie die Console zum Erstellen eines Administratorclusters verwenden, müssen Sie auf der Administratorworkstation einen Bootstrap-Cluster erstellen. Der Bootstrap-Cluster hostet die Kubernetes-Controller, die zum Erstellen des Administratorclusters erforderlich sind.

  1. Verwenden Sie SSH, um über die Befehlszeile als Root auf die Administratorworkstation-VM zuzugreifen:

    gcloud compute ssh root@abm-ws --zone ZONE
    

    Sie können alle Nachrichten zum Aktualisieren der VM ignorieren und mit diesem Tutorial fortfahren. Wenn Sie die VMs als Testumgebung behalten möchten, sollten Sie das Betriebssystem aktualisieren oder ein Upgrade auf die nächste Version ausführen, wie in der Ubuntu-Dokumentation beschrieben.

  2. Legen Sie Ihre Nutzeranmeldedaten als Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) fest:

    gcloud auth application-default login
    

    Folgen Sie den Anweisungen, um Ihr Google-Konto für ADC auszuwählen.

  3. Wechseln Sie zum Verzeichnis baremetal/ und führen Sie den folgenden Befehl aus, um den Bootstrap-Cluster zu erstellen.

    Der Name des Bootstrap-Clusters wird durch Voranstellen von bootstrap- vor dem Namen des Administratorclusters abgeleitet.

    bmctl register bootstrap \
      --ssh-key=/root/.ssh/id_rsa \
      --name=bootstrap-ADMIN_CLUSTER_NAME \
      --project-id=PROJECT_ID
    

    Nachdem bmctl den Bootstrap-Cluster erfolgreich erstellt hat, wird eine Ausgabe angezeigt, die in etwa so aussieht:

    [2023-03-22 17:35:24+0000] Waiting for the temporary cluster to be registered... OK
    [2023-03-22 17:35:37+0000] Please go to https://console.cloud.google.com/home/dashboard?project=example-project-12345 to create the cluster
    [2023-03-22 17:35:37+0000] Waiting for preflight checks and cluster to run..
    

Administratorcluster erstellen

  1. Klicken Sie auf der Seite Bootstrap-Umgebung installieren im Bereich Bootstrapping der Umgebung über Administratorworkstation ausführen auf Verbindung prüfen.

    Bei Erfolg wird in der Console Verbindung hergestellt angezeigt.

    Die Verbindung zum Bootstrap-Cluster muss hergestellt werden, bevor Sie fortfahren können. Wenn die Verbindung nicht hergestellt wird, prüfen Sie die Argumente, die Sie für den Befehl bmctl register bootstrap angegeben haben:

    • Der Wert für --name muss mit dem abgeleiteten Bootstrap-Namen im Abschnitt Grundlagen der Bootstrap-Umgebung übereinstimmen.

    • Der Wert für --project-id muss mit der ID des Projekts übereinstimmen, das Sie in der Console ausgewählt haben.

    Wenn Sie den Namen des Bootstrap-Clusters oder die Projekt-ID ändern möchten, geben Sie Ctrl-C ein, um bmctl register bootstrap zu beenden, und führen Sie den Befehl noch einmal aus.

Netzwerk

  1. Klicken Sie in der linken Navigationsleiste auf Netzwerk.

  2. Geben Sie im Abschnitt Steuerungsebene im Feld Knoten-IP-Adresse 1 der Steuerungsebene Folgendes ein:

    10.200.0.3
    

    Dies ist die IP-Adresse der VM „abm-admin-cluster-cp“ im vom Script erstellten VXLAN.

  3. Achten Sie darauf, dass im Abschnitt Load Balancer die Option Gebündelt ausgewählt ist.

  4. Geben Sie im Abschnitt Virtuelle IP-Adressen (VIPs) im Feld VIP der Steuerungsebene Folgendes ein:

    10.200.0.48
    

    Der nächste Schritt hängt von der Verfügbarkeit des Bootstrap-Clusters ab. Der Befehl bmctl register bootstrap muss im Terminalfenster einige Minuten lang ausgeführt werden, bevor der Bootstrap-Cluster als registriertes Mitglied angezeigt wird. Wenn er nach einigen Minuten immer noch nicht verfügbar ist, prüfen Sie den Namen des Bootstrap-Clusters und die verwendete Projekt-ID. Wenn Sie den Namen des Bootstrap-Clusters oder die Projekt-ID ändern möchten, geben Sie in dem anderen Terminalfenster Ctrl-C ein, um bmctl register bootstrap zu beenden und den Befehl noch einmal auszuführen.

  5. Klicken Sie auf Überprüfen und erstellen.

    Die Console zeigt Statusmeldungen an, während die Einstellungen geprüft werden und der Cluster erstellt wird.

    Wenn der Administratorcluster erstellt wird, wird der Bootstrap-Cluster auf der Administratorworkstation gelöscht. Die Ausgabe des Befehls bmctl register bootstrap im anderen Terminalfenster sieht in etwa so aus:

    ...
    [2024-04-15 23:10:48+0000] Waiting for cluster to become ready OK
    [2024-04-15 23:16:38+0000] Please run
    [2024-04-15 23:16:38+0000] kubectl --kubeconfig bmctl-workspace/gce-admin-gcloud-001/gce-admin-gcloud-001-kubeconfig get nodes
    [2024-04-15 23:16:38+0000] to get cluster nodes status.
    [2024-04-15 23:16:38+0000] Waiting for node pools to become ready OK
    [2024-04-15 23:16:58+0000] Waiting for metrics to become ready in GCP OK
    [2024-04-15 23:21:58+0000] Waiting for cluster API provider to install in the created admin cluster OK
    [2024-04-15 23:22:08+0000] Moving admin cluster resources to the created admin cluster
    [2024-04-15 23:22:10+0000] Waiting for node update jobs to finish OK
    [2024-04-15 23:24:30+0000] Flushing logs... OK
    [2024-04-15 23:24:30+0000] Unregistering bootstrap cluster.
    [2024-04-15 23:24:30+0000] Deleting membership... OK
    [2024-04-15 23:24:32+0000] Deleting bootstrap cluster.
    

Administratorcluster prüfen

Die kubeconfig-Datei Ihres Administratorclusters finden Sie auf der Administratorworkstation im Verzeichnis bmctl-workspace des Root-Kontos. Führen Sie die folgenden Schritte aus, um Ihr Deployment zu überprüfen.

  1. Verwenden Sie SSH, um als Root auf die Administratorworkstation zuzugreifen:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  2. Prüfen Sie, ob der Administratorcluster erstellt wurde und ausgeführt wird:

    kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
    

    Die Ausgabe sieht in etwa so aus:

    NAME                   STATUS   ROLES                  AGE   VERSION
    abm-admin-cluster-cp   Ready    control-plane   94m   v1.27.4-gke.1600
    
  3. Wenn Sie fertig sind, geben Sie exit ein, um die Verbindung zur Administratorworkstation zu trennen.

gcloud CLI

Für die folgende Anleitung sind zwei Terminalfenster erforderlich. Führen Sie in einem Terminalfenster bmctl register bootstrap aus, um einen Bootstrap-Cluster zu erstellen. Während der Befehl bmctl register bootstrap ausgeführt wird, führen Sie in einem anderen Terminalfenster gcloud container bare-metal admin-clusters create aus, um den Administratorcluster zu erstellen.

Bootstrap-Cluster erstellen

Wenn Sie einen GKE On-Prem API-Client wie die gcloud CLI verwenden, um einen Administratorcluster zu erstellen, müssen Sie auf der Administratorworkstation einen Bootstrap-Cluster erstellen. Der Bootstrap-Cluster hostet die Kubernetes-Controller, die zum Erstellen des Administratorclusters erforderlich sind.

  1. Verwenden Sie SSH, um über die Befehlszeile als Root auf die Administratorworkstation-VM zuzugreifen:

    gcloud compute ssh root@abm-ws --zone ZONE
    

    Sie können alle Nachrichten zum Aktualisieren der VM ignorieren und mit diesem Tutorial fortfahren. Wenn Sie die VMs als Testumgebung behalten möchten, sollten Sie das Betriebssystem aktualisieren oder ein Upgrade auf die nächste Version ausführen, wie in der Ubuntu-Dokumentation beschrieben.

  2. Legen Sie Ihre Nutzeranmeldedaten als Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) fest:

    gcloud auth application-default login
    

    Folgen Sie den Anweisungen, um Ihr Google-Konto für ADC auszuwählen.

  3. Wechseln Sie zum Verzeichnis baremetal/ und führen Sie den folgenden Befehl aus, um den Bootstrap-Cluster zu erstellen.

    Der Name des Bootstrap-Clusters wird durch Voranstellen von bootstrap- vor dem Namen des Administratorclusters abgeleitet.

    bmctl register bootstrap \
      --ssh-key=/root/.ssh/id_rsa \
      --name=bootstrap-ADMIN_CLUSTER_NAME \
      --project-id=PROJECT_ID
    

    Nachdem bmctl den Bootstrap-Cluster erfolgreich erstellt hat, wird eine Ausgabe angezeigt, die in etwa so aussieht:

    [2023-03-22 17:35:24+0000] Waiting for the temporary cluster to be registered... OK
    [2023-03-22 17:35:37+0000] Please go to https://console.cloud.google.com/home/dashboard?project=example-project-12345 to create the cluster
    [2023-03-22 17:35:37+0000] Waiting for preflight checks and cluster to run..
    

Administratorcluster erstellen

  1. Prüfen Sie in einem neuen Terminalfenster, ob der Bootstrap-Cluster als Mitglied der Flotte registriert wurde:

    gcloud container fleet memberships list \
        --project=PROJECT_ID
    

    Der Befehl gcloud container bare-metal admin-clusters create im folgenden Schritt hängt von der Verfügbarkeit des Bootstrap-Clusters ab. Der Befehl bmctl register bootstrap im anderen Terminalfenster muss einige Minuten lang ausgeführt werden, bevor der Bootstrap-Cluster als registriertes Mitglied angezeigt wird. Wenn er nach einigen Minuten immer noch nicht aufgeführt ist, prüfen Sie den Namen des Bootstrap-Clusters und die verwendete Projekt-ID. Wenn Sie den Namen des Bootstrap-Clusters oder die Projekt-ID ändern möchten, geben Sie in dem anderen Terminalfenster Ctrl-C ein, um bmctl register bootstrap zu beenden und den Befehl noch einmal auszuführen.

  2. Erstellen Sie den Administratorcluster mit dem gebündelten Load Balancer:

    Die angegebenen Werte müssen den Umgebungsvariablen entsprechen, die Sie zuvor für das Script angegeben haben.

    gcloud container bare-metal admin-clusters create ADMIN_CLUSTER_NAME \
        --project=PROJECT_ID \
        --location=ON_PREM_API_REGION \
        --version=BMCTL_VERSION \
        --max-pods-per-node=110 \
        --control-plane-vip=10.200.0.48 \
        --control-plane-load-balancer-port=443 \
        --control-plane-node-configs node-ip=10.200.0.3 \
        --island-mode-service-address-cidr-blocks=10.96.0.0/20 \
        --island-mode-pod-address-cidr-blocks=192.168.0.0/16 \
        --lvp-share-path=/mnt/localpv-share \
        --lvp-share-storage-class=local-shared \
        --lvp-node-mounts-config-path=/mnt/localpv-disk \
        --lvp-node-mounts-config-storage-class=local-disks
    

    Dabei gilt:

    • --control-plane-vip ist auf 10.200.0.48 festgelegt. Dies ist die virtuelle IP-Adresse (VIP) des Load Balancers für den Kubernetes API-Server des Clusters.

    • --control-plane-node-configs: Die node-ip ist auf 10.200.0.3 festgelegt. Dies ist die IP-Adresse der VM abm-admin-cluster-cp im vom Script erstellten VXLAN.

    Eine vollständige Liste der Flags mit ihren Beschreibungen finden Sie in der Referenz zur gcloud CLI

    Die Ausgabe des Befehls sieht in etwa so aus:

    Waiting for operation [projects/example-project-12345/locations/us-west1/operations/operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179] to complete.

    In der Beispielausgabe ist der String operation-1679543737105-5f7893fd5bae9-942b3f97-75e59179 die OPERATION_ID des Vorgangs mit langer Ausführungszeit. Sie können den Status des Vorgangs ermitteln, indem Sie in einem anderen Terminalfenster den folgenden Befehl ausführen:

    gcloud container bare-metal operations describe OPERATION_ID \
        --project=PROJECT_ID \
        --location=ON_PREM_API_REGION
    

    Wenn gcloud container bare-metal admin-clusters create erfolgreich abgeschlossen wurde, sieht die Ausgabe in etwa so aus:

    Created Anthos on bare metal Admin Cluster
    [https://gkeonprem.googleapis.com/v1/projects/anonuser-anonproject/locations/us-central1/bareMetalAdminClusters/gce-admin-gcloud-001].
    NAME           LOCATION     VERSION           MEMBERSHIP     STATE
    abm-cluster-1  us-central1  1.28.300-gke.131  abm-cluster-1  RUNNING
    

    Wenn der Administratorcluster erstellt wird, wird der Bootstrap-Cluster auf der Administratorworkstation gelöscht. Die Ausgabe des Befehls bmctl register bootstrap im anderen Terminalfenster sieht in etwa so aus:

    ...
    [2024-04-15 23:10:48+0000] Waiting for cluster to become ready OK
    [2024-04-15 23:16:38+0000] Please run
    [2024-04-15 23:16:38+0000] kubectl --kubeconfig bmctl-workspace/gce-admin-gcloud-001/gce-admin-gcloud-001-kubeconfig get nodes
    [2024-04-15 23:16:38+0000] to get cluster nodes status.
    [2024-04-15 23:16:38+0000] Waiting for node pools to become ready OK
    [2024-04-15 23:16:58+0000] Waiting for metrics to become ready in GCP OK
    [2024-04-15 23:21:58+0000] Waiting for cluster API provider to install in the created admin cluster OK
    [2024-04-15 23:22:08+0000] Moving admin cluster resources to the created admin cluster
    [2024-04-15 23:22:10+0000] Waiting for node update jobs to finish OK
    [2024-04-15 23:24:30+0000] Flushing logs... OK
    [2024-04-15 23:24:30+0000] Unregistering bootstrap cluster.
    [2024-04-15 23:24:30+0000] Deleting membership... OK
    [2024-04-15 23:24:32+0000] Deleting bootstrap cluster.
    

Administratorcluster prüfen

Die kubeconfig-Datei Ihres Administratorclusters finden Sie auf der Administratorworkstation im Verzeichnis bmctl-workspace des Root-Kontos. Führen Sie die folgenden Schritte aus, um Ihr Deployment zu überprüfen.

  1. Verwenden Sie SSH, um als Root auf die Administratorworkstation zuzugreifen:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  2. Prüfen Sie, ob der Administratorcluster erstellt wurde und ausgeführt wird:

    kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
    

    Die Ausgabe sieht in etwa so aus:

    NAME                   STATUS   ROLES                  AGE   VERSION
    abm-admin-cluster-cp   Ready    control-plane   94m   v1.27.4-gke.1600
    
  3. Wenn Sie fertig sind, geben Sie exit ein, um die Verbindung zur Administratorworkstation zu trennen.

Terraform

Für die folgende Anleitung sind zwei Terminalfenster erforderlich. Führen Sie in einem Terminalfenster bmctl register bootstrap aus, um einen Bootstrap-Cluster zu erstellen. Während der Befehl bmctl register bootstrap ausgeführt wird, führen Sie die Terraform-Befehle in einem anderen Terminalfenster aus, um den Administratorcluster zu erstellen.

Nutzercluster-Beispieldateien so ändern, dass sie für einen Administratorcluster genutzt werden können

Das anthos-samples-Repository enthält kein Beispiel, das speziell zum Erstellen eines Google Distributed Cloud-Administratorclusters gedacht ist. In den folgenden Schritten erfahren Sie, wie Sie einen Administratorcluster erstellen, indem Sie ein vorhandenes Terraform-Beispiel für einen Nutzercluster ändern.

  1. Führen Sie im Verzeichnis, in dem Sie anthos-samples geklont haben, den folgenden Befehl aus, um die Beispieldateien für den MetalLB-Nutzercluster in einen neuen Ordner für Ihren Administratorcluster zu kopieren:

    cp -r anthos-samples/anthos-onprem-terraform/abm_user_cluster_metallb \
        anthos-samples/anthos-onprem-terraform/abm_admin_cluster_basic
    
  2. Wechseln Sie in das Verzeichnis abm_admin_cluster_basic:

    cd anthos-samples/anthos-onprem-terraform/abm_admin_cluster_basic
    
  3. Bearbeiten Sie die Terraform-Dateien:

    • variables.tf:

      • Definieren Sie eine Variable für die IP-Adressen der Knoten der Steuerungsebene (für diese Demo verwenden wir aber nur eine IP-Adresse). Diese Variable sollte dem Eintrag variable "control_plane_ips" { ... } ähneln.

      • Definieren Sie eine Variable für die virtuelle IP-Adresse der Steuerungsebene. Diese Variable sollte dem Eintrag variable "control_plane_vip" { ... } ähneln.

    • terraform.tfvars:

      • Weisen Sie Variablenwerte für die folgenden Administratorcluster-Einstellungen zu:

        • IP-Adressen für Knoten der Steuerungsebene: 10.200.0.3

        • Virtuelle IP-Adresse der Steuerungsebene: 10.200.0.48

    • main.tf:

      • Ersetzen Sie die Ressource google_gkeonprem_bare_metal_cluster durch die Ressource google_gkeonprem_bare_metal_admin_cluster.

      • Löschen Sie die Ressource google_gkeonprem_bare_metal_node_pool und den zugehörigen lifecycle-Abschnitt.

      • Aktualisieren Sie die Ressource, damit die neu definierten Variablen verwendet werden.

    So könnte die Datei main.tf aussehen, wenn sie zum Erstellen eines Administratorclusters bearbeitet wird:

    /**
    * Copyright 2023 Google LLC
    *
    * Licensed under the Apache License, Version 2.0 (the "License");
    * you may not use this file except in compliance with the License.
    * You may obtain a copy of the License at
    *
    *      http://www.apache.org/licenses/LICENSE-2.0
    *
    * Unless required by applicable law or agreed to in writing, software
    * distributed under the License is distributed on an "AS IS" BASIS,
    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    * See the License for the specific language governing permissions and
    * limitations under the License.
    */
    
    #[START anthos_onprem_terraform_bare_metal_admin_cluster_basic_main]
    
    module "enable_google_apis_primary" {
      source     = "terraform-google-modules/project-factory/google//modules/project_services"
      version    = "~> 14.0"
      project_id = var.project_id
      activate_apis = [
        "anthos.googleapis.com",
        "anthosaudit.googleapis.com",
        "anthosgke.googleapis.com",
        "cloudresourcemanager.googleapis.com",
        "compute.googleapis.com",
        "connectgateway.googleapis.com",
        "container.googleapis.com",
        "file.googleapis.com",
        "gkehub.googleapis.com",
        "iam.googleapis.com",
        "kubernetesmetadata.googleapis.com",
        "logging.googleapis.com",
        "monitoring.googleapis.com",
        "opsconfigmonitoring.googleapis.com",
        "serviceusage.googleapis.com",
        "stackdriver.googleapis.com"
      ]
      disable_services_on_destroy = false
    }
    
    # Enable GKE OnPrem API
    resource "google_project_service" "default" {
      project            = var.project_id
      service            = "gkeonprem.googleapis.com"
      disable_on_destroy = false
    }
    
    # Create an anthos baremetal admin cluster and enroll it with the gkeonprem API
    resource "google_gkeonprem_bare_metal_admin_cluster" "admin-cluster-basic" {
      name                     = var.admin_cluster_name
      description              = "Anthos bare metal admin cluster"
      provider                 = google
      depends_on               = [google_project_service.default]
      location                 = var.region
      bare_metal_version       = var.bare_metal_version
      network_config {
        island_mode_cidr {
          service_address_cidr_blocks = ["0.96.0.0/20"]
          pod_address_cidr_blocks     = ["192.168.0.0/16"]
        }
      }
      node_config {
        max_pods_per_node = 250
      }
      control_plane {
        control_plane_node_pool_config {
          node_pool_config {
            operating_system = "LINUX"
            dynamic "node_configs" {
              for_each = var.admin_cp_ips
              content {
                node_ip = node_configs.value
              }
            }
          }
        }
      }
      load_balancer {
        port_config {
          control_plane_load_balancer_port = 443
        }
        vip_config {
          control_plane_vip = var.admin_cp_vip
        }
      }
      storage {
        lvp_share_config {
          lvp_config {
            path = "/mnt/localpv-share"
            storage_class = "local-shared"
          }
          shared_path_pv_count = 5
        }
        lvp_node_mounts_config {
          path = "/mnt/localpv-disk"
          storage_class = "local-disks"
        }
      }
    
      dynamic "security_config" {
        for_each = length(var.admin_user_emails) == 0 ? [] : [1]
        content {
          authorization {
            dynamic "admin_users" {
              for_each = var.admin_user_emails
              content {
                username = admin_users.value
              }
            }
          }
        }
      }
    
      lifecycle {
        ignore_changes = [
          annotations["onprem.cluster.gke.io/user-cluster-resource-link"],
          annotations["alpha.baremetal.cluster.gke.io/cluster-metrics-webhook"],
          annotations["baremetal.cluster.gke.io/operation"],
          annotations["baremetal.cluster.gke.io/operation-id"],
          annotations["baremetal.cluster.gke.io/start-time"],
          annotations["baremetal.cluster.gke.io/upgrade-from-version"]
        ]
      }
    }
    
    #[END anthos_onprem_terraform_bare_metal_admin_cluster_basic_main]
    

    Weitere Informationen zur Terraform-Ressource für Administratorcluster finden Sie in der Terraform-Registry unter google_gkeonprem_bare_metal_admin_cluster.

Bootstrap-Cluster erstellen

Wenn Sie einen GKE On-Prem API-Client wie Terraform zum Erstellen eines Administratorclusters verwenden, müssen Sie auf der Administratorworkstation einen Bootstrap-Cluster erstellen. Der Bootstrap-Cluster hostet die Kubernetes-Controller, die zum Erstellen des Administratorclusters erforderlich sind.

  1. Verwenden Sie SSH, um über die Befehlszeile als Root auf die Administratorworkstation-VM zuzugreifen:

    gcloud compute ssh root@abm-ws --zone ZONE
    

    Sie können alle Nachrichten zum Aktualisieren der VM ignorieren und mit diesem Tutorial fortfahren. Wenn Sie die VMs als Testumgebung behalten möchten, sollten Sie das Betriebssystem aktualisieren oder ein Upgrade auf die nächste Version ausführen, wie in der Ubuntu-Dokumentation beschrieben.

  2. Legen Sie Ihre Nutzeranmeldedaten als Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) fest:

    gcloud auth application-default login
    

    Folgen Sie den Anweisungen, um Ihr Google-Konto für ADC auszuwählen.

  3. Wechseln Sie zum Verzeichnis baremetal/ und führen Sie den folgenden Befehl aus, um den Bootstrap-Cluster zu erstellen.

    Der Name des Bootstrap-Clusters wird durch Voranstellen von bootstrap- vor dem Namen des Administratorclusters abgeleitet.

    bmctl register bootstrap \
      --ssh-key=/root/.ssh/id_rsa \
      --name=bootstrap-ADMIN_CLUSTER_NAME \
      --project-id=PROJECT_ID
    

    Nachdem bmctl den Bootstrap-Cluster erfolgreich erstellt hat, wird eine Ausgabe angezeigt, die in etwa so aussieht:

    [2023-03-22 17:35:24+0000] Waiting for the temporary cluster to be registered... OK
    [2023-03-22 17:35:37+0000] Please go to https://console.cloud.google.com/home/dashboard?project=example-project-12345 to create the cluster
    [2023-03-22 17:35:37+0000] Waiting for preflight checks and cluster to run..
    

Administratorcluster erstellen

  1. Initialisieren und erstellen Sie den Terraform-Plan:

    terraform init
    

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

  2. Prüfen Sie die Konfiguration und nehmen Sie bei Bedarf Änderungen vor:

    terraform plan
    
  3. Wenden Sie den Terraform-Plan an, um den Administratorcluster zu erstellen:

    terraform apply
    

    Das Erstellen des Nutzerclusters dauert mindestens 15 Minuten. Wenn die Clustererstellung abgeschlossen ist, wird eine Meldung angezeigt, die in etwa so aussieht:

    ...
    google_gkeonprem_bare_metal_admin_cluster.admin-cluster-basic: Still creating... [20m10s elapsed]
    google_gkeonprem_bare_metal_admin_cluster.admin-cluster-basic: Creation complete after 20m11s
    [id=projects/anonuser-anonproject/locations/us-central1/bareMetalAdminClusters/gce-admin-terra002]
    
    Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
    

    Wenn der Administratorcluster erstellt wird, wird der Bootstrap-Cluster auf der Administratorworkstation gelöscht. Die Ausgabe des Befehls bmctl register bootstrap im anderen Terminalfenster sieht in etwa so aus:

    ...
    [2024-04-15 23:10:48+0000] Waiting for cluster to become ready OK
    [2024-04-15 23:16:38+0000] Please run
    [2024-04-15 23:16:38+0000] kubectl --kubeconfig bmctl-workspace/gce-admin-gcloud-001/gce-admin-gcloud-001-kubeconfig get nodes
    [2024-04-15 23:16:38+0000] to get cluster nodes status.
    [2024-04-15 23:16:38+0000] Waiting for node pools to become ready OK
    [2024-04-15 23:16:58+0000] Waiting for metrics to become ready in GCP OK
    [2024-04-15 23:21:58+0000] Waiting for cluster API provider to install in the created admin cluster OK
    [2024-04-15 23:22:08+0000] Moving admin cluster resources to the created admin cluster
    [2024-04-15 23:22:10+0000] Waiting for node update jobs to finish OK
    [2024-04-15 23:24:30+0000] Flushing logs... OK
    [2024-04-15 23:24:30+0000] Unregistering bootstrap cluster.
    [2024-04-15 23:24:30+0000] Deleting membership... OK
    [2024-04-15 23:24:32+0000] Deleting bootstrap cluster.
    

  4. Rufen Sie in der Console die Seite GKE-Cluster auf.

    Zur Seite „GKE-Cluster“

    Achten Sie darauf, dass das Projekt ausgewählt ist, in dem Sie den Nutzercluster erstellt haben. Der Administratorcluster sollte aufgeführt sein.

  5. Melden Sie sich im Administratorcluster an:

    1. Klicken Sie auf den Link zum Clusternamen und dann in der Seitenleiste auf Anmelden.

    2. Wählen Sie Mit Google-Identität anmelden aus.

    3. Klicken Sie auf Anmelden.

Administratorcluster prüfen

Die kubeconfig-Datei Ihres Administratorclusters finden Sie auf der Administratorworkstation im Verzeichnis bmctl-workspace des Root-Kontos. Führen Sie die folgenden Schritte aus, um Ihr Deployment zu überprüfen.

  1. Verwenden Sie SSH, um als Root auf die Administratorworkstation zuzugreifen:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  2. Prüfen Sie, ob der Administratorcluster erstellt wurde und ausgeführt wird:

    kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig get nodes
    

    Die Ausgabe sieht in etwa so aus:

    NAME                   STATUS   ROLES                  AGE   VERSION
    abm-admin-cluster-cp   Ready    control-plane   94m   v1.27.4-gke.1600
    
  3. Wenn Sie fertig sind, geben Sie exit ein, um die Verbindung zur Administratorworkstation zu trennen.

4. Nutzercluster erstellen

Sie können den Nutzercluster mit der Google Cloud Console, der Google Cloud CLI oder Terraform erstellen. Verwenden Sie der Einfachheit halber abm-user-cluster-metallb für den Namen des Nutzerclusters, damit er mit dem hartcodierten Namen in den Terraform-Scripts übereinstimmt.

bmctl

  1. Verwenden Sie SSH, um als Root auf die Administratorworkstation-VM abm-ws zuzugreifen:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  2. Generieren Sie eine Clusterkonfigurationsdatei:

    bmctl create config -c abm-user-cluster-metallb \
        --project-id=PROJECT_ID
  3. Legen Sie in der folgenden Nutzercluster-Konfigurationsdatei im Abschnitt clusterSecurity Ihre E-Mail-Adresse fest und prüfen Sie die restlichen Einstellungen:

    Die folgende Clusterkonfigurationsdatei enthält die Werte, die Sie zuvor in die Planungstabelle eingegeben haben. Neben den von Ihnen eingegebenen Werten gibt es noch folgende Unterschiede zur generierten Konfigurationsdatei:

    • Kommentare wurden aus diesem Beispiel entfernt, um die Lesbarkeit zu verbessern.
    • Der Abschnitt für Anmeldedaten wurde entfernt, wie es bei Nutzerclustern üblich ist.
    • Der Clustertyp spec.type wurde auf user festgelegt.
    • Das Feld spec.clusterSecurity.authorization.clusterAdmin.gcpAccounts wurde hinzugefügt, um Ihrem Konto die Rolle clusterrole/cluster-admin zu gewähren. Über dieses Feld können Sie sich unter anderem in der Google Cloud Console in Ihrem Cluster anmelden, um weitere Clusterdetails aufzurufen.
    ---
    apiVersion: v1
    kind: Namespace
    metadata:
      name: cluster-abm-user-cluster-metallb
    ---
    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: abm-user-cluster-metallb
      namespace: cluster-abm-user-cluster-metallb
    spec:
      type: user
      profile: default
      anthosBareMetalVersion: BMCTL_VERSION
      gkeConnect:
        projectID: PROJECT_ID
      controlPlane:
        nodePoolSpec:
          nodes:
          - address: 10.200.0.4
      clusterNetwork:
        pods:
          cidrBlocks:
          - 192.168.0.0/16
        services:
          cidrBlocks:
          - 10.96.0.0/20
      loadBalancer:
        mode: bundled
        ports:
          controlPlaneLBPort: 443
        vips:
          controlPlaneVIP: 10.200.0.50
          ingressVIP: 10.200.0.51
        addressPools:
        - name: pool1
          addresses:
          - 10.200.0.51-10.200.0.70
      clusterOperations:
        projectID: PROJECT_ID
        location: us-central1
      clusterSecurity:
        authorization:
          clusterAdmin:
            gcpAccounts:
            - YOUR_EMAIL_ADDRESS
      storage:
        lvpNodeMounts:
          path: /mnt/localpv-disk
          storageClassName: local-disks
        lvpShare:
          path: /mnt/localpv-share
          storageClassName: local-shared
          numPVUnderSharedPath: 5
      nodeConfig:
        podDensity:
          maxPodsPerNode: 250
    ---
    apiVersion: baremetal.cluster.gke.io/v1
    kind: NodePool
    metadata:
      name: node-pool-1
      namespace: cluster-abm-user-cluster-metallb
    spec:
      clusterName: abm-user-cluster-metallb
      nodes:
      - address: 10.200.0.5
    
  4. Ersetzen Sie den Inhalt der generierten Konfigurationsdatei auf Ihrer Administratorworkstation durch die Inhalte aus dem vorherigen Beispiel.

    Öffnen Sie die generierte Datei bmctl-workspace/abm-user-cluster-metallb/abm-user-cluster-metallb.yaml und ersetzen Sie deren Inhalt durch den Inhalt des Beispiels, das Sie im vorhergehenden Schritt geprüft haben.

  5. Nutzercluster erstellen:

    bmctl create cluster -c abm-user-cluster-metallb \
      --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig

    Mit dem Befehl bmctl wird die Ausgabe während der Ausführung von Preflight-Prüfungen auf dem Bildschirm angezeigt und der Cluster erstellt. Ausführliche Informationen werden in Logs im Ordner baremetal/bmctl-workspace/abm-user-cluster-metallb/log auf der Administratorworkstation geschrieben.

    Die Erstellung eines Clusters kann einige Minuten dauern.

  6. Öffnen Sie in der Google Cloud Console die Seite GKE-Cluster.

    Zur Seite „GKE-Cluster“

    Achten Sie darauf, dass das Projekt ausgewählt ist, in dem Sie den Nutzercluster erstellt haben. Sie sollen den Administrator- und den Nutzercluster in der Liste sehen.

  7. Melden Sie sich im Nutzercluster an:

    1. Klicken Sie auf den Link zum Clusternamen und dann in der Seitenleiste auf Anmelden.

    2. Wählen Sie Mit Google-Identität anmelden aus.

    3. Klicken Sie auf Anmelden.

    Wiederholen Sie die Schritte, um sich im Administratorcluster anzumelden.

Console

So erstellen Sie einen Nutzercluster in der Console:

  1. Rufen Sie in der Console die Seite Bare-Metal-Cluster erstellen auf.

    Zur Seite „Bare-Metal-Cluster erstellen“

  2. Achten Sie darauf, dass das Google Cloud-Projekt ausgewählt ist, in dem Sie den Administratorcluster erstellt haben.

  3. Klicken Sie auf Cluster erstellen.

  4. Klicken Sie im Dialogfeld auf Lokal.

  5. Klicken Sie neben Bare Metal auf Konfigurieren. Die Seite Voraussetzungen wird angezeigt.

  6. Wählen Sie unter Clustertyp auswählen die Option Nutzercluster für einen vorhandenen Administratorcluster erstellen aus.

  7. Klicken Sie auf Weiter.

Clustergrundlagen

  1. Geben Sie einen Namen für den Nutzercluster ein oder verwenden Sie den Standardnamen.

  2. Achten Sie darauf, dass der neu erstellte Administratorcluster ausgewählt ist. Für die übrigen Einstellungen auf dieser Seite können Sie die Standardwerte verwenden.

  3. Klicken Sie in der linken Navigationsleiste auf Netzwerk.

Netzwerk

Mit dem Script, das Sie zum Erstellen der VMs und des Administratorclusters ausgeführt haben, wurde auch ein Layer 2-VXLAN mit IP-Adressen im Subnetz 10.200.0.0/24 erstellt.

  1. Geben Sie im Abschnitt Steuerungsebene im Feld Knoten-IP-Adresse 1 der Steuerungsebene Folgendes ein:

    10.200.0.4
    

    Dies ist die IP-Adresse der VM abm-user-cluster-cp1 im vom Script erstellten VXLAN.

  2. Verwenden Sie im Abschnitt Load Balancer den Standard-Load-Balancer Gebündelt mit MetalLB.

  3. Geben Sie im Abschnitt Neuer Adresspool im Feld IP-Adressbereich 1 den folgenden IP-Adressbereich ein:

    10.200.0.51-10.200.0.70
    
  4. Klicken Sie auf Fertig.

  5. Geben Sie im Abschnitt Virtuelle IP-Adressen im Feld Virtuelle IP-Adresse der Steuerungsebene die folgende IP-Adresse ein:

    10.200.0.50
    
  6. Geben Sie unter Virtuelle IP-Adresse für eingehenden Traffic die folgende IP-Adresse ein:

    10.200.0.51
    
  7. Verwenden Sie die Standard-IP-Adressen im Abschnitt Dienst- und Pod-CIDRs.

  8. Klicken Sie in der linken Navigationsleiste auf Standardpool.

Knotenpool erstellen

Ihr Nutzercluster muss mindestens einen Knotenpool für Worker-Knoten haben.

  1. Geben Sie in das Feld Knotenadresse 1 die folgende IP-Adresse ein:

    10.200.0.5
    

    Dies ist die IP-Adresse der VM „abm-user-cluster-w1“ im vom Script erstellten VXLAN.

Cluster erstellen

  1. Klicken Sie auf Prüfen und erstellen, um den Nutzercluster zu erstellen.

    Das Erstellen des Nutzerclusters dauert mindestens 15 Minuten. Die Console zeigt Statusmeldungen an, während die Einstellungen geprüft und der Cluster erstellt wird.

    Wenn bei der Konfiguration ein Fehler auftritt, wird in der Console eine Fehlermeldung angezeigt, die klar genug sein sollte, um das Konfigurationsproblem zu beheben. Versuchen Sie danach noch einmal, den Cluster zu erstellen.

    Wenn Sie weitere Informationen zum Erstellungsprozess sehen möchten, klicken Sie auf Details anzeigen, um einen Detailbereich zu öffnen. Klicken Sie auf , um den Bereich wieder zu schließen.

    Nach dem Erstellen des Clusters wird Clusterstatus: Wird ausgeführt angezeigt.

  2. Klicken Sie nach dem Erstellen des Clusters auf Cluster um zur Seite Cluster zurückzukehren.

  3. Melden Sie sich im Nutzercluster an:

    1. Klicken Sie auf den Link zum Clusternamen und dann in der Seitenleiste auf Anmelden.

    2. Wählen Sie Mit Google-Identität anmelden aus.

    3. Klicken Sie auf Anmelden.

    Wiederholen Sie die Schritte, um sich im Administratorcluster anzumelden.

gcloud CLI

So erstellen Sie den Nutzercluster:

  1. Führen Sie den folgenden Befehl aus, um den Nutzercluster zu erstellen:

    gcloud container bare-metal clusters create abm-user-cluster-metallb \
        --project=PROJECT_ID \
        --admin-cluster-membership=projects/PROJECT_ID/locations/ON_PREM_API_REGION/memberships/ADMIN_CLUSTER_NAME \
        --location=ON_PREM_API_REGION \
        --version=BMCTL_VERSION \
        --admin-users=YOUR_EMAIL_ADDRESS \
        --metal-lb-address-pools='pool=lb-pool-1,manual-assign=True,addresses=10.200.0.51-10.200.0.70' \
        --control-plane-node-configs='node-ip=10.200.0.4' \
        --control-plane-vip=10.200.0.50 \
        --control-plane-load-balancer-port=443 \
        --ingress-vip=10.200.0.51 \
        --island-mode-service-address-cidr-blocks=10.96.0.0/20 \
        --island-mode-pod-address-cidr-blocks=192.168.0.0/16 \
        --lvp-share-path=/mnt/localpv-share \
        --lvp-share-storage-class=local-shared \
        --lvp-node-mounts-config-path=/mnt/localpv-disk \
        --lvp-node-mounts-config-storage-class=local-disks
    

    Nach der Ausführung des Befehls wird eine Ausgabe angezeigt, die in etwa so aussieht:

    Waiting for operation [projects/PROJECT_ID/locations/ON_PREM_API_REGION/operations/operation-1678304606537-5f668bde5c57e-341effde-b612ff8a] to complete...
    

    In der Beispielausgabe ist der String operation-1678304606537-5f668bde5c57e-341effde-b612ff8a die OPERATION_ID des Vorgangs mit langer Ausführungszeit.

  2. Wenn Sie den Status des Vorgangs prüfen möchten, öffnen Sie ein weiteres Terminalfenster und führen Sie den Befehl aus.

    gcloud container bare-metal operations describe OPERATION_ID \
        --project=PROJECT_ID \
        --location=ON_PREM_API_REGION
    

    Ersetzen Sie OPERATION_ID durch den entsprechenden String aus der Ausgabe des vorherigen Schritts.

    Das Erstellen des Clusters dauert mindestens 15 Minuten. Während der Cluster erstellt wird, können Sie den vorherigen Befehl gelegentlich ausführen, um den aktuellen Status abzurufen.

    Wenn der Cluster erstellt wurde, sehen Sie eine Ausgabe wie diese:

    Created Anthos cluster on bare metal [https://gkeonprem.googleapis.com/v1/projects/PROJECT_ID/locations/ON_PREM_API_REGION/bareMetalClusters/abm-user-cluster-metallb].

    Weitere Informationen zum Befehl gcloud container bare-metal clusters create, einschließlich Beschreibungen der einzelnen Flags, finden Sie auf der Seite container bare-metal clusters create für die Clusterressource in der gcloud CLI-Referenz.

Knotenpool erstellen

Nachdem der Cluster erstellt wurde, können Sie einen Knotenpool für den Cluster erstellen.

So erstellen Sie einen Knotenpool:

  1. Führen Sie den folgenden Befehl aus, um einen Knotenpool zu erstellen:

    gcloud container bare-metal node-pools create NODE_POOL_NAME \
        --cluster=abm-user-cluster-metallb \
        --project=PROJECT_ID \
        --location=ON_PREM_API_REGION \
        --node-configs='node-ip=10.200.0.5'
    

    Ersetzen Sie NODE_POOL_NAME durch den gewünschten Namen für den Knotenpool.

    Nach der Ausführung des Befehls wird eine Ausgabe angezeigt, die in etwa so aussieht:

    Waiting for operation [projects/PROJECT_ID/locations/ON_PREM_API_REGION/operations/operation-1678308682052-5f669b0d132cb-6ebd1c2c-816287a7] to complete...
    

    Das Erstellen des Knotenpools dauert etwa 5 Minuten. Wenn der Knotenpool erstellt wird, sehen Sie eine Ausgabe wie diese:

    Created node pool in Anthos cluster on bare metal [https://gkeonprem.googleapis.com/v1/projects/PROJECT_ID/locations/ON_PREM_API_REGION/bareMetalClusters/abm-user-cluster-metallb/bareMetalNodePools/NODE_POOL_NAME].
    
  2. Rufen Sie in der Console die Seite Bare-Metal-Cluster erstellen auf:

    Zur Seite „Bare-Metal-Cluster erstellen“

    Achten Sie darauf, dass das Projekt ausgewählt ist, in dem Sie den Nutzercluster erstellt haben. Sie sollen den Administrator- und den Nutzercluster in der Liste sehen.

  3. Melden Sie sich im Nutzercluster an:

    1. Klicken Sie auf den Link zum Clusternamen und dann in der Seitenleiste auf Anmelden.

    2. Wählen Sie Mit Google-Identität anmelden aus.

    3. Klicken Sie auf Anmelden.

    Wiederholen Sie die Schritte, um sich im Administratorcluster anzumelden.

Terraform

Mit dem folgenden grundlegenden Konfigurationsbeispiel können Sie einen Nutzercluster mit einem gebündelten MetalLB-Load-Balancer erstellen. Weitere Informationen finden Sie in der google_gkeonprem_bare_metal_cluster-Referenzdokumentation.

  1. Wechseln Sie im Verzeichnis, in das Sie anthos-samples geklont haben, in den Pfad, in dem sich das Terraform-Beispiel befindet:

    cd anthos-samples/anthos-onprem-terraform/abm_user_cluster_metallb
    

    Das Beispiel enthält eine Variablendatei, die an main.tf übergeben wird.

  2. Erstellen Sie eine Kopie der Datei terraform.tfvars.sample.

    cp terraform.tfvars.sample terraform.tfvars
    
  3. Prüfen Sie die Werte im folgenden Beispiel:

    Die folgende Terraform-Variablendatei (terraform.tfvars.sample) ist mit IP-Adressen und Werten vorausgefüllt, die Sie in den vorherigen Abschnitten dieses Leitfadens eingegeben haben.

    
    project_id          = "PROJECT_ID"
    region              = "ON_PREM_API_REGION"
    admin_cluster_name  = "ADMIN_CLUSTER_NAME"
    bare_metal_version  = "VERSION"
    admin_user_emails   = ["YOUR_EMAIL_ADDRESS", "ADMIN_2_EMAIL_ADDRESS"]
    cluster_name        = "abm-user-cluster-metallb"
    control_plane_ips   = ["10.200.0.4"]
    worker_node_ips     = ["10.200.0.5", "10.200.0.6"]
    control_plane_vip   = "10.200.0.50"
    ingress_vip         = "10.200.0.51"
    lb_address_pools    = [
        { name = "lbpool_1", addresses = ["10.200.0.51-10.200.0.70"] }
    ]
    

    Ersetzen Sie ADMIN_2_EMAIL_ADDRESS durch eine mit Ihrem Google Cloud-Konto verknüpfte E-Mail-Adresse oder entfernen Sie den Eintrag, wenn Sie die Variablendatei bearbeiten.

    Weitere Informationen zu den Argumenten in diesem Beispiel, für die Sie Variablen festlegen, finden Sie in der Terraform-Dokumentation für Google Distributed Cloud-Nutzercluster unter Referenz zu Argumenten.

  4. Ersetzen Sie den Inhalt Ihrer Kopie der Variablendatei durch den Inhalt aus dem vorherigen Beispiel.

  5. Initialisieren und erstellen Sie den Terraform-Plan:

    terraform init
    

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

  6. Prüfen Sie die Konfiguration und nehmen Sie bei Bedarf Änderungen vor:

    terraform plan
    
  7. Wenden Sie den Terraform-Plan an, um den Nutzercluster zu erstellen:

    terraform apply
    

    Das Erstellen des Nutzerclusters dauert mindestens 15 Minuten. Sie können den Cluster in der Google Cloud Console auf der Seite GKE-Cluster aufrufen.

  8. Öffnen Sie in der Google Cloud Console die Seite GKE-Cluster.

    Zur Seite „GKE-Cluster“

    Achten Sie darauf, dass das Projekt ausgewählt ist, in dem Sie den Nutzercluster erstellt haben. Sie sollen den Administrator- und den Nutzercluster in der Liste sehen.

  9. Melden Sie sich im Nutzercluster an:

    1. Klicken Sie auf den Link zum Clusternamen und dann in der Seitenleiste auf Anmelden.

    2. Wählen Sie Mit Google-Identität anmelden aus.

    3. Klicken Sie auf Anmelden.

    Wiederholen Sie die Schritte, um sich im Administratorcluster anzumelden.

5. Bereinigen

Folgen Sie der Anleitung unten, um die Cluster und VMs zu entfernen, die Sie mithilfe dieses Leitfadens erstellt haben.

Nutzercluster löschen

bmctl

  • Wenn Sie den Nutzercluster mit bmctl löschen möchten, führen Sie den folgenden Befehl auf der Administratorworkstation-VM abm-ws aus:

    bmctl reset \
        --cluster abm-user-cluster-metallb \
        --admin-kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
    

Console

  1. Rufen Sie in der Console die Seite GKE-Cluster auf.

    Zur Seite „GKE-Cluster“

  2. Klicken Sie in der Liste der Cluster auf den Nutzercluster.

  3. Klicken Sie im Bereich Details auf Weitere Details ansehen.

  4. Klicken Sie oben im Fenster auf Löschen.

  5. Wenn Sie zur Bestätigung aufgefordert werden, geben Sie den Clusternamen ein und klicken Sie auf Löschen.

  6. Klicken Sie rechts oben auf , um den Status des Löschvorgangs aufzurufen. Möglicherweise müssen Sie die Seite aktualisieren, um die Clusterliste zu aktualisieren.

gcloud CLI

  • Führen Sie den folgenden Befehl aus, um den Cluster zu löschen:

    gcloud container bare-metal clusters delete abm-user-cluster-metallb \
        --project=PROJECT_ID \
        --location=ON_PREM_API_REGION \
        --force
    

    Mit dem Flag --force können Sie einen Cluster mit Knotenpools löschen. Ohne das --force-Flag müssen Sie zuerst die Knotenpools löschen und dann den Cluster.

Informationen zu anderen Flags finden Sie unter gcloud container bare-metal clusters delete.

Terraform

Mit dem Befehl terraform destroy werden Ressourcen beendet, die beim Ausführen von terraform apply zum Erstellen des Nutzerclusters erstellt wurden.

  • Führen Sie den folgenden Befehl in dem Verzeichnis aus, in dem sich die Terraform-Beispieldateien (z. B. main.tf) für den Nutzercluster befinden:

    terraform destroy
    

Warten Sie, bis der Nutzercluster gelöscht wurde, bevor Sie den Administratorcluster und die VMs löschen.

Administratorcluster und VMs löschen

  1. Heben Sie die Registrierung des Administratorclusters in der GKE On-Prem API auf:

    gcloud container bare-metal admin-clusters unenroll ADMIN_CLUSTER_NAME \
        --project=PROJECT_ID \
        --location=ON_PREM_API_REGION
    
  2. Stellen Sie eine Verbindung zur Administratorworkstation her:

    gcloud compute ssh root@abm-ws --zone ZONE
    
  3. Löschen Sie den Administratorcluster:

    bmctl reset -c ADMIN_CLUSTER_NAME
    

    bmctl hebt die Registrierung des Clusters in der Flotte auf und löscht ihn dann. Warten Sie, bis der Cluster gelöscht wurde, bevor Sie die VMs löschen.

  4. Beenden Sie die Administratorworkstation:

    exit
    
  5. Listen Sie alle VMs auf, deren Name abm enthält:

    gcloud compute instances list | grep 'abm'
    
  6. Vergewissern Sie sich, dass Sie mit dem Löschen aller VMs fortfahren möchten, die abm im Namen enthalten.

    Anschließend können Sie abm-VMs mit dem folgenden Befehl löschen:

    gcloud compute instances list --format="value(name)" | \
        grep 'abm' | \
        xargs gcloud compute instances delete --quiet --zone ZONE
    
  7. Führen Sie den folgenden Befehl aus, um das Dienstkonto zu löschen, und geben Sie y ein, wenn Sie dazu aufgefordert werden:

    gcloud iam service-accounts delete baremetal-gcr@PROJECT_ID.iam.gserviceaccount.com
    

    Nächste Schritte