Auf dieser Seite wird beschrieben, wie Sie einen Administratorcluster für Google Distributed Cloud erstellen. Der Administratorcluster verwaltet Nutzercluster, auf denen Ihre Arbeitslasten ausgeführt werden. Wenn Sie Topologiedomänen verwenden möchten, lesen Sie den Abschnitt Administratorcluster für die Verwendung mit Topologiedomänen erstellen.
Diese Seite richtet sich an Administratoren, Architekten und Betreiber, die technische Infrastrukturen einrichten, überwachen und verwalten. Weitere Informationen zu gängigen Rollen und Beispielaufgaben, auf die wir in Google Cloud -Inhalten verweisen, finden Sie unter Häufig verwendete GKE-Nutzerrollen und -Aufgaben.
Weitere Informationen zum Administratorcluster finden Sie in der Installationsübersicht.
Ab Version 1.33 werden alle neuen Cluster als erweiterte Cluster erstellt. Lesen Sie sich unbedingt den Abschnitt Unterschiede beim Ausführen erweiterter Cluster durch.
Hinweise
Prüfen Sie, ob Sie Ihre Administrator-Workstation eingerichtet haben und sich bei ihr anmelden können, wie unter Administrator-Workstation erstellen beschrieben.
Die JSON-Schlüsseldateien für die Dienstkonten müssen sich auf Ihrer Administrator-Workstation befinden.
Lesen Sie das Dokument zur Planung der IP-Adressen. Achten Sie darauf, dass genügend IP-Adressen für die drei Knoten der Steuerungsebene und eine virtuelle IP-Adresse der Steuerungsebene verfügbar sind. Wenn Sie beabsichtigen, kubeception-Nutzer-Cluster zu erstellen, müssen Sie genügend IP-Adressen für die Knoten auf der Steuerungsebene dieser Nutzer-Cluster zur Verfügung haben.
Lesen Sie die Übersicht über das Load-Balancing und prüfen Sie noch einmal Ihre Entscheidung, welche Art von Load-Balancer Sie verwenden möchten. Bei manuellen Load-Balancern müssen Sie den Load-Balancer einrichten, bevor Sie Ihren Administratorcluster erstellen.
Wenn Sie
gkectl
zum Erstellen des Administratorclusters verwenden, entscheiden Sie, ob Sie eine öffentliche oder private Registry für Google Distributed Cloud-Komponenten verwenden möchten. Informationen zur Verwendung einer privaten Docker-Registry finden Sie unterprivateRegistry
. Weder Terraform noch die Google Cloud Konsole unterstützen die Verwendung einer privaten Docker-Registry für Systemkomponenten.Entscheiden Sie, welche Art von Betriebssystem Sie auf Ihren Administratorclusterknoten ausführen möchten.
Wenn in Ihrem Unternehmen der ausgehende Traffic über einen Proxy-Server geleitet werden muss, sollten Sie eine Zulassungsliste für die erforderlichen APIs und die Artifact Registry-Adresse erstellen.
In Version 1.29 und höher sind serverseitige Preflight-Prüfungen standardmäßig aktiviert. Für serverseitige Preflight-Prüfungen sind zusätzliche Firewallregeln erforderlich. Suchen Sie in den Firewallregeln für Administratorcluster nach „Preflight-Prüfungen“ und achten Sie darauf, dass alle erforderlichen Firewallregeln konfiguriert sind. Serverseitige Preflight-Prüfungen werden auf dem Bootstrap-Cluster und nicht lokal auf der Administrator-Workstation ausgeführt.
Administratorcluster mit dem Tool Ihrer Wahl erstellen
In diesem Abschnitt wird beschrieben, wie Sie einen Administratorcluster mit gkectl
, Terraform und der Google Cloud -Konsole erstellen. Informationen zur Auswahl eines Tools und zu Einschränkungen bei einigen Tools finden Sie unter Tool zum Verwalten des Clusterlebenszyklus auswählen.
gkectl
Verfahrensübersicht
Dies sind die primären Schritte zum Erstellen eines Administratorclusters:
- Füllen Sie Ihre Konfigurationsdateien aus.
- Geben Sie die Details für den neuen Administratorcluster an, indem Sie eine Konfigurationsdatei für den Administratorcluster, eine Konfigurationsdatei für die Anmeldedaten und möglicherweise eine IP-Blockdatei ausfüllen und validieren.
- Importieren Sie Betriebssystem-Images in vSphere und übertragen Sie Container-Images in die private Registry, falls zutreffend.
- Führen Sie
gkectl prepare
aus.
- Erstellen Sie einen Administratorcluster.
- Erstellen Sie mit
gkectl
einen neuen Administratorcluster, wie in den ausgefüllten Konfigurationsdateien angegeben. Wenn Google Distributed Cloud einen Administratorcluster erstellt, wird ein Kubernetes in Docker (Art) Cluster bereitgestellt, der vorübergehend die Kubernetes-Controller hostet, die zur Erstellung des Administratorclusters benötigt werden. Dieser vorübergehende Cluster wird als Bootstrap-Cluster bezeichnet. Nutzercluster werden von ihrem verwaltenden Administrator ohne Verwendung eines Bootstrap-Clusters erstellt und aktualisiert.
- Prüfen Sie, ob der Administratorcluster ausgeführt wird.
- Rufen Sie mit
kubectl
die Clusterknoten auf.
Am Ende dieses Verfahrens haben Sie einen laufenden Administratorcluster, mit dem Sie Nutzercluster erstellen und verwalten können.
Wenn Sie VPC Service Controls verwenden, werden beim Ausführen einiger
gkectl
-Befehle möglicherweise Fehler angezeigt, z. B. "Validation Category: GCP - [UNKNOWN] GCP
service: [Stackdriver] could not get GCP services"
. Fügen Sie Ihren Befehlen den Parameter --skip-validation-gcp
hinzu, um diese Fehler zu vermeiden.
Konfigurationsdatei ausfüllen
Prüfen Sie, ob auf Ihrer Administrator-Workstation die erforderliche Version von
gkectl
installiert ist. In der Regel verwenden Sie dieselbe Version vongkectl
wie die Version, die beim Erstellen des Clusters verwendet wird. Sie geben die Clusterversion im FeldgkeOnPremVersion
in der Clusterkonfigurationsdatei an. Bei der Clustererstellung werden die folgenden Versionsregeln erzwungen:Die Nebenversion
gkectl
darf nicht niedriger als die Nebenversion für den Cluster sein. So ist es beispielsweise nicht zulässig, einen Cluster der Version 1.30 mitgkectl
Version 1.29 zu erstellen. Patchversionen spielen keine Rolle. Sie können beispielsweisegkectl
Version 1.29.0-gke.1456 verwenden, um einen Cluster mit einer höheren Patchversion wie 1.29.1000-gke.94 zu erstellen.Die Nebenversion
gkectl
darf nicht mehr als zwei Nebenversionen höher als die Clusterversion sein. Wenn Sie beispielsweise einen Cluster der Version 1.28 erstellen, kann diegkectl
-Version 1.29 oder 1.30 sein. Sie könnengkectl
Version 1.31 jedoch nicht verwenden, da sie drei Nebenversionen höher ist als die Clusterversion.
Falls erforderlich, lesen Sie den Abschnitt
gkectl
herunterladen, um eine unterstützte Version vongkectl
zu erhalten.
Wenn Sie Ihre Administratorworkstation mit gkeadm
erstellt haben, wurde eine Konfigurationsdatei mit dem Namen admin-cluster.yaml
generiert.
Wenn Sie Ihre Administrator-Workstation nicht mit gkeadm
erstellt haben, generieren Sie admin-cluster.yaml
durch Ausführen des folgenden Befehls auf der Administratorworkstation:
gkectl create-config admin
Diese Konfigurationsdatei dient zum Erstellen Ihres Administratorclusters.
Machen Sie sich mit der Konfigurationsdatei vertraut, indem Sie sich das Dokument zur Administratorcluster-Konfigurationsdatei ansehen. Möglicherweise möchten Sie dieses Dokument in einem separaten Tab oder Fenster geöffnet lassen, da Sie sich beim Ausführen der folgenden Schritte darauf beziehen.
name
Wenn Sie einen Namen für den Administratorcluster angeben möchten, füllen Sie das Feld name
aus.
bundlePath
Das Bundle ist eine komprimierte Datei, die Clusterkomponenten enthält. Es ist in der Administrator-Workstation enthalten. Dieses Feld ist bereits für Sie ausgefüllt.
vCenter
Die meisten Felder in diesem Abschnitt sind bereits mit den Werten gefüllt, die Sie beim Erstellen der Administrator-Workstation eingegeben haben.
enableAdvancedCluster
Wenn Sie in Version 1.31 das erweiterte Cluster-Feature aktivieren möchten, legen Sie enableAdvancedCluster
auf true
fest.
Beachten Sie die folgenden Unterschiede zwischen den Versionen:
In Version 1.31 befindet sich das erweiterte Cluster-Feature in der Vorschau:
Sie können Advanced Cluster nur beim Erstellen neuer Cluster der Version 1.31 aktivieren.
Nachdem der erweiterte Cluster aktiviert wurde, können Sie kein Upgrade des Clusters auf Version 1.32 durchführen. Aktivieren Sie den erweiterten Cluster nur in einer Testumgebung.
In Version 1.32 ist die erweiterte Clusterfunktion allgemein verfügbar.
Administratorcluster werden standardmäßig als erweiterte Cluster erstellt. Sie müssen
enableAdvancedCluster
explizit auffalse
setzen, wenn Sie einen Cluster ohne erweiterte Funktionen erstellen möchten.Für Cluster, in denen die Funktion „Erweiterte Cluster“ aktiviert ist, werden Clusterupgrades unterstützt.
In Version 1.33 und höher werden alle Cluster als erweiterte Cluster erstellt. Wenn Sie
enableAdvancedCluster
auffalse
festlegen, schlägt die Clustererstellung fehl.
network
Füllen Sie die Abschnitte
network.controlPlaneIPBlock
und
network.hostConfig
. Legen Sie auch adminMaster.replicas
auf 3
fest.
Die Felder network.podCIDR und network.serviceCIDR haben bereits ausgefüllte Werte, die Sie unverändert lassen können, sofern sie nicht mit Adressen in Konflikt stehen, die bereits in Ihrem Netzwerk verwendet werden. Kubernetes verwendet diese Bereiche, um den Pods und Services in Ihrem Cluster IP-Adressen zuzuweisen.
Füllen Sie nach Bedarf die restlichen Felder im Abschnitt „network“ der Konfigurationsdatei aus.
loadBalancer
Legen Sie eine VIP für den Kubernetes API-Server Ihres Administratorclusters fest. Stellen Sie die VIP als Wert für
loadBalancer.vips.controlPlaneVIP
bereit.
Weitere Informationen finden Sie unter VIPs im Subnetz des Administratorclusters.
Entscheiden Sie, welche Art von Load-Balancing Sie verwenden möchten. Folgende Optionen sind verfügbar:
Gebündeltes MetalLB-Load-Balancing. Legen Sie
loadBalancer.kind
auf"MetalLB"
fest.Manuelles Load-Balancing. Legen Sie
loadBalancer.kind
auf"ManualLB"
fest und entfernen Sie den AbschnittmanualLB
.
Weitere Informationen zu den Load-Balancing-Optionen finden Sie unter Load-Balancing – Übersicht.
antiAffinityGroups
Legen Sie antiAffinityGroups.enabled
entsprechend Ihren Anforderungen auf true
oder false
fest.
Verwenden Sie dieses Feld, um anzugeben, ob Google Distributed Cloud Anti-Affinitätsregeln für VMware Distributed Resource Scheduler (DRS) für Ihre Administratorcluster-Knoten erstellen soll, sodass diese auf mindestens drei physische Hosts in Ihrem Rechenzentrum verteilt werden.
adminMaster
Wenn Sie CPU und Arbeitsspeicher für die Knoten der Steuerungsebene des Administratorclusters angeben möchten, füllen Sie die Felder cpus
und memoryMB
im Abschnitt adminMaster
aus.
Administratorcluster müssen drei Knoten der Steuerungsebene haben. Setzen Sie das Feld replicas
im Bereich adminMaster
auf 3
.
proxy
Wenn sich das Netzwerk mit den Knoten des Administratorclusters hinter einem Proxyserver befindet, füllen Sie den Abschnitt proxy
aus.
privateRegistry
Entscheiden Sie, wo Sie die Container-Images für die Google Distributed Cloud-Komponenten speichern möchten. Folgende Optionen sind verfügbar:
Artifact Registry
Ihre eigene private Docker-Registry.
Wenn Sie Ihre eigene private Registry verwenden möchten, füllen Sie den Abschnitt
privateRegistry
aus.
Weitere Informationen zur Verwendung einer privaten Registry, einschließlich der Unterschiede zwischen normalen und erweiterten Clustern, finden Sie unter Private Container-Registry konfigurieren.
componentAccessServiceAccountKeyPath
Google Distributed Cloud verwendet Ihr Dienstkonto für den Komponentenzugriff, um Clusterkomponenten aus Artifact Registry herunterzuladen. Dieses Feld enthält den Pfad einer JSON-Schlüsseldatei für Ihr Dienstkonto für den Komponentenzugriff.
Dieses Feld ist bereits für Sie ausgefüllt.
gkeConnect
Registrieren Sie Ihren Administratorcluster in einer Google Cloud Flotte, indem Sie den Abschnitt gkeConnect
ausfüllen. Wenn Sie die Abschnitte stackdriver
und cloudAuditLogging
in der Konfigurationsdatei angeben, muss die ID in gkeConnect.projectID
mit der ID übereinstimmen, die in stackdriver.projectID
und cloudAuditLogging.projectID
festgelegt ist. Wenn die Projekt-IDs nicht identisch sind, schlägt die Clustererstellung fehl.
In Version 1.28 und höher können Sie optional eine Region angeben, in der die Flotten- und Connect-Dienste in gkeConnect.location
ausgeführt werden. Wenn Sie dieses Feld nicht angeben, verwendet der Cluster die globalen Instanzen dieser Dienste.
Wenn Sie gkeConnect.location
angeben, muss die von Ihnen angegebene Region mit der in cloudAuditLogging.clusterLocation
, stackdriver.clusterLocation
und gkeOnPremAPI.location
konfigurierten Region übereinstimmen. Wenn die Regionen nicht identisch sind, schlägt die Cluster-Erstellung fehl.
gkeOnPremAPI
Wenn die GKE On-Prem API in IhremGoogle Cloud -Projekt aktiviert ist, werden alle Cluster im Projekt automatisch in der GKE On-Prem API in der Region registriert, die in stackdriver.clusterLocation
konfiguriert ist.
Die Region gkeOnPremAPI.location
muss mit der Region übereinstimmen, die in cloudAuditLogging.clusterLocation
, gkeConnect.location
und stackdriver.clusterLocation
angegeben ist. Wenn die Regionen nicht identisch sind, schlägt die Cluster-Erstellung fehl.
Wenn Sie alle Cluster im Projekt für die GKE On-Prem API registrieren möchten, müssen Sie die Schritte unter Vorbereitung zur Aktivierung und Verwendung der GKE On-Prem API im Projekt ausführen.
Wenn Sie den Cluster nicht in der GKE On-Prem API registrieren möchten, fügen Sie diesen Abschnitt hinzu und setzen Sie
gkeOnPremAPI.enabled
auffalse
. Wenn Sie keine Cluster in dem Projekt registrieren möchten, deaktivieren Siegkeonprem.googleapis.com
(der Dienstname für die GKE On-Prem API) in dem Projekt. Eine Anleitung finden Sie unter Dienste deaktivieren.
stackdriver
Wenn Sie Cloud Logging und Cloud Monitoring für Ihren Cluster aktivieren möchten, füllen Sie den Abschnitt stackdriver
aus.
Dieser Abschnitt ist standardmäßig erforderlich. Das heißt, wenn Sie diesen Abschnitt nicht füllen, müssen Sie das Flag --skip-validation-stackdriver
einfügen, wenn Sie gkectl create admin
ausführen.
Beachten Sie folgende Anforderungen:
Wenn Sie erweiterte Cluster aktivieren, müssen Sie denselben Pfad in
cloudAuditLogging.serviceAccountKeyPath
undstackdriver.serviceAccountKeyPath
angeben.Die ID in
stackdriver.projectID
muss mit der ID ingkeConnect.projectID
undcloudAuditLogging.projectID
übereinstimmen.Die in
stackdriver.clusterLocation
festgelegte Google Cloud -Region muss mit der incloudAuditLogging.clusterLocation
undgkeConnect.location
übereinstimmen. WenngkeOnPremAPI.enabled
true
ist, muss dieselbe Region ingkeOnPremAPI.location
festgelegt werden.
Wenn die Projekt-IDs und Regionen nicht identisch sind, schlägt die Clustererstellung fehl.
cloudAuditLogging
Wenn Sie die Audit-Logs des Kubernetes API-Servers Ihres Clusters in Cloud-Audit-Logs einbinden möchten, füllen Sie den Abschnitt cloudAuditLogging
aus.
Beachten Sie folgende Anforderungen:
Wenn Sie den erweiterten Cluster aktivieren, müssen Sie denselben Pfad in
cloudAuditLogging.serviceAccountKeyPath
undstackdriver.serviceAccountKeyPath
angeben.Die ID in
cloudAuditLogging.projectID
muss mit der ID ingkeConnect.projectID
undstackdriver.projectID
übereinstimmen.Die in
cloudAuditLogging.clusterLocation
festgelegte Google Cloud -Region muss mit der Region übereinstimmen, die instackdriver.clusterLocation
undgkeConnect.location
festgelegt ist (wenn das Feld in Ihrer Konfigurationsdatei enthalten ist). Wenn außerdemgkeOnPremAPI.enabled
true
ist, muss dieselbe Region ingkeOnPremAPI.location
festgelegt werden.
Wenn die Projekt-IDs und Regionen nicht identisch sind, schlägt die Clustererstellung fehl.
clusterBackup
Wenn Sie die Sicherung des Administratorclusters aktivieren möchten, legen Sie clusterBackup.datastore
auf den vSphere-Datenspeicher fest, in dem Sie Clustersicherungen speichern möchten.
Wenn Sie einen erweiterten Cluster aktivieren, entfernen Sie diesen Abschnitt. Das Sichern des Administratorclusters in einem vSphere-Datenspeicher wird nicht unterstützt.
autoRepair
Wenn Sie die automatische Knotenreparatur für Ihren Administratorcluster aktivieren möchten, legen Sie autoRepair.enabled
auf true
fest.
secretsEncryption
Wenn Sie die immer aktive Secret-Verschlüsselung aktivieren möchten, füllen Sie den Abschnitt secretsEncryption
aus.
Wenn Sie den erweiterten Cluster aktivieren, legen Sie secretsEncryption.enabled
auf false
fest.
Die Always-On-Secrets-Verschlüsselung wird nicht unterstützt.
osImageType
Wählen Sie aus, welche Art von Betriebssystem-Image Sie für die Administratorclusterknoten verwenden möchten, und füllen Sie den Abschnitt osImageType
entsprechend aus.
Wenn Sie einen erweiterten Cluster aktivieren, legen Sie osImageType
auf ubuntu_cgroupv2
oder ubuntu_containerd
fest.
Beispiel für ausgefüllte Konfigurationsdateien
Hier sehen Sie ein Beispiel für eine ausgefüllte Konfigurationsdatei für einen Administratorcluster. Die Konfiguration aktiviert einige, aber nicht alle verfügbaren Features.
vc-01-admin-cluster.yaml
apiVersion: v1 kind: AdminCluster name: "gke-admin-01" bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.28.0-gke.1-full.tgz" vCenter: address: "vc01.example" datacenter: "vc-01" cluster: "vc01-workloads-1" resourcePool: "vc-01-pool-1" datastore: "vc01-datastore-1" caCertPath: "/usr/local/google/home/me/certs/vc01-cert.pem"" credentials: fileRef: path: "credential.yaml" entry: "vCenter" network: hostConfig: dnsServers: - "203.0.113.1" - "198.51.100.1" ntpServers: - "216.239.35.4" serviceCIDR: "10.96.232.0/24" podCIDR: "192.168.0.0/16" vCenter: networkName: "vc01-net-1" controlPlaneIPBlock: netmask: "255.255.248.0" gateway: "21.0.143.254" ips: - ip: "21.0.140.226" hostname: "admin-cp-vm-1" - ip: "21.0.141.48" hostname: "admin-cp-vm-2" - ip: "21.0.141.65" hostname: "admin-cp-vm-3" loadBalancer: vips: controlPlaneVIP: "172.16.20.59" kind: "MetalLB" antiAffinityGroups: enabled: true adminMaster: cpus: 4 memoryMB: 16384 replicas: 3 componentAccessServiceAccountKeyPath: "sa-key.json" gkeConnect: projectID: "my-project-123" registerServiceAccountKeyPath: "connect-register-sa-2203040617.json" stackdriver: projectID: "my-project-123" clusterLocation: "us-central1" enableVPC: false serviceAccountKeyPath: "log-mon-sa-2203040617.json" disableVsphereResourceMetrics: false clusterBackup: datastore: "vc-01-datastore-bu" autoRepair: enabled: true osImageType: "ubuntu_containerd"
Konfigurationsdatei validieren
Nachdem Sie die Konfigurationsdatei des Administratorclusters ausgefüllt haben, führen Sie gkectl check-config
aus, um zu prüfen, ob die Datei gültig ist:
gkectl check-config --config ADMIN_CLUSTER_CONFIG
Ersetzen Sie ADMIN_CLUSTER_CONFIG durch den Pfad Ihrer Konfigurationsdatei für den Administratorcluster.
Wenn der Befehl Fehlermeldungen zurückgibt, beheben Sie die Probleme und validieren Sie die Datei noch einmal.
Wenn Sie die zeitaufwendigeren Validierungen überspringen möchten, übergeben Sie das Flag --fast
.
Verwenden Sie die Flags --skip-validation-xxx
, um einzelne Validierungen zu überspringen. Weitere Informationen zum Befehl check-config
finden Sie unter Vorabprüfungen ausführen.
Betriebssystem-Images abrufen
Führen Sie gkectl prepare
aus, um Ihre vSphere-Umgebung zu initialisieren:
gkectl prepare --config ADMIN_CLUSTER_CONFIG
Mit dem Befehl gkectl prepare
werden folgende vorbereitende Aufgaben ausgeführt:
Die Betriebssystem-Images werden in vSphere importiert und als VM-Vorlagen markiert.
Wenn Sie eine private Docker-Registry verwenden, werden die Container-Images in Ihre Registry übertragen.
Optional werden die Build-Attestierungen der Container-Images validiert, um sicherzustellen, dass die Images von Google erstellt und signiert wurden und bereit für die Bereitstellung sind.
Erstellen Sie den Administratorcluster.
Erstellen Sie den Administratorcluster:
gkectl create admin --config ADMIN_CLUSTER_CONFIG
Wenn Sie VPC Service Controls verwenden, werden beim Ausführen einiger
gkectl
-Befehle möglicherweise Fehler angezeigt, z. B. "Validation Category: GCP - [UNKNOWN] GCP
service: [Stackdriver] could not get GCP services"
. Fügen Sie Ihren Befehlen den Parameter --skip-validation-gcp
hinzu, um diese Fehler zu vermeiden.
Erstellung des Administratorclusters nach einem Fehler fortsetzen
Wenn die Erstellung des Administratorclusters fehlschlägt oder abgebrochen wird, können Sie den Befehl create
noch einmal ausführen:
gkectl create admin --config ADMIN_CLUSTER_CONFIG
Suchen Sie die kubeconfig-Datei des Administratorclusters
Mit dem Befehl gkectl create admin
wird im aktuellen Verzeichnis die kubeconfig-Datei kubeconfig
erstellt. Sie benötigen diese kubeconfig-Datei später, um mit Ihrem Administratorcluster zu interagieren.
Die kubeconfig-Datei enthält den Namen Ihres Administratorclusters. Um den Clusternamen anzuzeigen, können Sie Folgendes ausführen:
kubectl config get-clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG
In der Ausgabe wird der Name des Clusters angezeigt. Beispiele:
NAME gke-admin-tqk8x
Wenn Sie möchten, können Sie den Namen und den Speicherort der kubeconfig-Datei ändern.
Verwalten Sie die Datei checkpoint.yaml
:
Dieser Abschnitt gilt nur für nicht hochverfügbare Administratorcluster. Die Datei checkpoint.yaml
wird nicht zum Erstellen von HA-Administratorclustern verwendet.
Wenn Sie den Befehl gkectl create admin
zum Erstellen des Administratorclusters ausgeführt haben, wird eine Prüfpunktdatei im selben Datenspeicherordner wie das Datenlaufwerk des Administratorclusters erstellt. Standardmäßig hat diese Datei den Namen DATA_DISK_NAME‑checkpoint.yaml
. Wenn die Länge von DATA_DISK_NAME größer oder gleich 245 Zeichen ist, lautet der Name aufgrund des vSphere-Limits für die Dateinamenlänge DATA_DISK_NAME.yaml
.
Diese Datei enthält den Status des Administratorclusters und die Anmeldedaten. Sie wird für zukünftige Upgrades verwendet. Löschen Sie diese Datei nur, wenn Sie die Schritte zum Löschen eines Administratorclusters ausführen.
Wenn Sie die VM-Verschlüsselung in Ihrer Instanz von vCenter Server aktiviert haben, benötigen Sie die Berechtigung Cryptographic operations.Direct Access, bevor Sie Ihren Administratorcluster erstellen oder aktualisieren. Andernfalls wird der Prüfpunkt nicht hochgeladen. Wenn Sie diese Berechtigung nicht erhalten, können Sie das Hochladen der Prüfpunktdatei mithilfe des ausgeblendeten Flags --disable-checkpoint
deaktivieren, wenn Sie einen relevanten Befehl ausführen.
Die Datei checkpoint.yaml
wird automatisch aktualisiert, wenn Sie den Befehl gkectl upgrade admin
ausführen oder wenn Sie einen gkectl update
-Befehl ausführen, der sich auf den Administratorcluster auswirkt.
Prüfen Sie, ob der Administratorcluster ausgeführt wird
Prüfen Sie, ob der Administratorcluster ausgeführt wird:
kubectl get nodes --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Ersetzen Sie ADMIN_CLUSTER_KUBECONFIG durch den Pfad der kubeconfig-Datei des Administratorclusters.
Die Ausgabe zeigt die Knoten des Administratorclusters. Beispiel:
admin-cp-vm-1 Ready control-plane,master ... admin-cp-vm-2 Ready control-plane,master ... admin-cp-vm-3 Ready control-plane,master ...
Dateien sichern
Wir empfehlen, die kubeconfig-Datei des Administratorclusters zu sichern. Kopieren Sie die kubeconfig-Datei von Ihrer Administratorworkstation an einen anderen Speicherort. Wenn Sie dann den Zugriff auf die Administrator-Workstation verlieren oder die kubeconfig-Datei auf Ihrer Administrator-Workstation versehentlich gelöscht wird, haben Sie weiterhin Zugriff auf den Administratorcluster.
Wir empfehlen außerdem, den privaten SSH-Schlüssel für Ihren Administratorcluster zu sichern. Wenn Sie dann den Zugriff auf den Administratorcluster verlieren, können Sie trotzdem eine SSH-Verbindung zu den Administratorclusterknoten herstellen. So können Sie Probleme mit der Verbindung zum Administratorcluster beheben und untersuchen.
Extrahieren Sie den SSH-Schlüssel aus dem Administratorcluster in eine Datei mit dem Namen admin-cluster-ssh-key
:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get secrets -n kube-system sshkeys \ -o jsonpath='{.data.vsphere_tmp}' | base64 -d > admin-cluster-ssh-key
Jetzt können Sie admin-cluster-ssh-key
an einem anderen Speicherort Ihrer Wahl sichern.
RBAC-Richtlinien
Wenn Sie den Abschnitt gkeConnect
in die Konfigurationsdatei des Administratorclusters ausfüllen, wird der Cluster während der Erstellung oder Aktualisierung in Ihrer Flotte registriert. Zum Aktivieren der Flottenverwaltungsfunktionen stellt Google Cloud den Connect-Agent bereit und erstellt ein Google-Dienstkonto, das das Projekt darstellt, für das der Cluster registriert ist.
Der Connect-Agent stellt eine Verbindung mit dem Dienstkonto her, um Anfragen an den Kubernetes API-Server des Clusters zu verarbeiten. Dies ermöglicht den Zugriff auf Features zur Cluster- und Arbeitslastverwaltung in Google Cloud, einschließlich des Zugriffs auf die Google Cloud Console, mit der Sie mit Ihrem Cluster interagieren können.
Der Kubernetes API-Server des Administratorclusters muss in der Lage sein, Anfragen vom Connect-Agent zu autorisieren. Um dies zu gewährleisten, werden für das Dienstkonto die folgenden rollenbasierten Zugriffssteuerungsrichtlinien (RBAC) konfiguriert:
Eine Identitätsrichtlinie, die den Connect-Agent autorisiert, Anfragen im Namen des Dienstkontos an den Kubernetes API-Server zu senden.
Eine Berechtigungsrichtlinie, die die Vorgänge angibt, die in anderen Kubernetes-Ressourcen zulässig sind.
Das Dienstkonto und die RBAC-Richtlinien sind erforderlich, damit Sie den Lebenszyklus Ihrer Nutzercluster in der Google Cloud Console verwalten können.
Terraform
Verfahrensübersicht
Bevor Sie den Administratorcluster erstellen, müssen Sie den Befehl gkectl register bootstrap
auf Ihrer Administrator-Workstation ausführen. Mit diesem Befehl wird ein Kubernetes in Docker-Cluster (Kind) auf der Administratorworkstation 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 nach der Erstellung des Administratorclusters automatisch gelöscht.
Im Folgenden finden Sie die allgemeinen Schritte zum Erstellen eines Administratorclusters mit Terraform:
- Füllen Sie Ihre Konfigurationsdatei aus.
- Verwenden Sie die Ressource google_gkeonprem_vmware_admin_cluster und das folgende Beispiel, um die Konfigurationsdatei
main.tf
zu erstellen.
- Erstellen Sie einen
bootstrap
-Cluster. - Führen Sie den Befehl
gkectl register bootstrap
aus, um den Bootstrap-Cluster zu erstellen. Wenn der Befehl den Bootstrap-Cluster erstellt hat, werden Sie in der Ausgabe aufgefordert, die Konfiguration des Administratorclusters abzuschließen. Der Vorgang wird fortgesetzt, bis der Administratorcluster erstellt ist.
- Erstellen Sie einen
- Erstellen Sie einen Administratorcluster.
- Führen Sie in einem anderen Terminalfenster oder auf einem anderen Computer, der Zugriff auf die GKE On-Prem API hat,
terraform
-Befehle aus, um einen neuen Administratorcluster zu erstellen, wie in der ausgefüllten Konfigurationsdateimain.tf
angegeben.
Konfigurationsdatei ausfüllen
Im folgenden Beispiel wird gezeigt, wie Sie einen Administratorcluster mit Hochverfügbarkeit (HA) mit drei Knoten auf Steuerungsebene mit MetalLB erstellen. Ab Version 1.28 müssen neue Administratorcluster hochverfügbar sein. Aus diesem Grund müssen Sie control_plane_node.replicas
auf 3 festlegen.
Weitere Informationen und Beispiele finden Sie in der
Referenzdokumentation zu google_gkeonprem_vmware_admin_cluster
Informationen zur Verwendung einer privaten Registry für System-Images finden Sie unter Private Container-Registry konfigurieren.
Geben Sie die Platzhaltervariablen im folgenden Beispiel ein und kopieren Sie es dann in main.tf
. Wenn Sie Ihre Administratorworkstation mit gkeadm
erstellt haben, öffnen Sie die Konfigurationsdatei der Administratorworkstation, damit Sie Werte aus dem Abschnitt vCenter
in die entsprechenden Platzhaltervariablen kopieren können.
resource "google_gkeonprem_vmware_admin_cluster" "admin-cluster-metallb" { provider = google-beta name = "ADMIN_CLUSTER_NAME" project = "PROJECT_ID" location = "REGION" description = "DESCRIPTION" bootstrap_cluster_membership = "projects/PROJECT_ID/locations/REGION/memberships/bootstrap-ADMIN_CLUSTER_NAME" on_prem_version = "VERSION" image_type = "IMAGE_TYPE" vcenter { address = "VCENTER_ADDRESS" datacenter = "DATA_CENTER" cluster = "VCENTER_CLUSTER" resource_pool = "RESOURCE_POOL" datastore = "DATASTORE" ca_cert_data = "CA_CERT_DATA" } network_config { service_address_cidr_blocks = ["10.96.232.0/24"] pod_address_cidr_blocks = ["192.168.0.0/16"] vcenter_network = "NETWORK" dhcp_ip_config { enabled = true } host_config { dns_servers = ["DNS_SERVERS"] ntp_servers = ["NTP_SERVERS"] } ha_control_plane_config { control_plane_ip_block { gateway = "GATEWAY" netmask = "NETMASK" ips { hostname = "CONTROL_PLANE_HOST_1" ip = "CONTROL_PLANE_NODE_IP_1" } ips { hostname = "CONTROL_PLANE_HOST_2" ip = "CONTROL_PLANE_NODE_IP_2" } ips { hostname = "CONTROL_PLANE_HOST_3" ip = "CONTROL_PLANE_NODE_IP_3" } } } } control_plane_node { cpus = NUM_CPUS memory = MEMORY replicas = 3 } load_balancer { vip_config { control_plane_vip = "CONTROL_PLANE_VIP" } metal_lb_config { enabled = true } } }
Ersetzen Sie Folgendes:
ADMIN_CLUSTER_NAME
: der Name des Administratorclusters. Der Name darf maximal 20 Zeichen lang sein.PROJECT_ID
: die Google Cloud Projekt-ID.REGION
: die Google Cloud Region, in der die GKE On-Prem API (gkeonprem.googleapis.com
), der Flottendienst (gkehub.googleapis.com
) und der Connect-Dienst (gkeconnect.googleapis.com
) ausgeführt werden. Geben Sieus-west1
oder eine andere unterstützte Region an.Das Feld
location
entspricht dem Flag--location
im Befehlgkectl register bootstrap
.DESCRIPTION
: eine Beschreibung des Administratorclusters.VERSION
: die Google Distributed Cloud-Version für den Cluster. Das Erstellen eines Clusters mit Terraform wird nur in Version 1.28 und höher unterstützt. Die hier angegebene Version muss mit der Version des Bundles übereinstimmen, die Sie im--bundle-path
-Flag imgkectl register bootstrap
-Befehl angeben. Eine Liste der Versionen finden Sie unter Google Distributed Cloud-Versionen.IMAGE_TYPE
: Der Typ des Betriebssystem-Images, das auf den Knoten Ihres Administratorclusters ausgeführt werden soll. Geben Sie einen der folgenden Werte an: „ubuntu_containerd
“, „cos
“, „ubuntu_cgv2
“ oder „cos_cgv2
“.VCENTER_ADDRESS
: die vCenter Server-Adresse.Konfigurationsdatei für die Administrator-Workstation: Verwenden Sie den Wert aus dem Feld
vCenter.credentials.address
.Das Feld
vcenter.address
entspricht dem Flag--vcenter-address
im Befehlgkectl register bootstrap
.
DATA_CENTER
: Der Name Ihres vCenter-Rechenzentrums.Konfigurationsdatei für die Administrator-Workstation: Verwenden Sie den Wert aus dem Feld
vCenter.datacenter
.Das Feld
vcenter.datacenter
entspricht dem Flag--vcenter-datacenter
im Befehlgkectl register bootstrap
.
VCENTER_CLUSTER
: Der Name Ihres vCenter-Clusters.Konfigurationsdatei für die Administrator-Workstation: Verwenden Sie den Wert aus dem Feld
vCenter.cluster
.Das Feld
vcenter.cluster
entspricht dem Flag--vcenter-cluster
im Befehlgkectl register bootstrap
.
RESOURCE_POOL
: Der Name oder Pfad Ihres vCenter-Ressourcenpools.Konfigurationsdatei für die Administrator-Workstation: Verwenden Sie den Wert aus dem Feld
vCenter.resourcePool
.Das Feld
vcenter.resource_pool
entspricht dem Flag--vcenter-resource-pool
im Befehlgkectl register bootstrap
.
DATASTORE
: Der Name Ihres vCenter-Datenspeichers. Der angegebene Wert muss ein Name und kein Pfad sein. Wenn Sie einen Pfad eingeben müssen, fügen Sie das folgende Feld hinzu:folder = "FOLDER"
Konfigurationsdatei für die Administrator-Workstation: Verwenden Sie den Wert aus dem Feld
vCenter.datastore
.Das Feld
vcenter.datastore
entspricht dem Flag--vcenter-datastore
im Befehlgkectl register bootstrap
.
Wenn Sie eine VM-Speicherrichtlinie für die Clusterknoten verwenden möchten, entfernen Sie das Feld
vcenter.datastore
und fügen Sie stattdessenvcenter.storage_policy_name
hinzu. Fügen Sie außerdem dem Befehlgkectl register bootstrap
das Flag--vcenter-storage-policy
hinzu. Sie müssen entweder einen Wert fürvcenter.datastore
oder fürvcenter.storage_policy_name
angeben, aber nicht für beide.FOLDER
: Der Name des vCenter-Ordners, in dem sich Ihre Cluster-VMs befinden sollen. Wenn Sie keinen Ordner verwenden, entfernen Sie dieses Feld.Konfigurationsdatei für die Administrator-Workstation: Verwenden Sie den Wert aus dem Feld
vCenter.folder
.Das Feld
vcenter.folder
entspricht dem Flag--vcenter-folder
im Befehlgkectl register bootstrap
.
CA_CERT_DATA
: Geben Sie das vCenter-CA-Zertifikat im PEM-Format ein. So rufen Sie die CA-Zertifikatsdaten ab:Führen Sie dazu diesen Befehl aus:
cat CA_CERT_PATH_LOCAL | tr '\n' '\\n'
Ersetzen Sie
CA_CERT_PATH_LOCAL
durch den Pfad zum Root-CA-Zertifikat für Ihren vCenter-Server. Wenn Sie Ihre Administratorworkstation mitgkeadm
erstellt haben, können Sie den Wert aus dem FeldcaCertPath
in der Konfigurationsdatei der Administratorworkstation verwenden. Das ist der Pfad auf Ihrem lokalen Computer.gkeadm
Die CA-Zertifikatsdatei wurde auf Ihre Administrator-Workstation kopiert. Sie müssen den Pfad der Administrator-Workstation im Flag--vcenter-ca-cert-path
im Befehlgkectl register bootstrap
angeben.Kopieren Sie das Zertifikat, das vom vorherigen Befehl ausgegeben wurde, und fügen Sie es in einen Texteditor ein. Ersetzen Sie alle Instanzen des Backslash-Zeichens (\) durch ein Zeilenumbruchzeichen (\n).
Kopieren Sie das geänderte Zertifikat und fügen Sie es in die Platzhaltervariable
CA_CERT_DATA
ein.
NETWORK
: Geben Sie den Namen Ihres vCenter-Netzwerks ein.Konfigurationsdatei für die Administrator-Workstation: Verwenden Sie den Wert aus dem Feld
vCenter.network
.Das Feld
network_config.vcenter_network
entspricht dem Flag--vcenter-network
im Befehlgkectl register bootstrap
.
GATEWAY
: die IP-Adresse des Standardgateways für das Subnetz mit Ihren Knoten der Steuerungsebene.NETMASK
: Die Netzmaske für das Subnetz mit den Knoten des Steuerungsebenenclusters.DNS_SERVERS
: die IP-Adresse des DNS-Servers.NTP_SERVERS
: die IP-Adresse des Zeitservers (NTP).Geben Sie im Abschnitt
control_plane_ip_block.ips
die IP-Adressen und optional die Hostnamen für die drei Knoten der Steuerungsebene ein. Wenn Sie keinen Hostnamen eingeben, entfernen Sie diehostname
-Felder aus der Konfiguration.NUM_CPUS
: Die Anzahl der vCPUs für jeden Knoten der Steuerungsebene im Administratorcluster. Muss mindestens 4 sein.MEMORY
: Anzahl der Mebibyte Arbeitsspeicher für jeden Knoten der Steuerungsebene im Administratorcluster. Muss mindestens 8.192 sein. Wir empfehlen jedoch 16.384.CONTROL_PLANE_VIP
: die IP-Adresse, die Sie auf dem Load-Balancer für den Kubernetes API-Server des Administratorclusters konfiguriert haben.
Optional: Private Registry konfigurieren
Standardmäßig ruft Google Distributed Cloud beim Erstellen oder Aktualisieren von Clustern System-Images aus gcr.io/gke-on-prem-release
mit dem Dienstkonto für den Komponentenzugriff ab.
Optional können Sie Ihren eigenen Container-Registry-Server angeben, damit System-Images stattdessen von Ihrem privaten Registry-Server abgerufen werden.
So konfigurieren Sie eine private Registry:
Fügen Sie der Konfigurationsdatei den folgenden Abschnitt hinzu:
private_registry_config { address = "ADDRESS" ca_cert = "CA_CERT" }
Ersetzen Sie Folgendes:
ADDRESS
: Die IP-Adresse oder der FQDN (Fully Qualified Domain Name) der Maschine, auf der Ihre private Registry ausgeführt wird.CA_CERT
: Der öffentliche Schlüssel des CA-Zertifikats für die private Registry.
Wenn sich Ihr Netzwerk hinter einem Proxyserver befindet, fügen Sie der Konfigurationsdatei Folgendes hinzu:
proxy { url: "PROXY_SERVER_ADDRESS" no_proxy: "BYPASS_LIST" }
Ersetzen Sie Folgendes:
PROXY_SERVER_ADDRESS
: die HTTP-Adresse Ihres Proxyservers. Geben Sie die Portnummer an, auch wenn sie mit dem Standardport des Schemas identisch ist.BYPASS_LIST
: Eine durch Kommas getrennte Liste mit IP-Adressen, IP-Adressbereichen, Hostnamen und Domainnamen, die nicht durch den Proxyserver geleitet werden sollen.
Beispiel:
url: "http://my-proxy.example.local:80" no_proxy: "192.0.2.0/24,my-host.example.local,198.51.100.0"
Wenn Google Distributed Cloud eine Anfrage an eine dieser Adressen, Hosts oder Domains sendet, wird die Anfrage direkt an das Ziel gesendet und umgeht den Proxyserver.
Weitere Informationen zur Verwendung einer privaten Registry, einschließlich der Unterschiede zwischen normalen und erweiterten Clustern, finden Sie unter Private Container-Registry konfigurieren.
Konfigurationsdatei und Plan prüfen
Führen Sie im Verzeichnis, in dem sich main.tf
befindet, die folgenden Befehle aus:
Initialisieren Sie Terraform:
terraform init
Terraform installiert alle erforderlichen Bibliotheken, z. B. den Google Cloud -Anbieter. Beheben Sie bei Bedarf alle Fehler in
maint.tf
.Erstellen Sie den Terraform-Plan:
terraform plan -out tfplan
Überprüfen Sie die Konfiguration und nehmen Sie bei Bedarf Änderungen vor.
Bevor Sie den Plan anwenden können, müssen Sie zuerst den Bootstrap-Cluster erstellen, wie im nächsten Abschnitt beschrieben.
Bootstrap-Cluster erstellen
Wenn Sie den Befehl gkectl register bootstrap
ausführen, werden Sie aufgefordert, den Nutzernamen und das Passwort des vCenter-Kontos einzugeben. Halten Sie die Anmeldedaten bereit. Wenn Sie die Administrator-Workstation mit gkeadm
erstellt haben, befinden sich der Nutzername und das Passwort in der Datei credential.yaml
.
Melden Sie sich über SSH an Ihrer Administrator-Workstation an.
Authentifizieren Sie sich mit dem Google Cloud CLI:
gcloud auth login
Führen Sie den folgenden Befehl aus, um den Bootstrap-Cluster zu erstellen. Viele der Flag-Werte sind dieselben wie in den
main.tf
-Feldern. Der Befehl erfordert jedoch zusätzliche Werte, die Sie in den bereitgestellten Platzhaltervariablen angeben müssen.gkectl register bootstrap \ --target-cluster-name=ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID \ --location=REGION \ --vcenter-address=VCENTER_ADDRESS \ --vcenter-datacenter=DATA_CENTER \ --vcenter-cluster=VCENTER_CLUSTER \ --vcenter-resource-pool=RESOURCE_POOL \ --vcenter-datastore=DATASTORE \ --vcenter-network=NETWORK \ --vcenter-ca-cert-path=CA_CERT_PATH \ --bundle-path=BUNDLE_PATH \ --component-access-service-account-key-path=COMPONENT_ACCESS_SA_PATH \ --register-service-account-key-path=CONNECT_REGISTER_SA_PATH \ --stackdriver-service-account-key-path=LOG_MON_SA_PATH \ --cloud-audit-logging-service-account-key-path=CLOUD_AUDIT_SA_PATH
Ersetzen Sie Folgendes durch Pfade zur Administrator-Workstation:
CA_CERT_PATH
: Der Pfad zum Stamm-CA-Zertifikat für Ihren vCenter-Server.BUNDLE_PATH
: der Pfad zur Bundle-Datei. Wenn Siegkeadm
zum Erstellen der Administrator-Workstation verwendet haben, befindet sich die Bundle-Datei in/var/lib/gke/bundles/
. Der Dateiname hängt von der Google Distributed Cloud-Version ab, z. B.gke-onprem-vsphere-1.31.0-gke.889-full.tgz
.COMPONENT_ACCESS_SA_PATH
: der Pfad zur Schlüsseldatei für das Dienstkonto für den Komponentenzugriff.CONNECT_REGISTER_SA_PATH
: der Pfad zur Schlüsseldatei für das Dienstkonto „connect-register“.LOG_MON_SA_PATH
: der Pfad zur Schlüsseldatei für das Dienstkonto für Logging und Monitoring.CLOUD_AUDIT_SA_PATH
: Der Pfad zum Dienstkonto für die Audit-Log-Funktion. Wenn Sie kein Audit-Logging-Dienstkonto erstellt haben, geben Sie den Pfad zur Schlüsseldatei für das Logging-Monitoring-Dienstkonto an.
Passen Sie den Befehl nach Bedarf für die folgenden Flags an:
- Wenn Sie in
main.tf
einen Ordner angegeben haben, fügen Sie das folgende Flag hinzu:--vcenter-folder=FOLDER
- Wenn Sie in
main.tf
eine VM-Speicherrichtlinie angegeben haben, entfernen Sie--vcenter-datastore
und fügen Sie das folgende Flag hinzu:--vcenter-storage-policy-name=STORAGE_POLICY_NAME
Wenn sich Ihre Administrator-Workstation in einem Netzwerk befindet, das sich hinter einem Proxyserver befindet, fügen Sie die folgenden Flags hinzu:
--proxy-url=PROXY_URL
--no-proxy=NO_PROXY
Ersetzen Sie Folgendes:
- PROXY_URL: die URL des Proxyservers.
- NO_PROXY: Der Wert der Domains und IP-Adressen, die vom Proxying ausgeschlossen sind, durch Komma getrennt.
Wenn Sie ein Flag hinzufügen, achten Sie darauf, dass Sie den Backslash-Zeichen (\) für die Fortsetzung der Befehlszeile hinzufügen.
Geben Sie den vCenter-Nutzernamen ein (oder kopieren Sie ihn und fügen Sie ihn ein), wenn Sie dazu aufgefordert werden. Der Nutzername wird nicht auf dem Bildschirm angezeigt.
Geben Sie das vCenter-Passwort ein (oder kopieren Sie es und fügen Sie es ein), wenn Sie dazu aufgefordert werden. Das Passwort wird nicht auf dem Bildschirm angezeigt.
Mit dem Befehl werden zahlreiche Validierungen ausgeführt. Nachdem gkectl
den Bootstrap-Cluster erfolgreich erstellt hat, wird eine Ausgabe angezeigt, die in etwa so aussieht (zur besseren Lesbarkeit gekürzt):
Running workstation validations - Validation Category: Workstation - [SUCCESS] Workstation OS - [SUCCESS] Workstation Hardware - [SUCCESS] Workstation Package - [SUCCESS] Workstation NTP - [SUCCESS] Workstation Docker ... All validation results were SUCCESS. Unpacking GKE on-prem bundle: /var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.889-full.tgz ... Successfully created and registered the bootstrap cluster ... Waiting for preflight checks to run or OnPremAdminCluster to be applied...... -
Der Prozess wird fortgesetzt, bis der Administratorcluster erstellt ist.
Wenn Sie den Befehl gkectl register bootstrap
beenden, bevor der Administratorcluster erstellt wurde, schlägt die Erstellung fehl. Sie müssen den Bootstrap-Cluster dann mit dem folgenden Befehl löschen:
gkectl delete bootstrap \ --target-cluster-name=ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID \ --location=REGION \ --register-service-account-key-path=CONNECT_REGISTER_SA_PATH
Erstellen Sie den Administratorcluster.
Wenden Sie den Terraform-Plan an, um den Administratorcluster zu erstellen:
terraform apply "tfplan"
Das Erstellen des Administratorclusters dauert mindestens 15 Minuten. Sie können den Cluster in der Google Cloud Console auf der Seite GKE-Cluster aufrufen.
Console
Verfahrensübersicht
Bevor Sie den Administratorcluster erstellen, müssen Sie den Befehl gkectl register bootstrap
auf Ihrer Administrator-Workstation ausführen. Mit diesem Befehl wird ein Kubernetes in Docker-Cluster (Kind) auf der Administratorworkstation 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 nach der Erstellung des Administratorclusters automatisch gelöscht.
Im Folgenden finden Sie die allgemeinen Schritte zum Erstellen eines Administratorclusters mit der Console:
In der Konsole geben Sie Informationen ein, die für
gkectl register bootstrap
erforderlich sind. In der Konsole wird der Befehlgkectl register bootstrap
mit den von Ihnen eingegebenen Informationen angezeigt. Der angezeigte Befehl enthält auch Flags für Pfade, die Sie angeben müssen, bevor Sie den Befehl ausführen.Auf Ihrer Administrator-Workstation führen Sie
gkectl register bootstrap
aus, um den Bootstrap-Cluster zu erstellen. Wenn der Bootstrap-Cluster erstellt wurde, werden Sie in der Ausgabe aufgefordert, die Konfiguration des Administratorclusters abzuschließen. Der Prozess wird fortgesetzt, bis der Administratorcluster erstellt wurde.Sie kehren zur Konsole zurück, um die Informationen einzugeben, die zum Erstellen des Clusters erforderlich sind. Während der Clustererstellung gibt der Befehl
gkectl register bootstrap
Fortschrittsinformationen aus und schreibt Logs auf Ihre Administrator-Workstation. Wenn der Administratorcluster erstellt wird, wird der Bootstrap-Cluster automatisch gelöscht.
Cluster konfigurieren
Rufen Sie in der Console die Seite Cluster auf VMware erstellen auf.
Wählen Sie das Google Cloud -Projekt aus, in dem Sie den Cluster erstellen möchten.
Wenn Sie den Bootstrap-Cluster im nächsten Abschnitt erstellen, wird die ausgewählte Projekt-ID im Befehl
gkectl register bootstrap
im Flag--project-id
angezeigt.Achten Sie darauf, dass Administratorcluster erstellen ausgewählt ist.
Klicken Sie auf Weiter: Bootstrap-Umgebung installieren.
Bootstrap-Umgebung installieren
In diesem Abschnitt geben Sie die Informationen ein, die für den Befehl gkectl register bootstrap
erforderlich sind. Wenn Sie Werte in die Felder der Benutzeroberfläche eingeben, werden die Werte in der Konsole in die entsprechenden Flags für den Befehl gkectl register bootstrap
kopiert, der unten auf der Seite im Abschnitt Bootstrap-Umgebung über die Administrator-Workstation angezeigt wird.
Grundlagen der Bootstrap-Umgebung
Geben Sie einen Namen für den Administratorcluster ein. In der Konsole wird der Clustername als Wert für das Flag
--target-cluster-name
im Befehlgkectl register bootstrap
verwendet, der unten auf der Seite angezeigt wird. Der Name darf maximal 20 Zeichen lang sein.Wählen Sie im Feld Google Cloud API-Standort eine Google Cloud Region aus der Liste aus. Diese Einstellung gibt die Region an, in der die folgenden APIs und Dienste ausgeführt werden:
- GKE On-Prem API (
gkeonprem.googleapis.com
) - Flottendienst (
gkehub.googleapis.com
) - Connect-Dienst (
gkeconnect.googleapis.com
)
Mit dieser Einstellung wird auch die Region festgelegt, in der Folgendes gespeichert wird:
- Die Clustermetadaten, die die GKE On-Prem API zum Verwalten des Clusterlebenszyklus benötigt
- Cloud Logging- und Cloud Monitoring-Daten von Systemkomponenten
- Die von Cloud-Audit-Logs erstellten Administrator-Audit-Logs
Das Feld Google Cloud API Location entspricht dem Flag
--location
im Befehlgkectl register bootstrap
.- GKE On-Prem API (
Geben Sie im Feld Version des Administratorclusters die Version ein, die zum Erstellen des Clusters verwendet werden soll. Die hier ausgewählte Version muss mit der Version des Bundles übereinstimmen, die Sie im
--bundle-path
-Flag imgkectl register bootstrap
-Befehl angeben.
vCenter-Konfiguration
Wenn Sie Ihre Administrator-Workstation mit gkeadm
erstellt haben, öffnen Sie die Konfigurationsdatei der Administrator-Workstation, damit Sie Werte aus dem Abschnitt vCenter
in die Felder in der Konsole kopieren können. Diese Informationen sind auch in der generierten Konfigurationsdatei für den Administratorcluster enthalten.
Die meisten Felder in diesem Abschnitt sind unveränderlich. Im Abschnitt vCenter
in der Referenz zur Konfigurationsdatei des Administratorclusters finden Sie Informationen dazu, ob ein Feld änderbar oder unveränderlich ist.
Geben Sie im Feld Adresse die vCenter Server-Adresse ein.
Konfigurationsdatei für die Administrator-Workstation: Verwenden Sie den Wert aus dem Feld
vCenter.credentials.address
.Das Feld Adresse entspricht dem Flag
--vcenter-address
im Befehlgkectl register bootstrap
.
Geben Sie im Feld Rechenzentrum den Namen Ihres vCenter-Rechenzentrums ein.
Konfigurationsdatei für die Administrator-Workstation: Verwenden Sie den Wert aus dem Feld
vCenter.datacenter
.Das Feld Datacenter entspricht dem Flag
--vcenter-datacenter
im Befehlgkectl register bootstrap
.
Geben Sie im Feld Clustername den Namen Ihres vCenter-Clusters ein.
Konfigurationsdatei für die Administrator-Workstation: Verwenden Sie den Wert aus dem Feld
vCenter.cluster
.Das Feld Clustername entspricht dem Flag
--vcenter-cluster
im Befehlgkectl register bootstrap
.
Geben Sie im Feld Ressourcenpool den Namen oder Pfad Ihres vCenter-Ressourcenpools ein.
Konfigurationsdatei für die Administrator-Workstation: Verwenden Sie den Wert aus dem Feld
vCenter.resourcePool
.Das Feld Ressourcenpool entspricht dem Flag
--vcenter-resource-pool
im Befehlgkectl register bootstrap
.
Konfigurieren Sie eine Speicheroption, indem Sie eine der folgenden Optionen eingeben:
Feld Datenspeicher: Geben Sie den Namen Ihres vCenter-Datenspeichers ein. Der angegebene Wert muss ein Name und kein Pfad sein. Wenn Sie einen Pfad eingeben müssen, geben Sie ihn in das Feld Ordner ein.
Konfigurationsdatei für die Administrator-Workstation: Verwenden Sie den Wert aus dem Feld
vCenter.datastore
.Das Feld Datastore entspricht dem Flag
--vcenter-datastore
imgkectl register bootstrap
-Befehl.
Feld Name der Speicherrichtlinie: Geben Sie den Namen der VM-Speicherrichtlinie für die Clusterknoten ein. Weitere Informationen finden Sie unter Speicherrichtlinie konfigurieren.
Konfigurationsdatei für die Administrator-Workstation: Verwenden Sie den Wert aus dem Feld
vCenter.storagePolicyName
.Das Feld Name der Speicherrichtlinie entspricht dem Flag
--vcenter-storage-policy
im Befehlgkectl register bootstrap
.
Sie müssen entweder einen Wert in das Feld Datastore oder in das Feld Name der Speicherrichtlinie eingeben, aber nicht in beide.
Geben Sie optional im Feld Ordner den Namen des vCenter-Ordners ein, in dem sich Ihre Cluster-VMs befinden sollen.
Konfigurationsdatei für die Administrator-Workstation: Verwenden Sie den Wert aus dem Feld
vCenter.folder
.Das Feld Ordner entspricht dem Flag
--vcenter-folder
im Befehlgkectl register bootstrap
.
Geben Sie im Feld Netzwerk den Namen Ihres vCenter-Netzwerks ein.
Konfigurationsdatei für die Administrator-Workstation: Verwenden Sie den Wert aus dem Feld
vCenter.network
.Das Feld Network entspricht dem Flag
--vcenter-network
im Befehlgkectl register bootstrap
.
Geben Sie im Feld CA certificate path (Pfad des CA-Zertifikats) den Pfad zum Root-CA-Zertifikat für Ihren vCenter-Server ein.
Wenn Sie
gkeadm
zum Erstellen Ihrer Administrator-Workstation verwendet haben, hatgkeadm
die CA-Zertifikatsdatei, die Sie lokal hatten, auf Ihre Administrator-Workstation kopiert.Das Feld CA certificate path (Pfad zum CA-Zertifikat) entspricht
--vcenter-ca-cert-path
im Befehlgkectl register bootstrap
.
CA-Zertifikat abrufen
Nachdem Sie den Bootstrap-Cluster erstellt haben, müssen Sie das vCenter-CA-Zertifikat im PEM-Format auf der Seite Cluster basics (Cluster-Grundlagen) im Feld CA certificate data (CA-Zertifikatsdaten) angeben. Führen Sie den folgenden Befehl aus, um das Zertifikat aufzurufen:
cat CA_CERT_PATH
Ersetzen Sie CA_CERT_PATH
durch den Pfad zum Root-CA-Zertifikat für Ihren vCenter-Server. Wenn Sie diesen Befehl lokal ausführen, verwenden Sie den Pfad in vCenter.caCertPath
in der Konfigurationsdatei der Administrator-Workstation.
Kopieren Sie das gesamte Zertifikat in einen Texteditor, damit Sie es nach der Erstellung des Bootstrap-Clusters auf der Seite Cluster basics (Clustergrundlagen) in das Feld CA certificate data (CA-Zertifikatsdaten) einfügen können.
Bootstrapping der Umgebung über Administratorworkstation ausführen
Wenn Sie den Befehl gkectl register bootstrap
ausführen, werden Sie aufgefordert, den Nutzernamen und das Passwort des vCenter-Kontos einzugeben. Halten Sie die Anmeldedaten bereit. Wenn Sie die Administrator-Workstation mit gkeadm
erstellt haben, befinden sich der Nutzername und das Passwort in der Datei credential.yaml
.
Scrollen Sie zum Abschnitt Bootstrapping der Umgebung über Administratorworkstation ausführen, um den Befehl
gkectl register bootstrap
aufzurufen.Lassen Sie diese Seite geöffnet, während Sie zur Administratorworkstation wechseln, um den Bootstrap-Cluster zu erstellen.
Kopieren Sie den Befehl
gkectl register bootstrap
in einen Texteditor, damit Sie Werte für die folgenden Flags angeben können:./gkectl register bootstrap \ ... --bundle-path=BUNDLE_PATH \ ... --component-access-service-account-key-path=COMPONENT_ACCESS_SA_PATH \ --register-service-account-key-path=CONNECT_REGISTER_SA_PATH \ --stackdriver-service-account-key-path=LOG_MON_SA_PATH \ --cloud-audit-logging-service-account-key-path=CLOUD_AUDIT_SA_PATH
Ersetzen Sie Folgendes durch Pfade zur Administrator-Workstation:
BUNDLE_PATH
: der Pfad zur Bundle-Datei. Wenn Siegkeadm
zum Erstellen der Administrator-Workstation verwendet haben, befindet sich die Bundle-Datei in/var/lib/gke/bundles/
. Der Dateiname hängt von der Google Distributed Cloud-Version ab, z. B.gke-onprem-vsphere-1.31.0-gke.889-full.tgz
.COMPONENT_ACCESS_SA_PATH
: der Pfad zur Schlüsseldatei für das Dienstkonto für den Komponentenzugriff.CONNECT_REGISTER_SA_PATH
: der Pfad zur Schlüsseldatei für das Dienstkonto „connect-register“.LOG_MON_SA_PATH
: der Pfad zur Schlüsseldatei für das Dienstkonto für Logging und Monitoring.CLOUD_AUDIT_SA_PATH
: Der Pfad zum Dienstkonto für die Audit-Log-Funktion. Wenn Sie kein Audit-Logging-Dienstkonto erstellt haben, geben Sie den Pfad zur Schlüsseldatei für das Logging-Monitoring-Dienstkonto an.
Wenn Sie Ihre Administrator-Workstation mit
gkeadm
erstellt haben, wurdegkectl
außerdem in das Verzeichnis/usr/bin/
heruntergeladen. Entfernen Sie in diesem Fall./
vom Anfang des Befehls, da sichgkectl
nicht im aktuellen Arbeitsverzeichnis befindet.Verwenden Sie SSH, um eine Verbindung zu Ihrer Administrator-Workstation herzustellen.
Kopieren Sie den Befehl und fügen Sie ihn in ein Terminalfenster auf Ihrer Administratorarbeitsstation ein.
Geben Sie den vCenter-Nutzernamen ein (oder kopieren Sie ihn und fügen Sie ihn ein), wenn Sie dazu aufgefordert werden. Der Nutzername wird nicht auf dem Bildschirm angezeigt.
Geben Sie das vCenter-Passwort ein (oder kopieren Sie es und fügen Sie es ein), wenn Sie dazu aufgefordert werden. Das Passwort wird nicht auf dem Bildschirm angezeigt.
Mit dem Befehl werden zahlreiche Validierungen ausgeführt. Nachdem gkectl
den Bootstrap-Cluster erfolgreich erstellt hat, wird eine Ausgabe angezeigt, die in etwa so aussieht (zur besseren Lesbarkeit gekürzt):
Running workstation validations - Validation Category: Workstation - [SUCCESS] Workstation OS - [SUCCESS] Workstation Hardware - [SUCCESS] Workstation Package - [SUCCESS] Workstation NTP - [SUCCESS] Workstation Docker ... All validation results were SUCCESS. Unpacking GKE on-prem bundle: /var/lib/gke/bundles/gke-onprem-vsphere-1.31.0-gke.889-full.tgz ... Successfully created and registered the bootstrap cluster ... Waiting for preflight checks to run or OnPremAdminCluster to be applied...... -
Der Prozess wird fortgesetzt, bis der Administratorcluster erstellt ist.
Wenn Sie den Befehl gkectl register bootstrap
beenden, bevor der Administratorcluster erstellt wurde, schlägt die Erstellung fehl. Sie müssen den Bootstrap-Cluster dann mit dem folgenden Befehl löschen:
gkectl delete bootstrap \ --target-cluster-name=ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID \ --location=REGION \ --register-service-account-key-path=CONNECT_REGISTER_SA_PATH
Administratorcluster fertig konfigurieren
Kehren Sie zur Console zurück und führen Sie die folgenden Schritte aus:
Klicken Sie auf der Seite Bootstrap-Umgebung installieren auf Verbindung prüfen.
Bei Erfolg wird in der Console
Verbindung hergestellt angezeigt.Die Verbindung zum Bootstrap-Cluster muss hergestellt werden, bevor Sie fortfahren können. Wenn die Verbindung nicht hergestellt wird, prüfen Sie die Argumente, die Sie für den Befehl
gkectl register bootstrap
angegeben haben:Der Wert für
--target-cluster-name
muss dem Namen des Administratorclusters entsprechen, 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, die Projekt-ID oder andere Flag-Werte ändern müssen, gehen Sie so vor:
- Geben Sie
Ctrl-C
ein, umgkectl register bootstrap
zu beenden. Bootstrap-Cluster löschen:
gkectl delete bootstrap \ --target-cluster-name=ADMIN_CLUSTER_NAME \ --project-id=PROJECT_ID \ --location=REGION \ --register-service-account-key-path=CONNECT_REGISTER_SA_PATH
Führen Sie den Befehl
gkectl register bootstrap
noch einmal aus.
Klicken Sie auf Weiter: Clustergrundlagen, um mit der Konfiguration des Administratorclusters zu beginnen.
Clustergrundlagen
Kopieren Sie im Feld CA certificate data (CA-Zertifikatsdaten) das gesamte vCenter-CA-Zertifikat im PEM-Format und fügen Sie es ein, wie zuvor im Abschnitt CA-Zertifikat abrufen beschrieben.
Geben Sie im Abschnitt Autorisierung die E-Mail-Adressen der Nutzer ein, denen Sie die schreibgeschützte Kubernetes-Rolle
clusterrole/view
gewähren möchten. Ihre E‑Mail-Adresse wird automatisch hinzugefügt. Die angewendeten Richtlinien für die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) ermöglichen es Nutzern, schreibgeschützte Befehle über das Connect-Gateway auszuführen.Klicken Sie auf Nächste Steuerungsebene.
Steuerungsebene
Prüfen Sie die Standardeinstellungen im Abschnitt Steuerungsebene und ändern Sie sie nach Bedarf.
Geben Sie im Abschnitt IP-Adressen für Knoten der Steuerungsebene die IP-Adressen in den folgenden Feldern ein:
Gateway: Die IP-Adresse des Standardgateways für das Subnetz mit Ihren Clusterknoten.
Netzmaske: Die Netzmaske für das Subnetz mit Ihren Clusterknoten.
IP-Adressen: Geben Sie die IP-Adresse und optional den Hostnamen für die drei Knoten auf der Steuerungsebene ein.
Klicken Sie auf Weiter: Netzwerk.
Netzwerk
In diesem Abschnitt geben Sie die Netzwerkinformationen an, die zum Erstellen des Administratorclusters erforderlich sind.
Akzeptieren Sie im Abschnitt Service- und Pod-CIDRs entweder die Standardwerte für die IP-Adressbereiche des Kubernetes-Dienstes und des Pods oder geben Sie andere CIDR-Adressbereiche ein.
Dienst-CIDR: Kleinstmöglicher Bereich:
/24
. Größtmöglicher Bereich:/12
.Pod-CIDR: Kleinstmöglicher Bereich:
/18
. Größtmöglicher Bereich: /8`.
Geben Sie im Abschnitt Host config die NTP-Server, DNS-Server und optional die DNS-Suchdomains an, die von den VMs verwendet werden, die Ihre Clusterknoten sind. Nachdem der Cluster erstellt wurde, können Sie diese Werte nicht mehr ändern.
Klicken Sie auf Weiter: Load Balancer.
Load-Balancer
In diesem Abschnitt wählen Sie den Load-Balancer-Typ aus, den Sie verwenden möchten. Weitere Informationen finden Sie unter Load-Balancing – Übersicht.
Wählen Sie in der Liste Load-Balancer-Typ einen Load Balancer aus:
Mit MetalLB gebündelt: Der MetalLB-Load-Balancer ist gebündelt und erfordert weniger Konfiguration als das manuelle Load-Balancing. Die MetalLB-Komponenten werden auf Ihren Clusterknoten ausgeführt. Sie müssen also keine separaten VMs für Ihren Load-Balancer erstellen.
Manuell: Sie können einen beliebigen Load-Balancer verwenden, solange Sie ihn vor dem Erstellen des Clusters einrichten. Bei jedem manuell eingerichteten Load-Balancer müssen Sie Zuordnungen zwischen virtuellen IP-Adressen (VIPs), Knotenadressen und NodePort-Werten konfigurieren.
Geben Sie im Feld VIP der Steuerungsebene die VIP ein, die für den an den Kubernetes API-Server gesendeten Traffic verwendet werden soll.
Klicken Sie auf Überprüfen und erstellen.
Die Console zeigt Statusmeldungen an, während die Einstellungen geprüft und der Cluster in Ihrem Rechenzentrum 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.
Details zum Clustererstellungsprozess werden auf Ihrer Administratorworkstation ausgegeben. Wenn die Preflight-Prüfungen erfolgreich sind, sehen Sie in etwa Folgendes:
[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 gkectl-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 gkectl-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.
Verbindung zum Administratorcluster herstellen
Mit dem Befehl gkectl register bootstrap
wird auf Ihrer Administratorworkstation eine kubeconfig
-Datei für den Administratorcluster erstellt. Das Verzeichnis, in dem sich die kubeconfig
befindet, und der Dateiname basieren auf dem Namen des Administratorclusters:
gkectl-workspace/ADMIN_CLUSTER_NAME/ADMIN_CLUSTER_NAME-kubeconfig
Sie müssen den Zugriff auf diese kubeconfig
einschränken, da sie Authentifizierungsdaten für den Cluster enthält.
Außerdem können Sie kubectl
-Befehle mit Lesezugriff über das Connect-Gateway ausführen.
Führen Sie den folgenden Befehl auf einem Computer mit installierter gcloud CLI aus, um einen
kubeconfig
-Eintrag abzurufen, der über das Connect-Gateway auf den Cluster zugreifen kann.gcloud container fleet memberships get-credentials ADMIN_CLUSTER_NAME \ --project=PROJECT_ID
Die Ausgabe sieht 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 mit Lesezugriff über das Connect-Gateway ausführen:kubectl get pods -A
Wenn Sie vollständige Administratorrechte für den Administratorcluster benötigen, lesen Sie den Abschnitt Connect-Gateway einrichten.
Fehlerbehebung
Siehe Fehlerbehebung beim Erstellen und Upgraden von Clustern.