In diesem Dokument wird gezeigt, wie Sie einen Administratorcluster für GKE on VMware erstellen. Der Administratorcluster führt die Kubernetes-Steuerungsebene für den Administratorcluster selbst und für die zugehörigen Nutzercluster aus. Sie müssen einen Administratorcluster erstellen, bevor Sie Nutzercluster zum Ausführen Ihrer Arbeitslasten erstellen.
Weitere Informationen zum Administratorcluster finden Sie in der Installationsübersicht.
Verfahrensübersicht
Dies sind die primären Schritte zum Erstellen eines Administratorclusters:
- Stellen Sie eine Verbindung zu Ihrer Administrator-Workstation her.
- Diese VM hat die erforderlichen Tools, um neue Cluster zu erstellen.
- 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 gegebenenfalls in die private Registry.
- Führen Sie den Befehl „
gkectl prepare
“ aus.
- (Optional) Erstellen Sie einen Seesaw-Load-Balancer.
- Wenn Sie sich für die Verwendung des Seesaw-Load-Balancers entschieden haben, führen Sie
gkectl create loadbalancer
aus.
- Erstellen Sie einen Administratorcluster.
- Verwenden Sie
gkectl
, um einen neuen Administratorcluster wie in den vollständigen Konfigurationsdateien angegeben zu erstellen. Dieonprem-admin-cluster-controller
im temporären Bootstrap-Cluster verwaltet die Erstellung des Administratorclusters.
- 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.
Hinweise
Sie müssen eine Administrator-Workstation erstellt haben.
Lesen Sie das Dokument zur Planung der IP-Adressen. Achten Sie darauf, dass genügend IP-Adressen verfügbar sind, und prüfen Sie noch einmal, wie die Clusterknoten ihre IP-Adressen bestimmen sollen: über DHCP oder statisch. Wenn Sie statische IP-Adressen verwenden möchten, müssen Sie eine IP-Blockdatei ausfüllen, die die von Ihnen ausgewählten Adressen enthält.
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 bestimmten Load-Balancern müssen Sie den Load-Balancer einrichten, bevor Sie Ihren Administratorcluster erstellen.
Entscheiden Sie im Abschnitt
privateRegistry
, ob Sie eine öffentliche oder private Registry für GKE on VMware-Komponenten verwenden möchten.Sehen Sie sich das Feld osImageType an und entscheiden Sie, welche Art von Betriebssystem Sie auf Ihren Administratorclusterknoten ausführen möchten.
1. Verbindung zu Ihrer Administrator-Workstation herstellen
Folgen Sie der Anleitung zum Abrufen einer SSH-Verbindung zu Ihrer Administrator-Workstation. Die Administrator-Workstation bietet die Tools, die Sie zum Erstellen Ihres Administratorclusters benötigen. Auf der Administrator-Workstation ist auch das Dienstkonto für den Komponentenzugriff aktiviert.
Führen Sie alle verbleibenden Schritte in diesem Thema auf Ihrer Administrator-Workstation im Basisverzeichnis aus.
2. Konfigurationsdatei ausfüllen
Als gkeadm
die Administrator-Workstation erstellt hat, wurde eine zweite Konfigurationsdatei mit dem Namen admin-cluster.yaml
erzeugt. 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. Eine Ausnahme ist das Feld dataDisk
, das Sie jetzt ausfüllen müssen.
network
Legen Sie fest, wie die Clusterknoten ihre IP-Adressen abrufen sollen. Folgende Optionen sind verfügbar:
Von einem DHCP-Server, den Sie im Voraus eingerichtet haben. Legen Sie
network.ipMode.type
auf"dhcp"
fest.Aus einer Liste der von Ihnen angegebenen statischen IP-Adressen. Legen Sie
network.ipMode.type
auf"static"
fest und erstellen Sie eine IP-Blockdatei, die die statischen IP-Adressen bereitstellt. Ein Beispiel für eine IP-Blockdatei finden Sie unter Beispiel für ausgefüllte Konfigurationsdateien.
Füllen Sie nach Bedarf die restlichen Felder im Netzwerkabschnitt der Konfigurationsdatei aus:
Wenn Sie statische IP-Adressen für Ihre Clusterknoten verwenden möchten, sind das Feld
network.ipMode.ipBlockFilePath
und der Abschnittnetwork.hostconfig
erforderlich. Der Abschnittnetwork.hostconfig
enthält Informationen zu NTP-Servern, DNS-Servern und DNS-Suchdomains, die von Ihren Clusterknoten verwendet werden.Wenn Sie einen Hochverfügbarkeits-Administratorcluster oder den Seesaw-Load-Balancer verwenden, ist der Abschnitt
network.hostconfig
erforderlich, unabhängig davon, ob Sie DHCP oder statische IP-Adressen für Ihre Clusterknoten verwenden.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.
Unabhängig davon, ob Sie einen DHCP-Server verwenden oder eine Liste statischer IP-Adressen angeben, müssen Sie für Ihre Administratorclusterknoten genügend IP-Adressen haben. Dies schließt die Knoten im Administratorcluster ein, die die Steuerungsebenen für alle zugehörigen Nutzercluster ausführen. Wie viele IP-Adressen Sie benötigen, erfahren Sie unter IP-Adressen planen.
Administratorcluster mit Hochverfügbarkeit (Vorschau)
Wenn Sie einen Hochverfügbarkeits-Administratorcluster erstellen möchten, füllen Sie die Abschnitte network.controlPlaneIPBlock
und network.hostConfig
aus. Setzen Sie auch adminMaster.replicas
auf 3
.
Ein Hochverfügbarkeits-Administratorcluster hat drei Knoten, auf denen Komponenten der Steuerungsebene ausgeführt werden.
Hochverfügbarkeits-Administratorcluster haben folgende Anforderungen und Einschränkungen:
Ein Nutzercluster, der von einem Administratorcluster mit Hochverfügbarkeit verwaltet wird, muss Controlplane V2 aktivieren.
Hochverfügbarkeits-Administratorcluster unterstützen keine Sicherung und Wiederherstellung.
Sie können den Seesaw-Load-Balancer nicht für einen Hochverfügbarkeits-Administratorcluster verwenden. Außerdem können Sie den Seesaw-Load-Balancer nicht für einen Nutzercluster verwenden, der von einem Hochverfügbarkeits-Administratorcluster verwaltet wird.
Hochverfügbarkeits-Administratorcluster unterstützen nicht die CA-Rotation von Administratorclustern.
Hochverfügbarkeits-Administratorcluster unterstützen
gkectl get-config
nicht.
loadBalancer
Legen Sie eine VIP für den Kubernetes API-Server Ihres Administratorclusters fest. Legen Sie eine andere VIP für den Add-on-Server fest. Geben Sie Ihre VIPs als Werte für loadBalancer.vips.controlPlaneVIP
und loadBalancer.vips.addonsVIP
an.
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.Gebündeltes Seesaw-Load-Balancing. Legen Sie
loadBalancer.kind
auf"Seesaw"
fest und füllen Sie den AbschnittloadBalancer.seesaw
aus.Integriertes Load-Balancing mit F5 BIG-IP. Legen Sie
loadBalancer.kind
auf"F5BigIP"
fest und füllen Sie den Abschnittf5BigIP
aus.Manuelles Load-Balancing. Legen Sie
loadBalancer.kind
auf"ManualLB"
fest und füllen Sie den AbschnittmanualLB
aus.
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.
Geben Sie in diesem Feld an, ob GKE on VMware Anti-Affinitätsregeln von VMware Distributed Resource Scheduler (DRS) für Ihre Administratorclusterknoten erstellen soll, sodass sie 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 im Abschnitt adminMaster
die Felder cpus
und memoryMB
aus.
Vorschau: Wenn Sie einen Administratorcluster mit Hochverfügbarkeit erstellen möchten, setzen Sie das Feld replicas
im Abschnitt adminMaster
auf 3
. Andernfalls legen Sie 1
fest.
addonNode
Legen Sie addonNode.autoResize.enabled
entsprechend Ihren Anforderungen auf true
oder false
fest.
proxy
Wenn sich das Netzwerk mit den Knoten des Administratorclusters hinter einem Proxyserver befindet, füllen Sie den Abschnitt proxy
aus.
privateRegistry
Legen Sie fest, wo Sie Container-Images für die Komponenten von GKE on VMware speichern möchten. Folgende Optionen sind verfügbar:
Container Registry
Ihre eigene private Docker-Registry.
Wenn Sie Ihre eigene private Registry verwenden möchten, füllen Sie den Abschnitt privateRegistry
aus.
componentAccessServiceAccountKeyPath
GKE on VMware verwendet Ihr Dienstkonto für den Komponentenzugriff, um Clusterkomponenten aus Container 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 bei einer Google Cloud-Flotte. Füllen Sie dazu den Abschnitt gkeConnect
aus.
stackdriver
Wenn Sie Cloud Logging und Cloud Monitoring für Ihren Cluster aktivieren möchten, füllen Sie den Abschnitt stackdriver
aus.
Dieser Bereich ist standardmäßig erforderlich. Wenn Sie diesen Abschnitt nicht ausfüllen, müssen Sie also das Flag --skip-validation-stackdriver
angeben, wenn Sie gkectl create admin
ausführen.
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.
clusterBackup
Wenn Sie die Sicherung des Administratorclusters aktivieren möchten, legen Sie für clusterBackup.datastore
den vSphere-Datenspeicher fest, in dem die Clustersicherungen gespeichert werden sollen.
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.
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.
Beispiel für ausgefüllte Konfigurationsdateien
Hier ist ein Beispiel für eine ausgefüllte IP-Blockdatei und eine ausgefüllte Administratorcluster-Konfigurationsdatei. Die Konfiguration aktiviert einige, aber nicht alle verfügbaren Features.
vc-01-ipblock.yaml
blocks: - netmask: 255.255.252.0 gateway: 172.16.23.254 ips: - ip: 172.16.20.10 hostname: admin-host1 - ip: 172.16.20.11 hostname: admin-host2 - ip: 172.16.20.12 hostname: admin-host3 - ip: 172.16.20.13 hostname: admin-host4 - ip: 172.16.20.14 hostname: admin-host5 - ip: 172.16.20.15 hostname: admin-host6 - ip: 172.16.20.16 hostname: admin-host7 - ip: 172.16.20.17 hostname: admin-host8
vc-01-admin-cluster.yaml
apiVersion: v1 kind: AdminCluster name: "gke-admin-01" bundlePath: "/var/lib/gke/bundles/gke-onprem-vsphere-1.11.0-gke.543-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" dataDisk: "vc01-admin-disk.vmdk" network: hostConfig: dnsServers: - "203.0.113.1" - "198.51.100.1" ntpServers: - "216.239.35.4" ipMode: type: "static" ipBlockFilePath: "vc-01-ipblock.yaml" serviceCIDR: "10.96.232.0/24" podCIDR: "192.168.0.0/16" vCenter: networkName: "vc01-net-1" loadBalancer: vips: controlPlaneVIP: "172.16.20.59" addonsVIP: "172.16.20.60" kind: "MetalLB" antiAffinityGroups: enabled: true 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.
3. 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.
4. (Optional) Seesaw-Load-Balancer erstellen
Beachten Sie, dass Sie mehrere Load-Balancing-Optionen für Ihren Administratorcluster haben: Metal LB, Seesaw, F5 BIG-IP oder manuell.
Wenn Sie den Seesaw-Load-Balancer verwenden möchten, führen Sie den Schritt in diesem Abschnitt aus. Andernfalls können Sie diesen Abschnitt überspringen.
Erstellen und konfigurieren Sie die VMs für den Seesaw-Load-Balancer:
gkectl create loadbalancer --config ADMIN_CLUSTER_CONFIG
5 Erstellen Sie den Administratorcluster.
Erstellen Sie den Administratorcluster:
gkectl create admin --config ADMIN_CLUSTER_CONFIG
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. Führen Sie folgenden Befehl aus, um den Clusternamen anzusehen:
kubectl config get-clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Die Ausgabe zeigt den Namen des Clusters. Beispiel:
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
:
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 in der Instanz von vCenter Server die VM-Verschlüsselung aktiviert haben, müssen Sie die Berechtigung Cryptographic Operations.Direct Access (Kryptografische Vorgänge.Direktzugriff) haben, bevor Sie den 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.
6. 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:
gke-admin-master-hdn4z Ready control-plane,master ... gke-admin-node-7f46cc8c47-g7w2c Ready ... gke-admin-node-7f46cc8c47-kwlrs Ready ...
7. Dateien sichern
Wir empfehlen, die kubeconfig-Datei des Administratorclusters zu sichern. Kopieren Sie also die kubeconfig-Datei von Ihrer Administrator-Workstation an einen anderen Speicherort. Wenn Sie dann keinen Zugriff mehr auf die Administratorworkstation haben oder die kubeconfig-Datei auf Ihrer Administratorworkstation 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 keinen Zugriff mehr auf den Administratorcluster haben, können Sie trotzdem über SSH eine Verbindung zu den Knoten des Administratorclusters herstellen. Auf diese Weise können Sie etwaige 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 kannst du admin-cluster-ssh-key
an einem anderen Speicherort deiner Wahl sichern.
Fehlerbehebung
Siehe Fehlerbehebung beim Erstellen und Upgraden von Clustern.