Mit der Distributed Cloud-Software können Sie GKE-Cluster auf Bare-Metal-Hardware nur evaluieren, indem Sie einen Proof of Concept-Administratorcluster und einen Nutzercluster erstellen. Als zweiter Teil einer zweiteiligen Anleitung baut dieses Dokument auf der Konfiguration in Minimale Infrastruktur einrichten auf. Nach der Bereitstellung können Sie mit Dienst und Ingress erstellen fortfahren.
Dieses Dokument richtet sich an Administratoren, Architekten und Betreiber, die den Lebenszyklus der Infrastruktur einrichten, überwachen und verwalten. Verwenden Sie in einer Produktionsumgebung keinen minimalen Proof-of-Concept-Cluster. Informationen zum Bewerten von Produktionsarchitekturen finden Sie unter Bereitstellungsmodell auswählen.
Hinweis
Sie müssen die Hardware eingerichtet und Ihre IP-Adressen geplant haben, wie im vorherigen Teil dieses Leitfadens, Minimale Infrastruktur einrichten, beschrieben. Alternativ können Sie den Netzwerkanforderungsplaner im Abschnitt Voraussetzungen des Ablaufs zum Erstellen eines Bare Metal-Administratorclusters in der Google Cloud Console verwenden.
Wenn Sie den Nutzercluster mit Terraform erstellen möchten, benötigen Sie Terraform entweder auf Ihrer Administratorworkstation oder auf einem anderen Computer.
Prüfen Sie, ob 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.comErsetzen Sie
PROJECT_IDdurch die Projekt-ID des Flotten-Hostprojekts.Wenn Sie den
PERMISSION_DENIED-Fehler erhalten, prüfen Sie die eingegebene Projekt-ID. Wenn die Projekt-ID korrekt ist, führen Siegcloud auth loginaus, um sich mit dem Konto, das Zugriff auf das Projekt hat, in der Google Cloud CLI anzumelden.Wenn Sie die GKE On-Prem API zum ersten Mal in Ihrem Projekt aktivieren, müssen Sie die API initialisieren. Dazu können Sie einen gcloud CLI-Befehl aufrufen, mit dem die verfügbaren Versionen angezeigt werden, mit denen Sie einen Cluster erstellen können:
gcloud container bare-metal clusters query-version-config \ --project=PROJECT_ID \ --location="us-central1"
Verfahrensübersicht
Das Erstellen einfacher Cluster umfasst die folgenden Hauptschritte:
Informationen erfassen, die zum Angeben der Konfiguration Ihrer Cluster verwendet werden.
Erstellen Sie einen Administratorcluster, um Ihren Nutzercluster zu verwalten.
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 über den Netzwerkplaner vorbereitet haben, um die Platzhalter in der folgenden Tabelle auszufüllen. Die Platzhalter entsprechen Feldwerten in den Cluster-Konfigurationsdateien für die minimale Installation 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 Administrator-Workstation 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 Administrator-Workstation 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 Administrator-Workstation. Der Pfad ist standardmäßig/home/USERNAME/.ssh/id_rsa. |
SSH_PRIVATE_KEY_PATH |
| Die ID des Google Cloud -Projekts, das Sie zum Herstellen einer Verbindung Ihres Clusters zu 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 von 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) | |
| 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 zur Verwendung als externe Adresse für den Ingress-Proxy | USER_INGRESS_VIP |
| Bereich von zehn IP-Adressen zur Verwendung als externe IP-Adressen für Services vom Typ LoadBalancer. Beachten Sie, dass dieser Bereich die Ingress-VIP enthält, die für MetalLB erforderlich ist. Keine anderen IP-Adressen dürfen sich mit diesem Bereich überschneiden. | START_IP-END_IP |
| Pod- und Dienst-CIDRs | |
Bereich von IP-Adressen in CIDR-Block-Notation zur Verwendung durch Pods im Administratorcluster. Der empfohlene Startwert, der in der generierten Clusterkonfigurationsdatei bereits ausgefüllt ist, lautet 192.168.0.0/16. |
192.168.0.0/16 |
Bereich von IP-Adressen in CIDR-Block-Notation zur Verwendung durch Services im Administratorcluster. Der empfohlene Startwert, der in der generierten Clusterkonfigurationsdatei bereits ausgefüllt ist, lautet 10.96.0.0/20. |
10.96.0.0/20 |
Bereich von IP-Adressen in CIDR-Block-Notation zur Verwendung durch Pods im Nutzercluster. Der empfohlene Startwert, der in der generierten Clusterkonfigurationsdatei vorausgefüllt und in der Console der Standardwert ist, lautet 192.168.0.0/16. |
192.168.0.0/16 |
Bereich von IP-Adressen in CIDR-Block-Notation zur Verwendung durch Services im Nutzercluster. Der empfohlene Startwert, der in der generierten Clusterkonfigurationsdatei vorausgefüllt und in der Console der Standardwert ist, lautet 10.96.0.0/20. |
10.96.0.0/20 |
2. Administratorcluster erstellen
Mit den folgenden Schritten wird ein Administratorcluster für eine minimale Installation von Administratorcluster und Nutzercluster erstellt. Prüfen Sie, ob Sie im vorherigen Abschnitt Informationen erfassen für alle Platzhalter in der Tabelle Werte angegeben haben, bevor Sie fortfahren.
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 dann, wenn spec.gkeOnPremAPI in der Clusterkonfigurationsdatei nicht angegeben ist. Wenn Sie sich bei dieser vonGoogle Cloudgehosteten API registrieren, können Sie den Lebenszyklus Ihres Clusters über dieGoogle Cloud Console oder die gcloud CLI verwalten.
Wenn Sie die automatische Registrierung deaktivieren möchten, 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, sodass Sie die Registrierung des Clusters jederzeit nach der Erstellung aufheben können.
So erstellen Sie einen Administratorcluster für die minimale Installation:
Legen Sie die Standardanmeldedaten fest, mit denen Google Distributed Cloud den Cluster erstellen kann. Verwenden Sie dazu den folgenden Befehl:
gcloud auth application-default login
Führen Sie den folgenden Befehl aus, um eine Clusterkonfigurationsdatei aus dem Verzeichnis
/baremetalauf Ihrer Administrator-Workstation zu generieren: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 enthält die Werte, die Sie zuvor in die Planungstabelle im vorherigen Abschnitt eingegeben haben. Neben den von Ihnen eingegebenen Werten gibt es noch folgende Unterschiede zur generierten Konfigurationsdatei:
- Aus diesem Beispiel wurden Kommentare entfernt, um die Lesbarkeit zu verbessern.
- Die Spezifikation
NodePoolwurde 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 die Inhalte aus dem vorherigen Beispiel.
Öffnen Sie die generierte Datei
bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME.yamlund ersetzen Sie deren Inhalt durch den Inhalt des Beispiels, das Sie im vorhergehenden Schritt geprüft haben.Führen Sie zum Erstellen des Administratorclusters den folgenden Befehl über das Verzeichnis
/baremetalauf Ihrer Administratorworkstation aus:bmctl create cluster -c ADMIN_CLUSTER_NAME
Mit dem Befehl
bmctlwird 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 Ordnerbaremetal/bmctl-workspace/ADMIN_CLUSTER_NAME/logauf 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 der 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-adminfür den Cluster zuzuweisen: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 (aus Gründen der Lesbarkeit ist sie 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/<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 derGoogle Cloud Console in Ihrem Cluster anmelden, um weitere Clusterdetails aufzurufen.
3. Nutzercluster erstellen
Mit den folgenden Schritten wird ein Nutzercluster für eine minimale Installation von Administratorcluster und Nutzercluster erstellt. Prüfen Sie, ob Sie im vorherigen Abschnitt Informationen erfassen für alle Platzhalter in der Tabelle Werte angegeben haben, bevor Sie fortfahren.
So erstellen Sie einen Nutzercluster für die minimale Installation:
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 dann, wenn spec.gkeOnPremAPI in der Clusterkonfigurationsdatei nicht angegeben ist. Wenn Ihr Cluster bei dieser von Google Cloudgehosteten API registriert ist, können Sie die Google Cloud Console oder die gcloud CLI verwenden, um den Clusterlebenszyklus zu verwalten.
Wenn Sie die automatische Registrierung deaktivieren möchten, 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, sodass Sie die Registrierung des Clusters jederzeit nach der Erstellung aufheben können.
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 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:
- Aus diesem Beispiel wurden Kommentare entfernt, um die Lesbarkeit zu verbessern.
- Der Clustertyp
spec.typewurde aufuserfestgelegt. - Das Feld
spec.clusterSecurity.authorization.clusterAdmin.gcpAccountswurde hinzugefügt, um Ihrem Konto die Rolleclusterrole/cluster-adminzu gewähren. Unter anderem können Sie sich über dieses Feld in derGoogle 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_IPErsetzen Sie den Inhalt der generierten Konfigurationsdatei auf Ihrer Administrator-Workstation durch die Inhalte aus dem vorherigen Beispiel.
Öffnen Sie die generierte Datei
bmctl-workspace/USER_CLUSTER_NAME/USER_CLUSTER_NAME.yamlund ersetzen Sie deren Inhalt durch den Inhalt des Beispiels, das Sie im vorhergehenden Schritt geprüft haben.Nutzercluster erstellen:
bmctl create cluster -c USER_CLUSTER_NAME \ --kubeconfig bmctl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
Mit dem Befehl
bmctlwird 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 Ordnerbaremetal/bmctl-workspace/USER_CLUSTER_NAME/logauf 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 der 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
So erstellen Sie einen Nutzercluster in der Console:
Rufen Sie in der Console die Seite Bare-Metal-Cluster erstellen auf.
Achten Sie darauf, dass für die Projektliste von Google Cloud
PROJECT_IDausgewä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 einen vorhandenen Administratorcluster erstellen aus.
Klicken Sie auf Weiter.
Clustergrundlagen
Geben Sie
USER_CLUSTER_NAMEals Namen des Nutzerclusters ein oder verwenden Sie den Standardwert.Achten Sie darauf, dass der neu erstellte Administratorcluster ausgewählt ist.
Wählen Sie unter Google Cloud API-Standort die Option us-central1 aus.
Wählen Sie unter Google Distributed Cloud-Version die Option
CLUSTER_VERSIONaus oder verwenden Sie die Standardeinstellung. Für die übrigen Einstellungen auf dieser Seite können Sie die Standardwerte verwenden.Klicken Sie in der linken Navigationsleiste auf Netzwerk.
Netzwerk
Geben Sie im Abschnitt Steuerungsebene im Feld Knoten-IP-Adresse 1 der Steuerungsebene Folgendes ein:
USER_CP_NODE_IPVerwenden Sie im Abschnitt Load-Balancer den Standard-Load-Balancer Gebündelt mit MetalLB.
Rufen Sie den Bereich Neuer Adresspool auf. Geben Sie den IP-Adressbereich in das Feld IP-Adressbereich 1 ein:
10.200.0.51-10.200.0.70Klicken Sie auf Fertig.
Geben Sie im Abschnitt Virtuelle IP-Adressen die IP-Adresse für die Virtuelle IP-Adresse der Steuerungsebene an:
USER_CP_VIPGeben Sie die IP-Adresse für die virtuelle IP-Adresse für eingehenden Traffic ein:
USER_INGRESS_VIPFalls Sie im Abschnitt Dienst- und Pod-CIDRs die Dienst- und Pod-CIDRs im Planer nicht geändert haben, können Sie die Standardeinstellungen verwenden.
Wenn Sie die CIDRs geändert haben, geben Sie die CIDRs ein, die Sie verwenden möchten:
- Dienst-CIDR:
10.96.0.0/20- Pod-CIDR:
192.168.0.0/16Klicken 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 in diesem Cluster erstellten Gruppen von Worker-Knoten.
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 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.
Klicken Sie nach dem Erstellen des Clusters auf Cluster um zur Seite Cluster zurückzukehren.
gcloud-CLI
In diesem Abschnitt erfahren Sie, wie Sie einen Nutzercluster und einen Knotenpool über die gcloud CLI erstellen können.
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-75e59179derOPERATION_IDdes 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 mindestens 15 Minuten. Während der Cluster erstellt wird, können Sie den vorherigen Befehl immer wieder ausführen, um den aktuellen Status abzurufen.
Nachdem der Cluster erstellt wurde, sollte die Ausgabe in etwa so aussehen:
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 im 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 einen Nutzercluster und einen Knotenpool mit Terraform erstellen können.
Erstellen Sie ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung
.tfhaben. In diesem Leitfaden wird die Datei alsmain.tfbezeichnet.mkdir DIRECTORY && cd DIRECTORY && touch main.tfPrüfen Sie die Terraform-Ressource des Nutzerclusters:
Das folgende Terraform-Ressourcenbeispiel 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 in
main.tfund speichern Sie die Datei.Initialisieren und erstellen Sie den Terraform-Plan:
terraform initTerraform installiert alle erforderlichen Bibliotheken, z. B. den Google Cloud -Anbieter.
Überprüfen Sie die Konfiguration und nehmen Sie bei Bedarf Änderungen vor:
terraform planWenden Sie den Terraform-Plan an, um den Nutzercluster zu erstellen:
terraform applyGeben Sie bei Aufforderung
yesein.Das Erstellen des grundlegenden Nutzerclusters und des Knotenpools dauert etwa 15 Minuten (je nach Netzwerk auch länger).
Führen Sie den folgenden Befehl auf der Administrator-Workstation 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
Die Ausgabe des Befehls zeigt den Namen der kubeconfig-Datei für den Nutzercluster an, z. B.:
bmctl-workspace/USER_CLUSTER_NAME/USER_CLUSTER_NAME-TIMESTAMP-kubeconfig
Der
TIMESTAMPim Dateinamen gibt das Datum und die Uhrzeit der Dateierstellung an.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 der 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, welches Tool Sie zum Erstellen des Nutzerclusters verwendet haben, werden Ihrer E-Mail-Adresse die Richtlinien für die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) gewährt, mit denen Sie sich mit vollständigen Administratorberechtigungen mit dem Cluster verbinden können. Wo Ihre E-Mail-Adresse angegeben wird, hängt vom Tool ab:
bmctl: Ihre E-Mail-Adresse wird im AbschnittclusterSecurityder Beispiel-Nutzerkonfigurationsdatei aufgeführt.Terraform: Ihre E-Mail-Adresse wird im Abschnitt
security_configder Beispielressourcegoogle_gkeonprem_bare_metal_clusteraufgeführt.Die Console: Als Clusterersteller ist Ihre E-Mail-Adresse automatisch auf der Seite Cluster-Grundlagen im Abschnitt Autorisierung enthalten.
Obwohl nur Ihre E-Mail-Adresse angegeben ist, können Sie weitere E-Mail-Adressen hinzufügen, um anderen Nutzern Administratorzugriff auf den Cluster zu gewähren.
Die RBAC-Richtlinien, die Ihrer E-Mail-Adresse zugewiesen werden, ermöglichen Folgendes:
Sie erhalten die Kubernetes-Rolle
clusterrole/cluster-adminfür den Cluster.Sie können sich in der Google Cloud Console mit Ihrer Google-Identität anmelden. Sie können den Cluster auf der Seite GKE-Cluster in der Console aufrufen.
Sie können
kubectl-Befehle auf Ihrem lokalen Computer mithilfe der kubeconfig-Datei des Connect-Gateways ausführen.
Führen Sie die folgenden Befehle auf Ihrem lokalen Computer aus, um die kubeconfig-Datei des Connect-Gateways abzurufen:
Rufen Sie den kubeconfig-Eintrag ab, der den Cluster über das Connect-Gateway aufrufen 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 Connect-Gateway ausführen:kubectl get nodesDie 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.1001Für viele
kubectl-Befehle ist die kubeconfig-Datei für den Administratorcluster erforderlich. Diese Befehle müssen Sie auf der Administrator-Workstation ausführen.
Nächste Schritte
Weitere Informationen zu folgenden Themen: