Diese Seite ist der zweite Teil eines Leitfadens, der Sie durch die Verwendung der Google Distributed Cloud-Software (früher Google Distributed Cloud Virtual) zum Erstellen einer kleinen Proof-of-Concept-Installation von GKE-Clustern auf Ihrer Bare-Metal-Hardware führt. Im ersten Teil, Minimale Infrastruktur einrichten, erfahren Sie, wie Sie Ihre Hardware einrichten, IP-Adressen planen und die erforderliche Google Cloud-Infrastruktur einrichten. Dieses Dokument baut auf der Einrichtung und Planung aus dem vorherigen Abschnitt auf und zeigt Ihnen, wie Sie einen Administrator- und einen Nutzercluster erstellen. Sie können dann mit Dienst und Ingress erstellen fortfahren.
Diese Anleitung hilft Ihnen beim Erstellen einer minimalen Google Distributed Cloud-Installation. Diese minimale Installation ist für Ihre tatsächlichen Produktionsanforderungen und Anwendungsfälle möglicherweise nicht geeignet. Informationen zu Produktionsinstallationen finden Sie in den Installationsanleitungen.
Hinweise
Sie müssen Hardware eingerichtet und Ihre IP-Adressen geplant haben, wie im vorigen Teil dieses Leitfadens Minimale Infrastruktur einrichten beschrieben. Alternativ können Sie den Netzwerkanforderungsplaner in der Google Cloud Console unter GKE on Bare Metal-Administratorcluster erstellen im Abschnitt Voraussetzungen verwenden.
Wenn Sie den Nutzercluster mit Terraform erstellen möchten, benötigen Sie Terraform entweder auf Ihrer Administratorworkstation oder auf einem anderen Computer.
Achten Sie darauf, dass die neuesten Google Cloud CLI-Komponenten installiert sind:
gcloud components update
Führen Sie die folgenden Schritte aus, um die GKE On-Prem API zu aktivieren und zu verwenden:
Aktivieren Sie die API in Ihrem Projekt:
gcloud services enable \ --project PROJECT_ID \ gkeonprem.googleapis.com
Ersetzen Sie
PROJECT_ID
durch die Projekt-ID Ihres Flotten-Hostprojekts.Wenn der Fehler
PERMISSION_DENIED
angezeigt wird, prüfen Sie noch einmal die eingegebene Projekt-ID. Wenn die Projekt-ID korrekt ist, führen Siegcloud auth login
aus, um sich in der Google Cloud CLI mit dem Konto anzumelden, das Zugriff auf das Projekt hat.Wenn Sie die GKE On-Prem API zum ersten Mal in Ihrem Projekt aktiviert haben, müssen Sie die API initialisieren. Dazu rufen Sie einen gcloud CLI-Befehl auf, der verfügbare Versionen anzeigt, mit denen Sie einen Cluster erstellen können:
gcloud container bare-metal clusters query-version-config \ --project=PROJECT_ID \ --location="us-central1"
Verfahrensübersicht
Die Erstellung grundlegender Cluster umfasst im Wesentlichen die folgenden Schritte:
Sammeln Sie Informationen, die zur Angabe der Konfiguration Ihrer Cluster verwendet werden.
Erstellen Sie einen Administratorcluster zum Verwalten des Nutzerclusters.
Erstellen Sie einen Nutzercluster, auf dem Ihre Arbeitslasten ausgeführt werden können.
1. Informationen einholen
Verwenden Sie die Informationen, die Sie unter Minimale Infrastruktur einrichten oder aus dem Netzwerkplaner vorbereitet haben, um die einzelnen Platzhalter in der folgenden Tabelle auszufüllen. Die Platzhalter entsprechen Feldwerten in den Clusterkonfigurationsdateien für die Mindestinstallation eines Administratorclusters und eines Nutzerclusters. Einige Platzhalter sind auf die vorausgefüllten Werte aus der generierten Clusterkonfigurationsdatei festgelegt, aber alle Platzhalter können bearbeitet werden.
Grundlegende Clusterinformationen | |
Der Name des Administratorclusters, den Sie erstellen. Der Speicherort und die Benennung von Clusterartefakten auf der Administratorworkstation basieren auf dem Clusternamen. Der Cluster-Namespace wird vom Clusternamen abgeleitet. | ADMIN_CLUSTER_NAME |
Der Name des Nutzerclusters, den Sie erstellen. Der Speicherort und die Benennung von Clusterartefakten auf der Administratorworkstation basieren auf dem Clusternamen. Der Cluster-Namespace wird vom Clusternamen abgeleitet. | USER_CLUSTER_NAME |
Die Version von bmctl , die Sie im ersten Teil dieses Leitfadens heruntergeladen haben. |
CLUSTER_VERSION |
Kontoinformationen | |
Der Pfad zur privaten SSH-Schlüsseldatei auf Ihrer Administratorworkstation. Standardmäßig lautet der Pfad/home/USERNAME/.ssh/id_rsa . |
SSH_PRIVATE_KEY_PATH |
Die ID des Google Cloud-Projekts, das Sie zum Verbinden Ihres Clusters mit Google Cloud und zum Aufrufen von Logs und Messwerten verwenden möchten. Dieses Projekt wird auch als Flotten-Hostprojekt bezeichnet. | PROJECT_ID |
Die E-Mail-Adresse, die mit Ihrem Google Cloud-Konto verknüpft ist. Beispiel: alex@example.com . |
GOOGLE_ACCOUNT_EMAIL |
IP-Adressen der Knotenmaschinen | |
Eine IP-Adresse für den Knoten der Steuerungsebene des Administratorclusters. | ADMIN_CP_NODE_IP |
Eine IP-Adresse für den Knoten der Steuerungsebene des Nutzerclusters. | USER_CP_NODE_IP |
Eine IP-Adresse für den Worker-Knoten des Nutzerclusters. | USER_WORKER_NODE_IP |
Virtuelle IP-Adressen | |
VIP für den Kubernetes API-Server des Administratorclusters. | ADMIN_CP_VIP |
VIP für den Kubernetes API-Server des Nutzerclusters. | USER_CP_VIP |
Eine virtuelle IP-Adresse, die als externe Adresse für den Ingress-Proxy verwendet wird. | USER_INGRESS_VIP |
Bereich von zehn IP-Adressen zur Verwendung als externe IP-Adressen für Dienste vom Typ LoadBalancer. Beachten Sie, dass dieser Bereich die virtuelle IP-Adresse für eingehenden Traffic enthält, die von MetalLB benötigt wird. Keine anderen IP-Adressen dürfen diesen Bereich überlappen. | START_IP-END_IP |
Pod- und Dienst-CIDRs | |
Bereich von IP-Adressen in CIDR-Blockschreibweise zur Verwendung durch Pods im Administratorcluster. Der empfohlene Startwert, der in die generierte Clusterkonfigurationsdatei vorausgefüllt ist, ist 192.168.0.0/16 . |
192.168.0.0/16 |
Bereich von IP-Adressen in CIDR-Blockschreibweise zur Verwendung durch Dienste auf dem Administratorcluster. Der empfohlene Startwert, der in die generierte Clusterkonfigurationsdatei vorausgefüllt ist, ist 10.96.0.0/20 . |
10.96.0.0/20 |
Bereich von IP-Adressen in CIDR-Blockschreibweise zur Verwendung durch Pods im Nutzercluster. Der empfohlene Startwert, der in der generierten Clusterkonfigurationsdatei vorausgefüllt ist und in der Console der Standardwert ist, ist 192.168.0.0/16 . |
192.168.0.0/16 |
Bereich von IP-Adressen in CIDR-Blockschreibweise zur Verwendung durch Dienste im Nutzercluster. Der empfohlene Startwert, der in der generierten Clusterkonfigurationsdatei vorausgefüllt ist und in der Console der Standardwert ist, ist 10.96.0.0/20 . |
10.96.0.0/20 |
2. Administratorcluster erstellen
Mit den folgenden Schritten erstellen Sie einen Administratorcluster für eine minimale Installation von Administrator- und Nutzerclustern. Bevor Sie fortfahren, müssen Sie im vorangegangenen Abschnitt Informationen erfassen Werte für jeden Platzhalter in der Tabelle angegeben haben.
Wenn die GKE On-Prem API (gkeonprem.googleapis.com
) für Ihr Projekt aktiviert ist, werden neu erstellte Cluster automatisch bei der API registriert.
Die Registrierung erfolgt auch, wenn spec.gkeOnPremAPI
in der Clusterkonfigurationsdatei nicht angegeben ist. Wenn Sie sich bei dieser von Google Cloud gehosteten API registrieren, können Sie den Lebenszyklus Ihres Clusters mithilfe der Google Cloud Console oder der gcloud CLI verwalten.
Zum Deaktivieren der automatischen Registrierung entfernen Sie die Kommentarzeichen im Abschnitt spec.gkeOnPremAPI
in der Clusterkonfigurationsdatei und setzen Sie spec.gkeOnPremAPI.enabled
auf false
, bevor Sie den Cluster erstellen. Das Feld spec.gkeOnPremAPI.enabled
ist änderbar, sodass Sie die Registrierung eines Clusters jederzeit aufheben können, nachdem er erstellt wurde.
So erstellen Sie einen Administratorcluster für die Mindestinstallation:
Legen Sie mit dem folgenden Befehl die Standardanmeldedaten fest, die Google Distributed Cloud zum Erstellen des Clusters verwenden kann:
gcloud auth application-default login
Führen Sie zum Generieren einer Clusterkonfigurationsdatei den folgenden Befehl im Verzeichnis
/baremetal
auf Ihrer Administratorworkstation aus:bmctl create config -c ADMIN_CLUSTER_NAME \ --enable-apis --create-service-accounts --project-id=PROJECT_ID
Prüfen Sie die Konfigurationsdatei des Administratorclusters:
Die folgende Clusterkonfigurationsdatei wird mit den Werten gefüllt, die Sie im vorherigen Abschnitt in die Planungstabelle eingegeben haben. Zusätzlich zu den eingegebenen Werten müssen Sie folgende Unterschiede zur generierten Konfigurationsdatei beachten:
- Aus diesem Beispiel wurden Kommentare zur besseren Lesbarkeit entfernt.
- Die Spezifikation
NodePool
wurde entfernt. Worker-Knoten sind für einen Administratorcluster nicht zulässig.
gcrKeyPath: bmctl-workspace/.sa-keys/PROJECT_ID-anthos-baremetal-gcr.json sshPrivateKeyPath: SSH_PRIVATE_KEY_PATH gkeConnectAgentServiceAccountKeyPath: bmctl-workspace/.sa-keys/PROJECT_ID-anthos-baremetal-connect.json gkeConnectRegisterServiceAccountKeyPath: bmctl-workspace/.sa-keys/PROJECT_ID-anthos-baremetal-register.json cloudOperationsServiceAccountKeyPath: bmctl-workspace/.sa-keys/PROJECT_ID-anthos-baremetal-cloud-ops.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: CLUSTER_VERSION gkeConnect: projectID: PROJECT_ID controlPlane: nodePoolSpec: nodes: - address: ADMIN_CP_NODE_IP clusterNetwork: pods: cidrBlocks: - 192.168.0.0/16 services: cidrBlocks: - 10.96.0.0/20 loadBalancer: mode: bundled ports: controlPlaneLBPort: 443 vips: controlPlaneVIP: ADMIN_CP_VIP 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: 250 # GKEOnPremAPI (Optional) Specify if you wish to explicitly enable/disable the cloud hosted gkeonprem # API to enable/disable cluster lifecycle management from gcloud UI and Terraform. # gkeOnPremAPI: # enabled: false # location is the Cloud location for the cluster resource metadata where the cluster will be enrolled. # location: us-central1
Ersetzen Sie den Inhalt der generierten Konfigurationsdatei auf Ihrer Administrator-Workstation durch den Inhalt 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 vorherigen Schritt verifiziert haben.Führen Sie zum Erstellen des Administratorclusters den folgenden Befehl im Verzeichnis
/baremetal
auf Ihrer Administratorworkstation aus:bmctl create cluster -c ADMIN_CLUSTER_NAME
Der Befehl
bmctl
zeigt die Ausgabe auf dem Bildschirm an, während Preflight-Prüfungen ausgeführt und der Cluster erstellt wird. Ausführliche Informationen werden in Logs im Ordnerbaremetal/bmctl-workspace/ADMIN_CLUSTER_NAME/log
auf der Administratorworkstation geschrieben.Die Erstellung eines Clusters kann einige Minuten dauern.
Prüfen Sie, ob der Cluster erstellt wurde und ausgeführt wird:
kubectl --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig \ get nodes
Wenn Ihr Cluster ausgeführt wird, sieht die Antwort in etwa so aus:
NAME STATUS ROLES AGE VERSION node-01 Ready control-plane 16h v1.25.7-gke.1000
Führen Sie den folgenden
gcloud
-Befehl aus, um Ihrem Nutzerkonto die Kubernetes-Rolleclusterrole/cluster-admin
für den Cluster zu gewähren:gcloud container fleet memberships generate-gateway-rbac \ --membership=ADMIN_CLUSTER_NAME \ --role=clusterrole/cluster-admin \ --users=GOOGLE_ACCOUNT_EMAIL \ --project=PROJECT_ID \ --kubeconfig=bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig \ --context=ADMIN_CLUSTER_NAME-admin@ADMIN_CLUSTER_NAME \ --apply
Die Ausgabe dieses Befehls sieht in etwa so aus, dass er zur besseren Lesbarkeit abgeschnitten wird:
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/<var class="edit"scope="ADMIN_CLUSTER_NAME">ADMIN_CLUSTER_NAME</var>/<var class="edit"scope="ADMIN_CLUSTER_NAME">ADMIN_CLUSTER_NAME</var>-kubeconfig, context: <var class="edit"scope="ADMIN_CLUSTER_NAME">ADMIN_CLUSTER_NAME</var>-admin@<var class="edit"scope="ADMIN_CLUSTER_NAME">ADMIN_CLUSTER_NAME</var> Writing RBAC policy for user: GOOGLE_ACCOUNT_EMAIL to cluster. Successfully applied the RBAC policy to cluster.
Mit der RBAC-Richtlinie können Sie sich unter anderem in der Google Cloud Console bei Ihrem Cluster anmelden, um weitere Clusterdetails zu sehen.
3. Nutzercluster erstellen
Mit den folgenden Schritten erstellen Sie einen Nutzercluster für eine minimale Installation von Administrator- und Nutzerclustern. Prüfen Sie, bevor Sie fortfahren, ob Sie im Abschnitt Informationen erfassen Werte für jeden Platzhalter in der Tabelle angegeben haben.
So erstellen Sie einen Nutzercluster für die Mindestinstallation:
bmctl
Wenn die GKE On-Prem API (gkeonprem.googleapis.com
) für Ihr Projekt aktiviert ist, werden neu erstellte Cluster automatisch bei der API registriert.
Die Registrierung erfolgt auch, wenn spec.gkeOnPremAPI
in der Clusterkonfigurationsdatei nicht angegeben ist. Wenn Ihr Cluster bei dieser von Google Cloud gehosteten API registriert ist, können Sie den Clusterlebenszyklus mit der Google Cloud Console oder der gcloud CLI verwalten.
Zum Deaktivieren der automatischen Registrierung entfernen Sie die Kommentarzeichen im Abschnitt spec.gkeOnPremAPI
in der Clusterkonfigurationsdatei und setzen Sie spec.gkeOnPremAPI.enabled
auf false
, bevor Sie den Cluster erstellen. Das Feld spec.gkeOnPremAPI.enabled
kann geändert werden. Sie können den Cluster also jederzeit nach seiner Erstellung abmelden.
Generieren Sie eine Clusterkonfigurationsdatei:
bmctl create config -c USER_CLUSTER_NAME \ --project-id=PROJECT_ID
Prüfen Sie die Konfigurationsdatei des Nutzerclusters:
Die folgende Clusterkonfigurationsdatei wird mit den Werten gefüllt, die Sie zuvor in die Planungstabelle eingegeben haben. Zusätzlich zu den eingegebenen Werten gibt es folgende Unterschiede in der generierten Konfigurationsdatei:
- Aus diesem Beispiel wurden Kommentare zur besseren Lesbarkeit entfernt.
- Der Clustertyp
spec.type
wurde aufuser
festgelegt. - Das Feld
spec.clusterSecurity.authorization.clusterAdmin.gcpAccounts
wurde hinzugefügt, um Ihrem Konto dieclusterrole/cluster-admin
zu gewähren. Mit diesem Feld können Sie sich unter anderem in der Google Cloud Console bei Ihrem Cluster anmelden, um weitere Clusterdetails aufzurufen.
--- apiVersion: v1 kind: Namespace metadata: name: cluster-USER_CLUSTER_NAME --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: USER_CLUSTER_NAME namespace: cluster-USER_CLUSTER_NAME spec: type: user profile: default anthosBareMetalVersion: CLUSTER_VERSION gkeConnect: projectID: PROJECT_ID controlPlane: nodePoolSpec: nodes: - address: USER_CP_NODE_IP clusterNetwork: pods: cidrBlocks: - 192.168.0.0/16 services: cidrBlocks: - 10.96.0.0/20 loadBalancer: mode: bundled ports: controlPlaneLBPort: 443 vips: controlPlaneVIP: USER_CP_VIP ingressVIP: USER_INGRESS_VIP addressPools: - name: pool1 addresses: - START_IP-END_IP clusterOperations: projectID: PROJECT_ID location: us-central1 clusterSecurity: authorization: clusterAdmin: gcpAccounts: - GOOGLE_ACCOUNT_EMAIL storage: lvpNodeMounts: path: /mnt/localpv-disk storageClassName: local-disks lvpShare: path: /mnt/localpv-share storageClassName: local-shared numPVUnderSharedPath: 5 nodeConfig: podDensity: maxPodsPerNode: 250 # GKEOnPremAPI (Optional) Specify if you wish to explicitly enable/disable the cloud hosted gkeonprem # API to enable/disable cluster lifecycle management from gcloud UI and Terraform. # gkeOnPremAPI: # enabled: false # location is the Cloud location for the cluster resource metadata where the cluster will be enrolled. # location: us-central1 --- apiVersion: baremetal.cluster.gke.io/v1 kind: NodePool metadata: name: node-pool-1 namespace: cluster-USER_CLUSTER_NAME spec: clusterName: USER_CLUSTER_NAME nodes: - address: USER_WORKER_NODE_IP
Ersetzen Sie den Inhalt der generierten Konfigurationsdatei auf Ihrer Administrator-Workstation durch den Inhalt aus dem vorherigen Beispiel.
Öffnen Sie die generierte Datei
bmctl-workspace/USER_CLUSTER_NAME/USER_CLUSTER_NAME.yaml
und ersetzen Sie ihren Inhalt durch den Inhalt des Beispiels, das Sie im vorherigen Schritt verifiziert haben.Nutzercluster erstellen:
bmctl create cluster -c USER_CLUSTER_NAME \ --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
Der Befehl
bmctl
zeigt die Ausgabe auf dem Bildschirm an, während Preflight-Prüfungen ausgeführt und der Cluster erstellt wird. Ausführliche Informationen werden in Logs im Ordnerbaremetal/bmctl-workspace/USER_CLUSTER_NAME/log
auf der Administratorworkstation geschrieben.Die Erstellung eines Clusters kann einige Minuten dauern.
Prüfen Sie, ob der Cluster erstellt wurde und ausgeführt wird:
kubectl --kubeconfig bmctl-workspace/USER_CLUSTER_NAME/USER_CLUSTER_NAME-kubeconfig \ get nodes
Wenn Ihr Cluster ausgeführt wird, sieht die Antwort in etwa so aus:
NAME STATUS ROLES AGE VERSION nuc-3 Ready control-plane 4m32s v1.26.2-gke.1001 nuc-4 Ready worker 2m2s v1.26.2-gke.1001
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 in der Google Cloud-Projektliste
PROJECT_ID
ausgewählt ist.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 vorhandenen Administratorcluster erstellen aus.
Klicken Sie auf Weiter.
Clustergrundlagen
Geben Sie
USER_CLUSTER_NAME
als Namen des Nutzerclusters ein oder verwenden Sie den Standardwert.Achten Sie darauf, dass der neu erstellte Administratorcluster ausgewählt ist.
Wählen Sie unter GCP API-Standort die Option us-central1 aus.
Wählen Sie in der Google Distributed Cloud-Version
CLUSTER_VERSION
aus oder verwenden Sie den Standardwert. Für die restlichen Einstellungen auf dieser Seite können Sie die Standardeinstellungen verwenden.Klicken Sie in der linken Navigationsleiste auf Netzwerke.
Netzwerk
Geben Sie im Abschnitt Steuerungsebene Folgendes in das Feld IP 1 des Knotens der Steuerungsebene ein:
USER_CP_NODE_IP
Verwenden Sie im Abschnitt Load-Balancer den Standard-Load-Balancer Im Bundle mit MetalLB.
Wechseln Sie zum Bereich Neuer Adresspool. Geben Sie den IP-Adressbereich in das Feld IP-Adressbereich 1 ein:
10.200.0.51-10.200.0.70
Klicken Sie auf Fertig.
Geben Sie im Bereich Virtuelle IP-Adressen die IP-Adresse für die VIP der Steuerungsebene ein:
USER_CP_VIP
Geben Sie die IP-Adresse für die virtuelle IP-Adresse für eingehenden Traffic ein:
USER_INGRESS_VIP
Wenn Sie im Abschnitt Dienst- und Pod-CIDRs die Dienst- und Pod-CIDRs im Planer nicht geändert haben, können Sie die Standardwerte verwenden.
Wenn Sie die CIDRs geändert haben, geben Sie die gewünschten CIDRs ein:
- Dienst-CIDR:
10.96.0.0/20
- Pod-CIDR:
192.168.0.0/16
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 die IP-Adresse des Worker-Knotens des Nutzerclusters in das Feld Knotenadresse 1 ein:
USER_WORKER_NODE_IP
Cluster erstellen
Klicken Sie auf Verify and Create (Überprüfen 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 Konsole eine Fehlermeldung angezeigt, die deutlich genug sein sollte, damit Sie das Konfigurationsproblem beheben und noch einmal versuchen können, den Cluster zu erstellen.
Wenn Sie weitere Informationen zum Erstellungsvorgang sehen möchten, klicken Sie auf Details anzeigen, um eine Seitenleiste aufzurufen. Klicken Sie auf
, um den Detailbereich zu schließen.Beim Erstellen des Clusters wird Clusterstatus: wird ausgeführt angezeigt.
Klicken Sie nach dem Erstellen des Clusters auf
Cluster, um zur Seite Cluster zurückzukehren.
gcloud-CLI
In diesem Abschnitt erfahren Sie, wie Sie mit der gcloud CLI einen Nutzercluster und einen Knotenpool erstellen.
Führen Sie den folgenden Befehl aus, um einen Nutzercluster zu erstellen:
gcloud container bare-metal clusters create USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=us-central1 \ --admin-cluster-membership=ADMIN_CLUSTER_NAME \ --admin-cluster-membership-project=PROJECT_ID \ --admin-cluster-membership-location=global \ --version=CLUSTER_VERSION \ --admin-users=GOOGLE_ACCOUNT_EMAIL \ --island-mode-service-address-cidr-blocks=10.96.0.0/20 \ --island-mode-pod-address-cidr-blocks=192.168.0.0/16 \ --metal-lb-address-pools='pool=lb-pool-1,manual-assign=True,addresses=START_IP-END_IP' \ --control-plane-node-configs='node-ip=USER_CP_NODE_IP' \ --control-plane-vip=USER_CP_VIP \ --control-plane-load-balancer-port=443 \ --ingress-vip=USER_INGRESS_VIP \ --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
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
dieOPERATION_ID
des Vorgangs mit langer Ausführungszeit. Sie können den Status des Vorgangs mit dem folgenden Befehl ermitteln:gcloud container bare-metal operations describe OPERATION_ID \ --project=PROJECT_ID \ --location=us-central1
Das Erstellen des Clusters dauert etwa 15 Minuten. Während der Cluster erstellt wird, können Sie den vorherigen Befehl gelegentlich ausführen, um den aktuellen Status abzurufen.
Nachdem 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/us-central1/bareMetalClusters/USER_CLUSTER_NAME].
Nachdem der Cluster erstellt wurde, führen Sie den folgenden Befehl aus, um einen Knotenpool auf dem neu erstellten Cluster zu erstellen.
gcloud container bare-metal node-pools create node-pool-1 \ --cluster=USER_CLUSTER_NAME \ --project=PROJECT_ID \ --location=us-central1 \ --node-configs node-ip=USER_WORKER_NODE_IP
Weitere Informationen und Beispiele finden Sie hier:
Terraform
In diesem Abschnitt erfahren Sie, wie Sie mit Terraform einen Nutzercluster und einen Knotenpool erstellen.
Erstellen Sie ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung
.tf
haben. In dieser Anleitung heißt die Dateimain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
Prüfen Sie die Terraform-Ressource des Nutzerclusters:
Das folgende Beispiel für eine Terraform-Ressource enthält die Werte, die Sie im vorherigen Abschnitt in die Planungstabelle eingegeben haben.
resource "google_gkeonprem_bare_metal_cluster" "cluster-basic" { provider = google-beta name = "USER_CLUSTER_NAME" project = "PROJECT_ID" location = "us-central1" admin_cluster_membership = "projects/PROJECT_ID/locations/global/memberships/ADMIN_CLUSTER_NAME" bare_metal_version = "CLUSTER_VERSION" network_config { island_mode_cidr { service_address_cidr_blocks = ["10.96.0.0/20"] pod_address_cidr_blocks = ["192.168.0.0/16"] } } control_plane { control_plane_node_pool_config { node_pool_config { labels = {} operating_system = "LINUX" node_configs { labels = {} node_ip = "USER_CP_NODE_IP" } } } } load_balancer { port_config { control_plane_load_balancer_port = 443 } vip_config { control_plane_vip = "USER_CP_VIP" ingress_vip = "USER_INGRESS_VIP" } metal_lb_config { address_pools { pool = "pool1" addresses = [ "START_IP-END_IP" ] avoid_buggy_ips = true manual_assign = true } } } 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" } } security_config { authorization { admin_users { username = "GOOGLE_ACCOUNT_EMAIL" } } } } resource "google_gkeonprem_bare_metal_node_pool" "node-pool-default" { provider = google-beta name = "node-pool-1" bare_metal_cluster = google_gkeonprem_bare_metal_cluster.cluster-basic.name project = "PROJECT_ID" location = "us-central1" node_pool_config { operating_system = "LINUX" node_configs { node_ip = "USER_WORKER_NODE_IP" } } }
Kopieren Sie die Terraform-Ressource nach
main.tf
und speichern Sie die Datei.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
Geben Sie bei Aufforderung
yes
ein.Das Erstellen des einfachen Nutzerclusters und Knotenpools dauert etwa 15 Minuten (oder länger, je nach Netzwerk).
Führen Sie den folgenden Befehl auf der Administratorworkstation aus, um eine kubeconfig-Datei für den Nutzercluster zu erstellen:
bmctl get credentials --cluster USER_CLUSTER_NAME \ --admin-kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
In der Ausgabe des Befehls wird der Name der kubeconfig-Datei für den Nutzercluster angezeigt. Beispiel:
bmctl-workspace/USER_CLUSTER_NAME/USER_CLUSTER_NAME-TIMESTAMP-kubeconfig
TIMESTAMP
im Dateinamen gibt das Datum und die Uhrzeit an, zu der die Datei erstellt wurde.Da diese Datei Authentifizierungsdaten für den Cluster enthält, sollten Sie sie an einem sicheren Ort mit eingeschränktem Zugriff speichern.
Prüfen Sie, ob der Cluster erstellt wurde und ausgeführt wird:
kubectl --kubeconfig bmctl-workspace/USER_CLUSTER_NAME/USER_CLUSTER_NAME-TIMESTAMP-kubeconfig \ get nodes
Wenn Ihr Cluster ausgeführt wird, sieht die Antwort in etwa so aus:
NAME STATUS ROLES AGE VERSION nuc-3 Ready control-plane 4m32s v1.26.2-gke.1001 nuc-4 Ready worker 2m2s v1.26.2-gke.1001
Weitere Informationen und Beispiele finden Sie hier:
Verbindung zum Nutzercluster herstellen
Unabhängig davon, mit welchem Tool Sie den Nutzercluster erstellt haben, werden Ihrer E-Mail-Adresse die Richtlinien für die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) zugewiesen, mit denen Sie eine Verbindung zum Cluster mit vollständigen Administratorberechtigungen herstellen können. Wo Ihre E-Mail-Adresse angegeben wird, hängt vom Tool ab:
bmctl
: Ihre E-Mail-Adresse ist im AbschnittclusterSecurity
der Beispielkonfigurationsdatei für den Nutzer enthalten.Terraform: Ihre E-Mail-Adresse ist im Abschnitt
security_config
der Beispielressourcegoogle_gkeonprem_bare_metal_cluster
enthalten.Konsole: Als Ersteller des Clusters wird Ihre E-Mail-Adresse automatisch im Bereich Autorisierung auf der Seite Clustergrundlagen angezeigt.
Obwohl nur Ihre E-Mail-Adresse angegeben ist, können Sie auch andere E-Mail-Adressen angeben, um anderen Nutzern Administratorzugriff auf den Cluster zu gewähren.
Die RBAC-Richtlinien, die Ihrer E-Mail-Adresse gewährt wurden, führen zu Folgendem:
Gewähren Sie die Kubernetes-Rolle
clusterrole/cluster-admin
für den Cluster.Lassen Sie sich mit Ihrer Google-Identität in der Google Cloud Console beim Cluster anmelden. Sie können sich den Cluster in der Console auf der Seite GKE-Cluster ansehen.
Führen Sie
kubectl
-Befehle mit der kubeconfig-Datei des Verbindungsgateways auf Ihrem lokalen Computer aus.
Führen Sie die folgenden Befehle auf Ihrem lokalen Computer aus, um die kubeconfig-Datei des Verbindungsgateways abzurufen:
Rufen Sie den kubeconfig-Eintrag ab, der über das Verbindungsgateway auf den Cluster zugreifen kann.
gcloud container fleet memberships get-credentials USER_CLUSTER_NAME \ --project=PROJECT_ID
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 Verbindungs-Gateway ausführen:kubectl get nodes
Die Ausgabe sieht in etwa so aus:
NAME STATUS ROLES AGE VERSION nuc-3 Ready control-plane 4m32s v1.26.2-gke.1001 nuc-4 Ready worker 2m2s v1.26.2-gke.1001
Für viele
kubectl
-Befehle ist die kubeconfig-Datei für den Administratorcluster erforderlich. Sie müssen diese Befehle auf der Administrator-Workstation ausführen.
Nächste Schritte
- Service und Ingress erstellen
Weitere Informationen zu folgenden Themen: