Auf dieser Seite wird beschrieben, wie Sie einen GKE on Bare Metal-Nutzercluster und einen Administratorcluster auf virtuellen Compute Engine-Maschinen (VMs) erstellen. Mit dem bereitgestellten Skript werden Compute Engine-VMs für die Administrator- und Nutzerclusterknoten sowie eine Administratorworkstation erstellt.
Die Administratorworkstation hostet Befehlszeilentools und Konfigurationsdateien zum Bereitstellen von Clustern während der Installation sowie Befehlszeilentools für die Interaktion mit bereitgestellten Clustern nach der Installation. Mit dem Skript werden die Befehlszeilentools auf der VM der Administratorworkstation installiert.
Ein Nutzercluster ist ein Kubernetes-Cluster, auf dem Ihre containerisierten Arbeitslasten ausgeführt werden. Die Instanz besteht aus Knoten der Steuerungsebene und Worker-Knoten. Nutzercluster müssen einen oder mehrere Worker-Knoten enthalten, auf denen Nutzerarbeitslasten ausgeführt werden. Ein Administratorcluster ist ein Kubernetes-Cluster, der einen oder mehrere Nutzercluster verwaltet und beim Erstellen, Aktualisieren und Löschen von Nutzerclustern hilft. Ein Administratorcluster besteht nur aus Knoten der Steuerungsebene. Weitere Informationen finden Sie unter Administrator- und Nutzercluster bereitstellen.
Das Skript konfiguriert ein VXLAN-Overlay-Netzwerk (Virtual Extensible LAN) zwischen den VMs und bereitet die VMs für die Clustererstellung vor. Optional erstellt das Skript einen Administratorcluster oder Sie erstellen den Administratorcluster selbst, um mehr über die Tools zu erfahren, die GKE on Bare Metal zum Erstellen von Administratorclustern bietet.
Mit dem bereitgestellten Skript können Sie GKE on Bare Metal schnell und ohne Vorbereitung ausprobieren. Wenn Sie die Schritte auf dieser Seite ausführen, erhalten Sie eine funktionierende GKE on Bare Metal-Testumgebung, die in Compute Engine ausgeführt wird.
Was ist die GKE On-Prem API?
Die GKE On-Prem API ist eine von Google Cloud gehostete API, mit der Sie den Lebenszyklus Ihrer lokalen Cluster mithilfe von Terraform und Google Cloud-Standardanwendungen verwalten können. Die GKE On-Prem API wird in der Infrastruktur von Google Cloud ausgeführt. Terraform, die Console und die gcloud CLI sind Clients der API und verwenden die API, um Cluster in Ihrem Rechenzentrum zu erstellen.
Zum Verwalten des Lebenszyklus Ihrer Cluster muss die GKE On-Prem API Metadaten zum Status Ihres Clusters in Google Cloud speichern. Dabei wird die Google Cloud-Region verwendet, die Sie beim Erstellen des Clusters angeben. Mit diesen Metadaten kann die API den Clusterlebenszyklus verwalten. Sie enthalten keine arbeitslastspezifischen Daten.
Wenn Sie einen Cluster mit einem GKE On-Prem API-Client erstellen, geben Sie ein Google Cloud-Projekt an. Nachdem der Cluster erstellt wurde, wird er automatisch bei der Flotte des angegebenen Projekts registriert. Dieses Projekt wird als Flotten-Hostprojekt bezeichnet. Das Flotten-Hostprojekt kann nach dem Erstellen des Clusters nicht mehr geändert werden.
Hinweise
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Notieren Sie sich die Projekt-ID. Sie benötigen sie zum Festlegen einer Umgebungsvariable, die im Skript und in den Befehlen auf dieser Seite verwendet wird. Wenn Sie ein vorhandenes Projekt ausgewählt haben, müssen Sie entweder Projektinhaber oder -bearbeiter sein.
-
Sie können das Skript in Cloud Shell oder auf Ihrem lokalen Computer mit Linux oder macOS ausführen. Wenn Sie Cloud Shell nicht verwenden:
- Prüfen Sie, ob Sie die neueste Google Cloud CLI installiert haben, das Befehlszeilentool für die Interaktion mit Google Cloud. Aktualisieren Sie bei Bedarf die Komponenten der gcloud CLI:
gcloud components update
Je nachdem, wie die gcloud CLI installiert wurde, wird möglicherweise die folgende Meldung angezeigt: „Sie können diese Aktion nicht ausführen, da der Komponentenmanager der gcloud CLI für diese Installation deaktiviert ist. Mit dem folgenden Befehl können Sie bei dieser Installation dasselbe Ergebnis erzielen:“. Folgen Sie der Anleitung zum Kopieren und Einfügen des Befehls zum Aktualisieren der Komponenten.
- Achte darauf, dass
kubectl
installiert ist. Wenn Siekubectl
installieren müssen, führen Sie den folgenden Befehl aus:gcloud components install kubectl
- Prüfen Sie, ob Sie die neueste Google Cloud CLI installiert haben, das Befehlszeilentool für die Interaktion mit Google Cloud. Aktualisieren Sie bei Bedarf die Komponenten der gcloud CLI:
VM-Infrastruktur und optional den Administratorcluster erstellen
Führen Sie folgende Schritte aus, um das Skript einzurichten und auszuführen. Das Skript, das Sie herunterladen und ausführen, stammt aus dem Repository anthos-samples. Wenn Sie mehr über das Skript erfahren möchten, bevor Sie es ausführen, lesen Sie den nächsten Abschnitt Informationen zum Skript.
Richten Sie Umgebungsvariablen ein:
export PROJECT_ID=PROJECT_ID export ADMIN_CLUSTER_NAME=ADMIN_CLUSTER_NAME export ON_PREM_API_REGION=ON_PREM_API_REGION export ZONE=ZONE
ON_PREM_API_REGION
: Die Google Cloud-Region, in der die GKE On-Prem API ausgeführt wird und ihre Metadaten speichert. Geben Sieus-central1
oder eine andere unterstützte Region an.ZONE
: Die Google Cloud-Zone, in der die Compute Engine-VMs erstellt werden. Sie könnenus-central1-a
oder eine der anderen Compute Engine-Zonen verwenden.
Legen Sie das Standardprojekt und die -zone fest:
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 Siegcloud auth login
aus, um sich in der gcloud CLI mit dem Konto anzumelden, das Zugriff auf das Projekt hat.Rufen Sie eine Liste der GKE on Bare Metal-Versionen ab, die Sie installieren können:
gcloud container bare-metal admin-clusters query-version-config \ --location=ON_PREM_API_REGION | grep 1.15
Einige Anleitungen in diesem Dokument hängen von der GKE On-Prem API ab, die einen Teil der verfügbaren GKE on Bare Metal-Versionen unterstützt.
Wählen Sie eine Version aus der Ausgabe des vorherigen Befehls 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 Features und Fehlerkorrekturen von GKE on Bare Metal zu erhalten.
Klonen Sie das Repository
anthos-samples
und wechseln Sie in das Verzeichnis, in dem sich das Skript befindet:git clone https://github.com/GoogleCloudPlatform/anthos-samples cd anthos-samples/anthos-bm-gcp-bash
Führen Sie das Skript aus:
bash install_admin_cluster.sh
Wenn Sie dazu aufgefordert werden, geben Sie eine Zahl ein, um den Installationsmodus auszuwählen:
- Geben Sie 1 ein, damit das Skript die VM-Infrastruktur einrichten und den Administratorcluster installiert.
- Geben Sie 2 ein, damit das Skript nur die VM-Infrastruktur einrichtet.
Bestätigen Sie Ihre Auswahl, wenn Sie dazu aufgefordert werden.
Das Skript gibt jeden ausgeführten Befehl und den Status aus. Wenn die Installation abgeschlossen ist, gibt das Skript Folgendes aus, je nachdem, ob Sie den Administratorcluster installiert haben:
Administratorcluster erstellt
✅ Installation 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-cp1 | 10.200.0.3 | Has control plane of admin cluster running inside | | abm-user-cluster-cp1 | 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 | |---------------------------------------------------------------------------------------------------------|
Nur VMs einrichten
|---------------------------------------------------------------------------------------------------------| | VM Name | L2 Network IP (VxLAN) | INFO | |---------------------------------------------------------------------------------------------------------| | abm-admin-cluster-cp1 | 10.200.0.3 | 🌟 Ready for use as control plane for the admin cluster | | abm-user-cluster-cp1 | 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 | |---------------------------------------------------------------------------------------------------------|
Informationen zum Skript
Für weitere Informationen zu install_admin_cluster.sh
klicken Sie in der nächsten Zeile auf Informationen zum Skript.
Informationen zum Skript
Das Skript automatisiert die folgenden manuellen Schritte:
-
Erstellt ein Dienstkonto mit dem Namen
baremetal-gcr
und gewährt dem Dienstkonto zusätzliche Berechtigungen, damit nicht mehrere Dienstkonten für verschiedene APIs und Dienste erforderlich sind. -
Aktiviert die folgenden Google Cloud APIs:
anthos.googleapis.com anthosaudit.googleapis.com anthosgke.googleapis.com cloudresourcemanager.googleapis.com connectgateway.googleapis.com container.googleapis.com gkeconnect.googleapis.com gkehub.googleapis.com gkeonprem.googleapis.com iam.googleapis.com logging.googleapis.com monitoring.googleapis.com opsconfigmonitoring.googleapis.com serviceusage.googleapis.com stackdriver.googleapis.com storage.googleapis.com
-
Erstellt die folgenden VMs:
- Eine VM für die Administratorworkstation. Die Administratorworkstation hat über SSH Zugriff auf alle anderen Clusterknoten.
- 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.
- Erstellt ein VXLAN-Overlay-Netzwerk (Virtual Extensible LAN) für Ebene-2-Verbindungen zwischen den VMs. Die VXLAN ist nicht dauerhaft. Wenn Sie eine VM-Instanz neu starten, wird das Netzwerk also zerstört. Das Netzwerk ist so eingerichtet, dass es sich im Subnetz 10.200.0.0/24 befindet. Die Ebene-2-Verbindung ist eine Voraussetzung für den gebündelten Load-Balancer.
-
Installiert die folgenden Tools auf der Administratorworkstation:
bmctl
kubectl
- Docker
Das Skript lädt auch den Dienstkontoschlüssel für das Dienstkonto
baremetal-gcr
auf die Administratorworkstation herunter. -
Stellt sicher, dass
root@10.200.0.x
auf der Administratorworkstation funktioniert, indem die folgenden Aufgaben ausgeführt werden:- Generieren Sie einen neuen SSH-Schlüssel auf der Administratorworkstation.
- Fügt allen anderen VMs in der Bereitstellung den öffentlichen Schlüssel hinzu.
-
Optional erstellt das Skript den Administratorcluster mit der folgenden Konfigurationsdatei:
Wenn Sie festgelegt haben, dass das Skript den Administratorcluster erstellen soll, verwendet das Skript SSH, um sich als Root-Nutzer bei der Administratorworkstation anzumelden. Als Nächstes führt das Skript das
bmctl
-Befehlszeilentool aus, um den Administratorcluster zu erstellen. Dies ist eines der Tools, mit denen Sie Administratorcluster erstellen können.Wenn GKE on Bare Metal Cluster erstellt, wird ein Kubernetes-Cluster in Docker (Art) auf der Administratorworkstation bereitgestellt. Dieser Bootstrap-Cluster hostet die zum Erstellen von Clustern erforderlichen Kubernetes-Controller und wird zum Erstellen des Administratorclusters verwendet. Nach der Erstellung werden die relevanten Controller aus dem Bootstrap-Cluster in den Administratorcluster verschoben. Wenn nicht anders angegeben, wird der Bootstrap-Cluster entfernt, wenn die Clustererstellung erfolgreich abgeschlossen wurde. Der Bootstrap-Cluster benötigt Docker, um Container-Images abzurufen.
Administratorcluster erstellen (optional)
Wenn der Administratorcluster durch das Skript erstellt wurde, fahren Sie mit dem nächsten Abschnitt Administratorcluster prüfen fort. Andernfalls führen Sie die Schritte in diesem Abschnitt aus, um einen Bootstrap-Cluster und den Administratorcluster zu erstellen.
Bevor Sie den Administratorcluster erstellen, müssen Sie den Befehl bmctl register bootstrap
auf der Administratorworkstation ausführen. Mit diesem Befehl wird ein temporäres Kubernetes in einem Docker-Cluster (Art) auf der Administrator-Workstation bereitgestellt. Dieser Bootstrap-Cluster hostet die Kubernetes-Controller, die zum Erstellen des Administratorclusters erforderlich sind. Wenn Sie den Administratorcluster erstellen, stellen die Controller im Bootstrap-Cluster Knoten bereit, führen Preflight-Prüfungen aus und registrieren den Administratorcluster bei der Flotte. Der Bootstrap-Cluster wird automatisch gelöscht, nachdem er erfolgreich erstellt wurde.
Console
Rufen Sie in der Console die Seite GKE on Bare Metal-Cluster erstellen auf.
Achten Sie darauf,
PROJECT_ID
aus der Projektliste auszuwählen.Klicken Sie in der linken Navigationsleiste auf Bootstrap-Umgebung installieren.
Geben Sie
ADMIN_CLUSTER_NAME
als Namen des Administratorclusters ein. Der Name des Bootstrap-Clusters wird abgeleitet, indem dem Namen des Administratorclusters bootstrap- vorangestellt wird.Wählen Sie
VERSION
als Version für Ihren Administratorcluster aus. Das Skript hat diese Version desbmctl
-Befehlszeilentools auf die Administratorworkstation heruntergeladen. Die von Ihnen installierte GKE on Bare Metal-Version muss mit der Versionbmctl
übereinstimmen.Wählen Sie im Feld Standort der Google Cloud API die Option ON_PREM_API_REGION aus der Liste aus. Diese Einstellung gibt die Region an, in der die GKE On-Prem API ausgeführt wird, und die Region, in der die folgenden Daten gespeichert sind:
- Die Clustermetadaten, die die GKE On-Prem API zum Verwalten des Clusterlebenszyklus benötigt
- Cloud Logging- und Cloud Monitoring-Daten von Systemkomponenten
- Das von Cloud-Audit-Logs erstellte Administrator-Audit-Log
Der Clustername, das Projekt und der Standort identifizieren zusammen den Cluster in Google Cloud eindeutig.
Führen Sie zum Erstellen des Bootstrap-Clusters die Schritte im nächsten Abschnitt anstelle der in der Konsole angezeigten Schritte aus. Lassen Sie die Konsolenseite angezeigt, da Sie dorthin zurückkehren und den Administratorcluster erstellen.
gcloud-CLI
Öffnen Sie ein neues Terminalfenster. Im zweiten Terminalfenster stellen Sie eine Verbindung zur Administratorworkstation her und erstellen den Bootstrap-Cluster. Im ersten Terminalfenster führen Sie den gcloud CLI-Befehl aus, um den Administratorcluster zu erstellen.
Bootstrap-Cluster erstellen
Führen Sie auf Ihrer Administratorworkstation die folgenden Schritte aus.
Verwenden Sie SSH, um als Root auf die Administratorworkstation zuzugreifen:
gcloud compute ssh root@abm-ws --zone ZONE
Sie können alle Meldungen zum Aktualisieren der VM ignorieren und diese Anleitung ausführen. 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.
Legen Sie Ihre Nutzeranmeldedaten als Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) fest:
gcloud auth application-default login
Folgen Sie der Anleitung, um Ihr Google-Konto für ADC auszuwählen.
Erstellen Sie den Bootstrap-Cluster.
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, sieht die Ausgabe in etwa so aus:
[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..
Erstellen Sie den Administratorcluster.
Console
Klicken Sie auf der Seite Bootstrap-Umgebung installieren im Abschnitt Bootstrap-Umgebung von Administratorworkstation installieren auf Verbindung prüfen.
Bei Erfolg wird in der Konsole
Verbindung hergestellt angezeigt.Die Verbindung zum Bootstrap-Cluster muss hergestellt werden, bevor Sie fortfahren. Wenn keine Verbindung hergestellt wird, prüfen Sie die Argumente, die Sie im Befehl
bmctl register bootstrap
angegeben haben:Achten Sie darauf, dass der Wert für
--name
mit dem abgeleiteten Bootstrap-Namen übereinstimmt, der im Abschnitt Grundlagen der Bootstrap-Umgebung angezeigt wird.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üssen, geben Sie
Ctrl-C
ein, umbmctl register bootstrap
zu beenden und den Befehl noch einmal auszuführen.Klicken Sie in der linken Navigationsleiste auf Netzwerk.
Geben Sie im Abschnitt Steuerungsebene Folgendes in das Feld IP 1 des Knotens der Steuerungsebene ein:
10.200.0.3
Dies ist die IP-Adresse der VM „abm-admin-cluster-cp“ im VXLAN, das vom Skript erstellt wurde.
Achten Sie darauf, dass im Abschnitt Load-Balancer die Option Gebündelt ausgewählt ist.
Geben Sie im Abschnitt Virtuelle IP-Adressen (VIPs) Folgendes in das Feld VIP der Steuerungsebene ein:
10.200.0.48
Klicken Sie auf Bestätigen und erstellen.
In der Console werden Statusmeldungen angezeigt, während die Einstellungen überprüft und der Cluster erstellt wird.
gcloud-CLI
Achten Sie darauf, dass die zuvor definierten Umgebungsvariablen die richtigen Werte haben. Im Beispielbefehl werden zwar Platzhalter verwendet, diese müssen aber den Umgebungsvariablen entsprechen, die im Skript verwendet wurden.
echo $PROJECT_ID echo $ADMIN_CLUSTER_NAME echo $ON_PREM_API_REGION echo $BMCTL_VERSION
Prüfen Sie, ob der Bootstrap-Cluster als Mitglied der Flotte registriert wurde:
gcloud container fleet memberships list \ --project=PROJECT_ID
Wenn der Bootstrap-Cluster nicht aufgeführt ist, prüfen Sie den Namen und die Projekt-ID des Bootstrap-Clusters, die Sie für
bmctl register bootstrap
angegeben haben. Wenn Sie den Namen des Bootstrap-Clusters oder die Projekt-ID ändern müssen, geben SieCtrl-C
ein, umbmctl register bootstrap
zu beenden und den Befehl noch einmal auszuführen.Erstellen Sie den Administratorcluster mit dem gebündelten Load-Balancer:
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
Im vorherigen Befehl:
--control-plane-vip
: ist auf10.200.0.48
festgelegt. Dies ist die virtuelle IP-Adresse (VIP) auf dem Load-Balancer für den Kubernetes API-Server des Clusters.--control-plane-node-configs
:node-ip
ist auf10.200.0.3
festgelegt. Dies ist die IP-Adresse der VM „abm-admin-cluster-cp“ in der vom Skript erstellten VXLAN.
Eine vollständige Liste der Flags und ihrer 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
derOPERATION_ID
des Vorgangs mit langer Ausführungszeit. Sie können den Status des Vorgangs ermitteln, indem Sie den folgenden Befehl in einem anderen Terminalfenster ausführen:gcloud container bare-metal operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION
Details zur Clustererstellung werden auf Ihrer Administrator-Workstation ausgegeben. Vor dem Erstellen des Clusters führt bmctl
eine Reihe von Preflight-Prüfungen aus, um die Konfiguration zu prüfen. Wenn die Preflight-Prüfungen bestanden sind, wird in etwa Folgendes angezeigt:
[2023-03-22 23:12:47+0000] Waiting for cluster kubeconfig to become ready OK [2023-03-22 23:15:47+0000] Writing kubeconfig file [2023-03-22 23:15:47+0000] kubeconfig of cluster being created is present at bmctl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig [2023-03-22 23:15:47+0000] Please restrict access to this file as it contains authentication credentials of your cluster. [2023-03-22 23:15:47+0000] Waiting for cluster to become ready OK [2023-03-22 23:20:17+0000] Please run [2023-03-22 23:20:17+0000] kubectl --kubeconfig bmctl-workspace/abm-cluster-1/abm-cluster-1-kubeconfig get nodes [2023-03-22 23:20:17+0000] to get cluster nodes status. [2023-03-22 23:20:17+0000] Waiting for node pools to become ready OK [2023-03-22 23:20:37+0000] Waiting for metrics to become ready in GCP OK [2023-03-22 23:25:38+0000] Waiting for cluster API provider to install in the created admin cluster OK [2023-03-22 23:25:48+0000] Moving admin cluster resources to the created admin cluster [2023-03-22 23:25:51+0000] Waiting for node update jobs to finish OK [2023-03-22 23:27:41+0000] Flushing logs... OK [2023-03-22 23:27:41+0000] Deleting membership... OK [2023-03-22 23:27:42+0000] Deleting bootstrap cluster.
Administratorcluster prüfen
Sie finden die Datei kubeconfig
Ihres Administratorclusters auf der Administratorworkstation im Verzeichnis bmctl-workspace
des Stammkontos. Führen Sie die folgenden Schritte aus, um Ihre Bereitstellung zu prüfen.
Wenn der Administratorcluster durch das Skript erstellt wurde, verwenden Sie SSH, um als Root auf die Administrator-Workstation zuzugreifen:
gcloud compute ssh root@abm-ws --zone ZONE
Sie können alle Meldungen zum Aktualisieren der VM ignorieren und diese Anleitung ausführen. 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.
Legen Sie die Umgebungsvariable
KUBECONFIG
mit dem Pfad zur Konfigurationsdatei des Clusters fest, umkubectl
-Befehle im Cluster auszuführen.export clusterid=ADMIN_CLUSTER_NAME export KUBECONFIG=$HOME/bmctl-workspace/$clusterid/$clusterid-kubeconfig kubectl get nodes
Die Ausgabe sieht in etwa so aus:
NAME STATUS ROLES AGE VERSION abm-admin-cluster-cp Ready control-plane,master 91m v1.24.2-gke.1900
Legen Sie den aktuellen Kontext in einer Umgebungsvariablen fest:
export CONTEXT="$(kubectl config current-context)"
Führen Sie dazu den folgenden
gcloud
-Befehl aus. Mit diesem Befehl wird Folgendes ausgeführt:- Gewährt Ihrem Nutzerkonto die Kubernetes-Rolle
clusterrole/cluster-admin
für den Cluster. - Konfiguriert den Cluster so, dass Sie
kubectl
-Befehle auf Ihrem lokalen Computer ausführen können, ohne eine SSH-Verbindung zur Administratorworkstation herstellen zu müssen. - Hiermit können Sie sich mit Ihrer Google-Identität in der Console beim Cluster anmelden.
Ersetzen Sie
YOUR_EMAIL_ADDRESS
durch die E-Mail-Adresse, die mit Ihrem Google Cloud-Konto verknüpft ist. Beispiel:--users=alex@example.com
.gcloud container fleet memberships generate-gateway-rbac \ --membership=ADMIN_CLUSTER_NAME \ --role=clusterrole/cluster-admin \ --users=YOUR_EMAIL_ADDRESS \ --project=PROJECT_ID \ --kubeconfig=$KUBECONFIG \ --context=$CONTEXT\ --apply
Die Ausgabe dieses Befehls sieht in etwa so aus und ist zur besseren Lesbarkeit gekürzt:
Validating input arguments. Specified Cluster Role is: clusterrole/cluster-admin Generated RBAC policy is: -------------------------------------------- ... Applying the generate RBAC policy to cluster with kubeconfig: /root/bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig, context: ADMIN_CLUSTER_NAME-admin@ADMIN_CLUSTER_NAME Writing RBAC policy for user: YOUR_EMAIL_ADDRESS to cluster. Successfully applied the RBAC policy to cluster.
- Gewährt Ihrem Nutzerkonto die Kubernetes-Rolle
Wenn Sie die Untersuchung abgeschlossen haben, geben Sie exit ein, um sich von der Administrator-Workstation abzumelden.
Führen Sie den folgenden Befehl auf Ihrem lokalen Computer aus, um den kubeconfig-Eintrag abzurufen, der über das Connect-Gateway auf den Cluster zugreifen kann:
gcloud container fleet memberships get-credentials ADMIN_CLUSTER_NAME
Die Ausgabe sieht in etwa so aus:
Starting to build Gateway kubeconfig... Current project_id: PROJECT_ID A new kubeconfig entry "connectgateway_PROJECT_ID_global_ADMIN_CLUSTER_NAME" has been generated and set as the current context.
Sie können jetzt
kubectl
-Befehle über das Verbindungsgateway ausführen:kubectl get nodes
Die Ausgabe sieht in etwa so aus:
NAME STATUS ROLES AGE VERSION abm-admin-cluster-cp Ready control-plane,master 94m v1.24.2-gke.1900
Wenn der Administratorcluster durch das Skript erstellt wurde, führen Sie den folgenden Befehl aus, um den Cluster bei der GKE On-Prem API zu registrieren:
gcloud container bare-metal admin-clusters enroll ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --admin-cluster-membership=projects/PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME \ --location=ON_PREM_API_REGION
Wenn Sie den Cluster erstellt haben, wird er automatisch in der GKE On-Prem API registriert.
Nutzercluster erstellen
Als das Skript die L2-VXLAN für die VMs erstellt hat, wurden die folgenden IP-Adressen im 10.200.0.0/24
-Netzwerk zugewiesen. Sie verwenden diese IP-Adressen, wenn Sie die Netzwerk- und Knotenpooleinstellungen für den Nutzercluster konfigurieren.
VM-Name | Netzwerk-IP-Adresse | Knotenbeschreibung |
---|---|---|
abm-admin-cluster-cp1 | 10.200.0.3 | Knoten der Steuerungsebene für den Administratorcluster |
abm-user-cluster-cp1 | 10.200.0.4 | Knoten der Steuerungsebene für den Nutzercluster |
abm-user-cluster-w1 | 10.200.0.5 | Worker-Knoten für den Nutzercluster |
abm-user-cluster-w2 | 10.200.0.6 | Einen weiteren Worker-Knoten für den Nutzercluster |
Sie können den Nutzercluster mit der Google Cloud Console, der Google Cloud CLI oder Terraform erstellen.
Console
Führen Sie die folgenden Schritte aus, um einen Nutzercluster in der Console zu erstellen:
Rufen Sie in der Console die Seite GKE on Bare Metal-Cluster erstellen auf.
Achten Sie darauf, dass das Google Cloud-Projekt ausgewählt ist, in dem Sie den Administratorcluster erstellt haben.
Klicken Sie auf Cluster erstellen.
Klicken Sie im Dialogfeld auf Lokal.
Klicken Sie neben Bare Metal auf Konfigurieren. Die Seite Voraussetzungen wird angezeigt.
Wählen Sie unter Clustertyp auswählen die Option Nutzercluster für einen vorhandenen Administratorcluster erstellen aus.
Klicken Sie auf Next (Weiter).
Clustergrundlagen
Geben Sie einen Namen für den Nutzercluster ein oder verwenden Sie den Standardnamen.
Prüfen Sie, ob der neu erstellte Administratorcluster ausgewählt ist. Für die restlichen Einstellungen auf dieser Seite können Sie die Standardeinstellungen verwenden.
Klicken Sie in der linken Navigationsleiste auf Netzwerk.
Netzwerk
Geben Sie im Abschnitt Steuerungsebene Folgendes in das Feld Knoten-IP-Adresse 1 der Steuerungsebene ein:
10.200.0.4
Dies ist die IP-Adresse der VM „abm-user-cluster-cp1“ im VXLAN, das vom Skript erstellt wurde.
Verwenden Sie im Abschnitt Load-Balancer den Standard-Load-Balancer Bundled with MetalLB.
Geben Sie im Abschnitt Neuer Adresspool im Feld IP-Adressbereich 1 den folgenden IP-Adressbereich ein:
10.200.0.51-10.200.0.70
Klicken Sie auf Fertig.
Geben Sie im Bereich Virtuelle IP-Adressen die folgende IP-Adresse in das Feld VIP der Steuerungsebene ein:
10.200.0.50
Geben Sie die folgende IP-Adresse als VIP für eingehenden Traffic ein:
10.200.0.51
Verwenden Sie die Standard-IP-Adressen im Abschnitt Dienst- und Pod-CIDRs.
Klicken Sie in der linken Navigationsleiste auf Standardpool.
Knotenpool erstellen
Der Cluster muss mindestens einen Knotenpool für Worker-Knoten haben. Ein Knotenpool ist eine Vorlage für die Gruppen von Worker-Knoten, die in diesem Cluster erstellt werden.
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“ in der vom Skript erstellten VXLAN.
Cluster erstellen
Klicken Sie auf Bestätigen und erstellen, um den Nutzercluster zu erstellen.
Das Erstellen des Nutzerclusters dauert mindestens 15 Minuten. Die Konsole zeigt Statusmeldungen an, während die Einstellungen überprüft und der Cluster erstellt wird.
Wenn ein Problem mit der Konfiguration auftritt, wird in der Console eine Fehlermeldung angezeigt, die klar genug verständlich ist, damit Sie das Konfigurationsproblem beheben und noch einmal versuchen können, den Cluster zu erstellen.
Wenn Sie zusätzliche Informationen zum Erstellungsprozess sehen möchten, klicken Sie auf Details anzeigen, um eine Seitenleiste einzublenden. Klicken Sie auf
, um den Detailbereich zu schließen.Nachdem der Cluster erstellt wurde, wird er als Clusterstatus: wird ausgeführt angezeigt.
Klicken Sie nach dem Erstellen des Clusters auf
Cluster, um zur Seite Cluster zurückzukehren.
gcloud-CLI
Mit dem folgenden Befehl erstellen Sie einen Nutzercluster:
gcloud container bare-metal clusters create
Nachdem Sie den Cluster erstellt haben, müssen Sie mit dem folgenden Befehl mindestens einen Knotenpool erstellen:
gcloud container bare-metal node-pools create
So erstellen Sie den Nutzercluster:
Achten Sie darauf, dass die zuvor definierten Umgebungsvariablen die richtigen Werte haben. Im Beispielbefehl werden zwar Platzhalter verwendet, diese müssen aber den Umgebungsvariablen entsprechen, die im Skript verwendet wurden.
echo $PROJECT_ID echo $ADMIN_CLUSTER_NAME echo $ON_PREM_API_REGION echo $BMCTL_VERSION
Führen Sie den folgenden Befehl aus, um den Nutzercluster zu erstellen. Ersetzen Sie dabei Folgendes:
USER_CLUSTER_NAME
: Der Name des Clusters.Achten Sie darauf, dass
--admin-users
auf die E-Mail-Adresse festgelegt ist, die mit Ihrem Google-Konto verknüpft ist, damit Sie den Cluster verwalten können.
Die restlichen Flag-Werte wurden bereits für Sie ausgefüllt. Scrollen Sie bei Bedarf, um zu prüfen, ob das Flag
--admin-cluster-membership
den richtigen Wert für den Namen des Administratorclusters hat. Das ist das letzte Segment im vollständig angegebenen Mitgliedschaftsnamen.gcloud container bare-metal clusters create USER_CLUSTER_NAME \ --project=PROJECT_ID \ --admin-cluster-membership=projects/PROJECT_ID/locations/global/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
In der folgenden Liste werden die Flags beschrieben:
--project
: Die ID des Projekts, in dem der Nutzercluster registriert wird. Dieses Projekt wird als Flotten-Hostprojekt bezeichnet.--admin-cluster-membership
: Der vollständig angegebene Name des Administratorclusters, der den Administratorcluster in der Flotte identifiziert.--location
: Die Google Cloud-Region, in der die GKE On-Prem API ausgeführt wird und ihre Metadaten speichert.--version
: Die GKE on Bare Metal-Version.--admin-users
: Geben Sie Ihre E-Mail-Adresse an, damit die Richtlinien für die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) von Kubernetes gewährt werden, die Ihnen vollständigen Administratorzugriff auf den Cluster gewährt.--metal-lb-address-pools
: Die Adresspoolkonfiguration für den gebündelten MetalLB-Load-Balancer. Der IP-Adressbereich muss sich im10.200.0.0/24
-Netzwerk befinden, das vom Skript erstellt wurde. Der Adressbereich darf nicht die IP-Adressen enthalten, die den VMs oder der VIP der Steuerungsebene zugewiesen sind. Beachten Sie jedoch, dass sich die virtuelle IP-Adresse für eingehenden Traffic in diesem Adressbereich befinden muss.--control-plane-node-configs
: Die Knotenkonfiguration der Steuerungsebene für den Nutzercluster. Der Wert fürnode-ip
ist10.200.0.4
. Dies ist die IP-Adresse, die das Skript der VMabm-user-cluster-cp1
zugewiesen hat.--control-plane-vip
: Die virtuelle IP-Adresse für die Steuerungsebene. Der Wert10.200.0.50
befindet sich im10.200.0.0/24
-Netzwerk, das das Skript erstellt hat, überschneidet sich jedoch nicht mit dem IP-Adressbereich, der für die Adresspools des MetalLB-Load-Balancers verwendet wird.--control-plane-load-balancer-port
: Der Port, über den der Load-Balancer die Steuerungsebene bedient. Sie können zwar einen anderen Wert konfigurieren, aber Port443
ist der Standardport für HTTPS-Verbindungen.--ingress-vip
: Die virtuelle IP-Adresse für den Ingress-Dienst. Diese IP-Adresse muss sich in dem IP-Adressbereich befinden, der für die MetalLB-Load-Balancer-Adresspools verwendet wird.--island-mode-service-address-cidr-blocks
: Ein Bereich von IP-Adressen im CIDR-Format, der für Dienste im Nutzercluster verwendet wird. In dem Beispielbefehl wurde10.96.0.0/20
verwendet. Dies ist der Standardwert, der von der Konsole bereitgestellt wird. Der CIDR-Bereich muss zwischen /24 und /12 liegen, wobei /12 die meisten IP-Adressen bietet. Wir empfehlen die Verwendung eines Bereichs im IP-Adressbereich für private Internets, wie in RFC 1918 definiert.--island-mode-pod-address-cidr-blocks
: Ein Bereich von IP-Adressen im CIDR-Format, der für Pods im Nutzercluster verwendet wird. In dem Beispielbefehl wurde192.168.0.0/16
verwendet. Dies ist der Standardwert, der von der Konsole bereitgestellt wird. Der CIDR-Bereich muss zwischen /18 und /8 liegen, wobei /8 die meisten IP-Adressen bietet. Wir empfehlen die Verwendung eines Bereichs im IP-Adressbereich für private Internets, wie in RFC 1918 definiert.--lvp-share-path
: Dies ist der Pfad zum Hostcomputer, in dem Unterverzeichnisse erstellt werden können. Für jedes Unterverzeichnis wird ein lokales nichtflüchtiges Volume (PV) erstellt.--lvp-share-storage-class
: Dies ist die Speicherklasse, die zum Erstellen nichtflüchtiger Volumes verwendet wird. Die StorageClass wird während der Clustererstellung erstellt.--lvp-node-mounts-config-path
: Dies ist der Pfad zum Hostcomputer, in dem bereitgestellte Laufwerke erkannt werden können. Für jede Bereitstellung wird ein lokales nichtflüchtiges Volume (PV) erstellt.--lvp-node-mounts-config-storage
: Die Speicherklasse, mit der PVs während der Clustererstellung erstellt werden.
Nachdem Sie den Befehl ausgeführt haben, sehen Sie eine Ausgabe wie die folgende:
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
der OPERATION_ID
des Vorgangs mit langer Ausführungszeit.
Kopieren Sie den OPERATION_ID
aus der Ausgabe in den folgenden Befehl, um den Status des Vorgangs zu ermitteln. Öffnen Sie ein anderes Terminalfenster und führen Sie den Befehl aus.
gcloud container bare-metal operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION
Das Erstellen des Clusters dauert etwa 15 Minuten oder länger. Während der Cluster erstellt wird, können Sie den vorherigen Befehl hin und wieder ausführen, um den aktuellen Status abzurufen.
Wenn der Cluster erstellt wurde, sehen Sie in etwa folgende Ausgabe:
Created Anthos cluster on bare metal [https://gkeonprem.googleapis.com/v1/projects/PROJECT_ID/locations/ON_PREM_API_REGION/bareMetalClusters/USER_CLUSTER_NAME].
Knotenpool erstellen
Nachdem der Cluster erfolgreich erstellt wurde, führen Sie den folgenden Befehl aus, um einen Knotenpool zu erstellen. Ersetzen Sie NODE_POOL_NAME
durch einen Namen für den Knotenpool und prüfen Sie, ob als Platzhalter für das Flag --cluster
weiterhin der Name des Nutzerclusters festgelegt ist.
gcloud container bare-metal node-pools create NODE_POOL_NAME \ --cluster=USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION \ --node-configs='node-ip=10.200.0.5'
-node-configs
: Dernode-ip
zugewiesene Wert ist die IP-Adresse der VM „abm-user-cluster-w1“ in der vom Skript erstellten VXLAN.
Nachdem Sie den Befehl ausgeführt haben, sehen Sie eine Ausgabe wie die folgende:
Waiting for operation [projects/PROJECT_ID/locations/ON_PREM_API_REGION/operations/operation-1678308682052-5f669b0d132cb-6ebd1c2c-816287a7] to complete...
Das Erstellen des Knotenpools dauert maximal 5 Minuten. Nachdem der Knotenpool erstellt wurde, sieht die Ausgabe in etwa so aus:
Created node pool in Anthos cluster on bare metal [https://gkeonprem.googleapis.com/v1/projects/PROJECT_ID/locations/ON_PREM_API_REGION/bareMetalClusters/USER_CLUSTER_NAME/bareMetalNodePools/NODE_POOL_NAME].
Andere Befehle für Nutzercluster
Neben dem Erstellen von Clustern können Sie auch andere gcloud CLI-Befehle ausführen, z. B.:
- So listen Sie Ihre Nutzercluster auf:
gcloud container bare-metal clusters list \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION
- So beschreiben Sie einen Nutzercluster:
gcloud container bare-metal clusters describe USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION
Weitere Informationen finden Sie unter gcloud container bare-metal Clusters.
Andere Knotenpoolbefehle
Neben dem Erstellen von Knotenpools können Sie auch andere gcloud CLI-Befehle ausführen, z. B.:
- So listen Sie Knotenpools auf:
gcloud container bare-metal node-pools list \ --cluster=USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION
- So beschreiben Sie einen Knotenpool:
gcloud container bare-metal node-pools describe NODE_POOL_NAME \ --cluster=USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION
Weitere Informationen finden Sie unter gcloud container bare-metal node-pools.
Terraform
Sie können das folgende grundlegende Konfigurationsbeispiel verwenden, um einen Nutzercluster mit einem gebündelten MetalLB-Load-Balancer zu erstellen. Weitere Informationen finden Sie in der Referenzdokumentation zu google_gkeonprem_bare_metal_cluster
.
Wechseln Sie in dem Verzeichnis, in das Sie
anthos-samples
geklont haben, in das Verzeichnis, in dem sich das Terraform-Beispiel befindet:cd anthos-samples/anthos-onprem-terraform/abm_user_cluster_metallb
Das Beispiel enthält eine Beispielvariablendatei, die an
main.tf
übergeben wird.Erstellen Sie eine Kopie der Datei
terraform.tfvars.sample
:cp terraform.tfvars.sample terraform.tfvars
Ändern Sie die Parameterwerte in
terraform.tfvars
und speichern Sie die Datei.In der folgenden Liste werden die Variablen beschrieben:
project_id
: Die ID des Projekts, in dem der Nutzercluster registriert wird. Dieses Projekt wird als Flotten-Hostprojekt bezeichnet.region
: Die Google Cloud-Region, die Sie zu Beginn der Anleitung festgelegt haben. Führen Sieecho $ON_PREM_API_REGION
aus, um den Wert abzurufen.admin_cluster_name
: Der Name des Administratorclusters, den Sie zu Beginn dieser Anleitung festgelegt haben. Führen Sie echo$ADMIN_CLUSTER_NAME
aus, um den Wert abzurufen.bare_metal_version
: Die GKE on Bare Metal-Version für Ihren Nutzercluster. Wenn Sie dieselbe Version verwenden möchten, die Sie für den Administratorcluster verwendet haben, führen Sieecho $BMCTL_VERSION
aus, um den Wert abzurufen. Wenn Sie möchten, können Sie auch eine Version angeben, die nicht mehr als eine Nebenversion niedriger als die Version des Administratorclusters ist. Die Version des Nutzerclusters darf nicht höher als die Version des Administratorclusters sein.cluster_name
: Sie können entweder den Namen in der TVARS-Datei für den Nutzercluster verwenden oder einen Namen Ihrer Wahl angeben. Der Name kann nach dem Erstellen des Clusters nicht mehr geändert werden.admin_user_emails
: Eine Liste der E-Mail-Adressen der Nutzer, denen Administratorberechtigungen für den Cluster gewährt werden sollen. Fügen Sie unbedingt Ihre E-Mail-Adresse hinzu, damit Sie den Cluster verwalten können.Wenn der Cluster erstellt wird, wendet die GKE On-Prem API die Richtlinien für die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) von Kubernetes auf den Cluster an, um den Administratoren die Kubernetes-Rolle
clusterrole/cluster-admin
zu gewähren. Diese gewährt vollständigen Zugriff auf jede Ressource im Cluster in allen Namespaces. Dadurch können sich Nutzer auch mit ihrer Google-Identität in der Console anmelden.
Verwenden Sie für die verbleibenden Variablen die in
terraform.tvars
definierten Standardwerte. Das Skript hat diese Werte beim Erstellen der VMs und des Administratorclusters verwendet.control_plane_ips
: Eine Liste mit einer oder mehreren IPv4-Adressen für die Knoten der Steuerungsebene. Verwenden Sie den Standardwert. Das ist die IP-Adresse, die das Skript der VMabm-user-cluster-cp1
zugewiesen hat.worker_node_ips
: Eine Liste mit einer oder mehreren IPv4-Adressen für die Worker-Knotenmaschinen. Verwenden Sie die Standardwerte, also die IP-Adressen, die das Skript den VMsabm-user-cluster-w1
undabm-user-cluster-w2
zugewiesen hat.control_plane_vip
: Die virtuelle IP (VIP) für die Steuerungsebene. Verwenden Sie den Standardwert10.200.0.50
, der sich im10.200.0.0/24
-Netzwerk befindet, das vom Skript erstellt wurde. Beachten Sie, dass sich diese IP-Adresse nicht mit dem IP-Adressbereich überschneidet, der für die Adresspools des MetalLB-Load-Balancers verwendet wird.ingress_vip
: Die virtuelle IP-Adresse, die auf dem Load-Balancer für den Ingress-Proxy konfiguriert werden soll. Verwenden Sie den Standardwert10.200.0.51
, der sich im10.200.0.0/24
-Netzwerk befindet, das vom Skript erstellt wurde. Beachten Sie, dass sich diese IP-Adresse im IP-Adressbereich befindet, der für die Adresspools des MetalLB-Load-Balancers verwendet wird.lb_address_pools
: Eine Liste von Zuordnungen, die die Adresspools für den MetalLB-Load-Balancer definieren. Verwenden Sie den Standardwert.
Speichern Sie die Änderungen in
terraform.tfvars
.Initialisieren und erstellen Sie den Terraform-Plan:
terraform init
Terraform installiert alle erforderlichen Bibliotheken, z. B. den Google Cloud-Anbieter.
Überprüfen Sie die Konfiguration und nehmen Sie bei Bedarf Änderungen vor:
terraform plan
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 ansehen.
Verbindung zum Nutzercluster herstellen
Wenn Sie einen Nutzercluster mit der Console oder der gcloud CLI erstellen, wird der Cluster mit denselben Kubernetes-Richtlinien für die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) konfiguriert, die Sie bei der Ausführung von gcloud container fleet memberships generate-gateway-rbac
für den Administratorcluster konfiguriert haben.
Mit diesen RBAC-Richtlinien können Sie eine Verbindung zum Cluster über Ihre Google Cloud-Identität herstellen. Dies ist die mit Ihrem Google Cloud-Konto verknüpfte E-Mail-Adresse. Mit diesen RBAC-Richtlinien können Sie sich ohne zusätzliche Konfiguration in der Console anmelden.
Stellen Sie in der Console eine Verbindung zum Cluster her
Wenn Sie den Nutzercluster mit der gcloud CLI oder Terraform erstellt haben, rufen Sie in der Console die Seite GKE-Cluster auf:
Achten Sie darauf, dass das Projekt ausgewählt ist, in dem Sie den Nutzercluster erstellt haben. In der Liste sollten sowohl der Administrator- als auch der Nutzercluster angezeigt werden.
Beachten Sie, dass für den Nutzercluster in der Spalte Typ der Eintrag Bare Metal: Nutzer angezeigt wird. Dies weist darauf hin, dass der Cluster von der GKE On-Prem API verwaltet wird.
Wenn Sie das Skript zum Erstellen des Administratorclusters verwendet haben, wird in der Spalte Typ der Eintrag Extern angezeigt. Dies weist darauf hin, dass der Cluster nicht von der GKE On-Prem API verwaltet wird. Sie können den Administratorcluster so konfigurieren, dass er von der GKE On-Prem API verwaltet wird, nachdem der Cluster erstellt wurde.
So melden Sie sich bei einem Cluster an:
Klicken Sie auf den Link für den Clusternamen und dann in der Seitenleiste auf Login (Anmelden).
Mit Google-Identität anmelden auswählen
Klicken Sie auf Anmelden.
Wiederholen Sie dieselben Schritte, um sich auch beim Administratorcluster anzumelden.
Verbindung zum Cluster über die Befehlszeile herstellen
Die GKE On-Prem API konfiguriert die RBAC-Richtlinien für Sie als Ersteller des Nutzerclusters. Mit diesen Richtlinien können Sie kubectl
-Befehle auf Ihrem lokalen Desktop über das Verbindungsgateway kubeconfig
ausführen.
Auf dem lokalen Computer:
Rufen Sie den Eintrag
kubeconfig
ab, der über das Verbindungsgateway auf den Cluster zugreifen kann.gcloud container fleet memberships get-credentials USER_CLUSTER_NAME
Die Ausgabe sieht in etwa so aus:
Starting to build Gateway kubeconfig... Current project_id: PROJECT_ID A new kubeconfig entry "connectgateway_PROJECT_ID_global_USER_CLUSTER_NAME" has been generated and set as the current context.
Sie können jetzt
kubectl
-Befehle über das Verbindungsgateway ausführen:kubectl get nodes
Die Ausgabe sieht in etwa so aus:
NAME STATUS ROLES AGE VERSION abm-user-cluster-cp Ready control-plane,master 14m v1.24.2-gke.1900 abm-user-cluster-w1 Ready worker 8m28s v1.24.2-gke.1900
Weiteren Knotenpool zum Nutzercluster hinzufügen
Console
Rufen Sie in der Console die Seite GKE-Cluster auf.
Klicken Sie in der Clusterliste auf den Namen des Clusters und dann im Bereich Details auf Weitere Details.
Klicken Sie auf den Tab Knoten.
Klicken Sie auf Knotenpool hinzufügen
.Geben Sie einen Namen für den Knotenpool ein.
Geben Sie im Feld Knotenadresse 1 die folgende IP-Adresse ein:
10.200.0.6
Dies ist die IP-Adresse der VM „abm-user-cluster-w2“, die vom Skript erstellt wurde.
Klicke auf Erstellen.
Klicken Sie bei Bedarf noch einmal auf den Tab Knoten.
Der neue Knotenpool zeigt den Status Abgleich an.
Klicken Sie rechts oben auf
, um den Status der Knotenpoolerstellung anzusehen. Möglicherweise müssen Sie die Seite aktualisieren, um den aktualisierten Status in der Liste der Knotenpools zu sehen.
gcloud-CLI
Führen Sie den folgenden Befehl aus, um einen weiteren Knotenpool zu erstellen. Ersetzen Sie NODE_POOL_NAME_2
durch einen Namen für den Knotenpool und achten Sie darauf, dass der Platzhalter für das Flag --cluster
weiterhin auf den Namen des Nutzerclusters festgelegt ist.
gcloud container bare-metal node-pools create NODE_POOL_NAME_2 \ --cluster=USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION \ --node-configs='node-ip=10.200.0.6'
-node-configs
: Dernode-ip
zugewiesene Wert ist die IP-Adresse der VM „abm-user-cluster-w2“ im VXLAN, die vom Skript erstellt wurde.
Terraform
Wenn Sie den Cluster mit Terraform erstellt haben, enthält er zwei Knoten, sodass im VXLAN keine zusätzlichen VMs zum Hinzufügen eines weiteren Knotens verfügbar sind. Informationen zum Hinzufügen von Knotenpools finden Sie in der Referenzdokumentation zu google_gkeonprem_bare_metal_cluster
.
Sie können den neuen Knoten auch mit kubectl
prüfen. Sie müssen zuerst den Befehl gcloud container fleet memberships get-credentials
wie oben gezeigt ausführen, um die Clusterkonfiguration abzurufen:
kubectl get nodes
Die Ausgabe sieht in etwa so aus:
NAME STATUS ROLES AGE VERSION
abm-user-cluster-cp Ready control-plane,master 24m v1.24.2-gke.1900
abm-user-cluster-w1 Ready worker 18m v1.24.2-gke.1900
abm-user-cluster-w2 Ready worker 52s v1.24.2-gke.1900
Bereinigen
Die folgenden Abschnitte enthalten Anweisungen zum Entfernen der Cluster und VMs, die Sie mit dieser Anleitung erstellt haben.
Nutzercluster löschen
Console
Rufen Sie in der Console die Seite GKE-Cluster auf.
Klicken Sie in der Liste der Cluster auf den Nutzercluster.
Klicken Sie im Steuerfeld Details auf Weitere Details.
Klicken Sie oben im Fenster auf
Löschen.Wenn Sie zur Bestätigung aufgefordert werden, geben Sie den Clusternamen ein und klicken Sie auf Bestätigen.
Klicken Sie rechts oben auf
, um den Status des Löschvorgangs anzusehen. 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 USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION \ --force
Mit dem Flag --force
können Sie einen Cluster mit Knotenpools löschen.
Ohne das Flag --force
müssen Sie zuerst die Knotenpools löschen und dann den Cluster löschen.
Informationen zu anderen Flags finden Sie unter gcloud container bare-metal Clusters delete.
Terraform
Führen Sie dazu diesen Befehl aus:
terraform destroy
Warten Sie, bis der Nutzercluster gelöscht ist, bevor Sie den Administratorcluster und die VMs löschen.
Administratorcluster und VMs löschen
Heben Sie die Registrierung des Administratorclusters von der GKE On-Prem API auf:
gcloud container bare-metal admin-clusters unenroll ADMIN_CLUSTER_NAME \ --project=PROJECT_ID \ --location=ON_PREM_API_REGION
Stellen Sie eine Verbindung zur Administrator-Workstation her:
gcloud compute ssh root@abm-ws --zone ZONE
Löschen Sie den Administratorcluster:
bmctl reset -c ADMIN_CLUSTER_NAME
bmctl
hebt die Registrierung des Clusters bei der Flotte auf und löscht den Cluster dann. Warten Sie, bis der Cluster gelöscht ist, bevor Sie die VMs löschen.Beenden Sie die Administrator-Workstation.
Listen Sie alle VMs auf, deren Name
abm
enthält:gcloud compute instances list | grep 'abm'
Prüfen Sie, ob Sie alle VMs löschen können, deren Namen
abm
enthält.Nach der Bestätigung können Sie
abm
-VMs mit dem folgenden Befehl löschen:gcloud compute instances list --format="value(name)" | \ grep 'abm' | \ xargs gcloud --quiet compute instances delete --zone ZONE
Löschen Sie das Dienstkonto:
gcloud iam service-accounts delete baremetal-gcr@PROJECT_ID.iam.gserviceaccount.com
Geben Sie in der Bestätigungsaufforderung y ein.
Nächste Schritte