Auf dieser Seite wird beschrieben, wie Sie einen Administratorcluster für die Verwendung in Google Distributed Cloud Topologiedomänen erstellen. Der Administratorcluster verwaltet Nutzercluster, auf denen Ihre Arbeitslasten ausgeführt werden. Für die Verwendung von Topologiedomänen ist Google Distributed Cloud Version 1.31 oder höher erforderlich.
Zum Einrichten einer Topologiedomäne müssen Sie den erweiterten Cluster aktivieren. Beachten Sie die folgenden Einschränkungen für die Vorschau des erweiterten Clusters:
- Sie können den erweiterten Cluster nur beim Erstellen des Clusters für neue Cluster der Version 1.31 aktivieren.
- Nachdem der erweiterte Cluster aktiviert wurde, können Sie den Cluster nicht auf Version 1.32 aktualisieren. Aktivieren Sie den erweiterten Cluster nur in einer Testumgebung.
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.
Verfahrensübersicht
Dies sind die primären Schritte zum Erstellen eines Administratorclusters:
- Konfigurationsdatei für den Administratorcluster ausfüllen
- Geben Sie die Details für den neuen Administratorcluster an, indem Sie eine Konfigurationsdatei für den Administratorcluster ausfüllen.
- Konfigurationsdatei für die vSphere-Infrastruktur ausfüllen
- Geben Sie die Details zu Ihren Topologiedomänen in einer Konfigurationsdatei für die vSphere-Infrastruktur an.
- IP-Blockdatei ausfüllen
- Geben Sie die IP-Adressen für das Gateway, die Netzmaske und die Knoten der Steuerungsebene in einer IP-Blockdatei an.
- Betriebssystem-Images abrufen
- Laden Sie das normale Google Distributed Cloud-Bundle herunter. Führen Sie dann
gkectl prepareaus, um die Betriebssystem-Images in vSphere zu importieren und Container-Images gegebenenfalls in die private Registry zu übertragen.
- Erstellen Sie einen Administratorcluster.
- Erstellen Sie mit
gkectleinen 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
kubectldie Clusterknoten auf.
Am Ende dieses Verfahrens haben Sie einen laufenden Administratorcluster, mit dem Sie Nutzercluster in Topologiedomänen erstellen und verwalten können.
Hinweis
Prüfen Sie, ob Sie Ihre Administrator-Workstation eingerichtet haben und sich bei ihr anmelden können, wie unter Administrator-Workstation erstellen beschrieben. Die Administrator-Workstation bietet die Tools, die Sie zum Erstellen Ihres Administratorclusters benötigen. Führen Sie alle Schritte in diesem Dokument auf Ihrer Administrator-Workstation aus.
Lesen Sie das Dokument zur Planung der IP-Adressen. Prüfen Sie, ob genügend IP-Adressen für die drei Knoten der Steuerungsebene und eine virtuelle IP der Steuerungsebene verfügbar sind.
Konfigurieren Sie den Load-Balancer für das manuelle Load-Balancing. Der Load-Balancer muss eingerichtet sein, bevor Sie den Administratorcluster erstellen.
Sehen Sie sich den
privateRegistryAbschnitt an und entscheiden Sie, ob Sie eine öffentliche oder private Registry für Google Distributed Cloud-Komponenten verwenden möchten.Sehen Sie sich das osImageType Feld an und entscheiden Sie, welche Art von Betriebssystem Sie auf Ihren Administrator clusterknoten 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.
Erfassen Sie die Informationen, die Sie für den Zugriff auf jede Instanz von vCenter Server benötigen. Sie benötigen diese Informationen, um die
Secretund dieVSphereInfraConfig.credentials.vCentersAbschnitte in der Konfigurationsdatei für die vSphere-Infrastruktur auszufüllen. Informationen zum Abrufen der erforderlichen Informationen finden Sie unter:
Konfigurationsdatei für den Administratorcluster ausfüllen
Wenn Sie Ihre Administrator-Workstation 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, indem Sie den folgenden Befehl auf der Administrator-Workstation ausführen:
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.
enableAdvancedCluster
Setzen Sie enableAdvancedCluster
auf true. Dadurch werden erweiterte Cluster aktiviert, was für die Einrichtung von Topologiedomänen erforderlich ist.
infraConfigFilePath
Fügen Sie den vollständigen Pfad zur
Konfigurationsdatei für die vSphere-Infrastruktur
im infraConfigFilePath
Feld hinzu.
vCenter
Entfernen Sie diesen gesamten Abschnitt. Stattdessen konfigurieren Sie die vCenter Server-Informationen in der Konfigurationsdatei für die vSphere-Infrastruktur.
network
Entfernen Sie Folgendes aus der Konfigurationsdatei:
- Den gesamten Abschnitt
network.hostConfig. Diese Informationen werden in der Konfigurationsdatei für die vSphere-Infrastruktur pro Topologiedomäne konfiguriert. - Das Feld
network.vCenter.networkName. Dieses Feld wird in der Konfigurationsdatei für die vSphere-Infrastruktur pro Topologiedomäne konfiguriert. - Den gesamten Abschnitt
network.controlPlaneIPBlock. Die IP-Adressen für das Gateway, die Netzmaske und die Knoten der Steuerungsebene werden in einer IP-Blockdatei kon/figuriert.
- Den gesamten Abschnitt
Setzen Sie
network.ipMode.ipBlockFilePathauf den Pfad zur IP-Blockdatei.Setzen Sie
network.ipMode.typeaufstatic.Die 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.
loadBalancer
Setzen Sie
loadBalancer.kindauf"ManualLB"und entfernen Sie denmanualLBAbschnitt.Legen Sie eine VIP für den Kubernetes API-Server Ihres Administratorclusters fest. Stellen Sie die VIP als Wert für
loadBalancer.vips.controlPlaneVIPbereit.
Weitere Informationen finden Sie unter VIPs im Subnetz des Administratorclusters.
antiAffinityGroups
Set
antiAffinityGroups.enabled
auf false.
Anti-Affinitätsregeln für Distributed Resource Scheduler (DRS) werden mit Topologiedomänen nicht unterstützt.
adminMaster
Wenn Sie CPU und Arbeitsspeicher für die Knoten der Steuerungsebene des Administrator clusters angeben möchten, füllen Sie die Felder
cpusundmemoryMBimadminMasterAbschnitt aus.Administratorcluster müssen drei Knoten der Steuerungsebene haben. Setzen Sie das Feld
replicasim AbschnittadminMasterauf3.Wenn Sie eine bestimmte Topologiedomäne für die Knoten der Steuerungsebene angeben möchten, fügen Sie den Namen der Topologiedomäne dem
adminMaster.topologyDomainsFeld hinzu. Wenn Sie hier keinen Namen angeben, müssen Sie in der Konfigurationsdatei für die vSphere-Infrastruktur einen Namen invSphereInfraConfig.defaultTopologyDomainfestlegen.
proxy
Wenn sich das Netzwerk mit den Knoten des Administratorclusters hinter einem Proxyserver befindet,
füllen Sie den
proxy
Abschnitt 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
privateRegistryAbschnitt aus.
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
gkeConnect
Abschnitt ausfüllen. Die ID in gkeConnect.projectID muss 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.
Optional können Sie in gkeConnect.location eine Region angeben, in der die Flotten- und Connect-Dienste ausgeführt werden. Wenn Sie dieses Feld nicht angeben, verwendet der Cluster die globalen Instanzen dieser Dienste.
Wenn Sie gkeConnect.location angeben, muss die angegebene Region mit der Region übereinstimmen, die in cloudAuditLogging.clusterLocation, stackdriver.clusterLocation und gkeOnPremAPI.location konfiguriert ist. Wenn die Regionen nicht identisch sind, schlägt die Clustererstellung fehl.
gkeOnPremAPI
In diesem Abschnitt wird beschrieben, wie Cluster in der GKE On-Prem API registriert werden.
Das gkectl Befehlszeilentool ist das einzige verfügbare
Tool für das Lebenszyklusmanagement von Clustern
, die Topologiedomänen verwenden. Obwohl die Google Cloud Console, die
Google Cloud CLI und Terraform für Cluster, die Topologie
Domänen verwenden, nicht unterstützt werden, können Sie den Cluster optional bei der Erstellung in der GKE On-Prem API
registrieren.
Wenn die GKE On-Prem API in Ihrem Google 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 Clustererstellung 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.enabledauffalse. 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
Füllen Sie den
stackdriver
Abschnitt aus, um
Cloud Logging und Cloud Monitoring
für Ihren Cluster zu aktivieren.
Beachten Sie folgende Anforderungen:
Die ID in
stackdriver.projectIDmuss mit der ID ingkeConnect.projectIDundcloudAuditLogging.projectIDübereinstimmen.Die Google Cloud in
stackdriver.clusterLocationfestgelegte Region muss mit der Region übereinstimmen, die incloudAuditLogging.clusterLocationundgkeConnect.locationfestgelegt ist. WenngkeOnPremAPI.enabledauftruegesetzt ist, muss dieselbe Region auch ingkeOnPremAPI.locationfestgelegt sein.
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 die folgenden Anforderungen für neue Cluster:
Da
enableAdvancedClusterauftruegesetzt ist, müssen Sie denselben Pfad incloudAuditLogging.serviceAccountKeyPathundstackdriver.serviceAccountKeyPathangeben.Die ID in
cloudAuditLogging.projectIDmuss mit der ID ingkeConnect.projectIDundstackdriver.projectIDübereinstimmen.Die Google Cloud Region, die in
cloudAuditLogging.clusterLocationfestgelegt ist, muss mit der Region übereinstimmen, die instackdriver.clusterLocationundgkeConnect.locationfestgelegt ist (falls das Feld in Ihrer Konfigurationsdatei enthalten ist). WenngkeOnPremAPI.enabledauftruegesetzt ist, muss dieselbe Region auch ingkeOnPremAPI.locationfestgelegt sein.
Wenn die Projekt-IDs und Regionen nicht identisch sind, schlägt die Clustererstellung fehl.
clusterBackup
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, setzen Sie
autoRepair.enabled
auf true.
secretsEncryption
Da enableAdvancedCluster auf true gesetzt ist, entfernen Sie diesen Abschnitt.
osImageType
Legen Sie das
osImageType fest.
auf ubuntu_cgv2.
preparedSecrets
Entfernen Sie das Feld preparedSecrets.
Vorbereitete Anmeldedaten
werden nicht unterstützt, wenn Topologiedomänen aktiviert sind.
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.31.0-gke.1-full.tgz"
enableAdvancedCluster: true
infraConfigFilePath: "/my-config-folder/vsphere-infrastructure-config.yaml"
network:
serviceCIDR: "10.96.232.0/24"
podCIDR: "192.168.0.0/16"
ipMode:
type: "static"
ipBlockFilePath: "/my-config-folder/admin-cluster-ipblock.yaml"
loadBalancer:
vips:
controlPlaneVIP: "172.16.20.59"
kind: "ManualLB"
antiAffinityGroups:
enabled: false
adminMaster:
cpus: 4
memoryMB: 16384
replicas: 3
topologyDomains: "admin-cluster-domain"
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
autoRepair:
enabled: true
osImageType: "ubuntu_cgv2"
Konfigurationsdatei für die vSphere-Infrastruktur ausfüllen
Kopieren Sie die Vorlage für die
Konfigurationsdatei für die vSphere-Infrastruktur
in die Datei im Verzeichnis, das Sie im infraConfigFilePath
Feld in der Konfigurationsdatei des Administratorclusters angegeben haben. Es gibt nur eine Konfigurationsdatei für die vSphere-Infrastruktur für den Administratorcluster und alle verwalteten Nutzercluster.
Secret
Füllen Sie den Secret
Abschnitt in der Konfigurationsdatei für die vSphere-Infrastruktur aus. In diesem Abschnitt wird das Secret für die vSphere-Anmeldedaten beschrieben, in dem die Anmeldedaten jedes vCenter-Servers gespeichert sind.
VSphereInfraConfig.name
Füllen Sie das VSphereInfraConfig,name Feld aus.
VSphereInfraConfig.credentials.vCenters
Fügen Sie für jedes Secret einen entsprechenden
VSphereInfraConfig.credentials.vCenters Abschnitt hinzu.
VSphereInfraConfig,topologyDomains
Füllen Sie den
VSphereInfraConfig.topologyDomains Abschnitt aus, um
die Topologiedomänen zu definieren.
IP-Blockdatei ausfüllen
Kopieren Sie die Vorlage für die
IP-Blockdatei in die Datei im
Verzeichnis, das Sie im network.ipMode.ipBlockFilePath Feld
in der Konfigurationsdatei des Administratorclusters angegeben haben. Fügen Sie die IP-Adressen für das Gateway, die Netzmaske und die drei Knoten der Steuerungsebene hinzu. Fügen Sie für jede IP
Adresse des Knotens der Steuerungsebene isControlPlane: true hinzu, wie im
Beispiel für Topologiedomänen gezeigt.
Betriebssystem-Images abrufen
Laden Sie das normale Google Distributed Cloud-Bundle auf die Administrator-Workstation herunter:
gcloud storage cp gs://gke-on-prem-release/gke-onprem-bundle/VERSION/gke-onprem-vsphere-VERSION.tgz /var/lib/gke/bundles/gke-onprem-vsphere-VERSION.tgz
Ersetzen Sie
VERSIONdurch die Google Distributed Cloud Version, die Sie installieren möchten.Mit diesem Befehl wird das normale Bundle heruntergeladen. Laden Sie nicht das vollständige Bundle herunter, da es mit erweiterten Clustern nicht unterstützt wird.
Führen Sie
gkectl prepareaus, um Ihre vSphere-Umgebung zu initialisieren:gkectl prepare --config ADMIN_CLUSTER_CONFIG
Ersetzen Sie
ADMIN_CLUSTER_CONFIGdurch den Pfad zur Konfiguration des Administratorclusters.Mit dem Befehl
gkectl preparewerden 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
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. So rufen Sie den Clusternamen auf:
kubectl config get-clusters --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Die Ausgabe zeigt den Namen des Clusters. Beispiele:
NAME gke-admin-tqk8x
Wenn Sie möchten, können Sie den Namen und den Speicherort der kubeconfig-Datei ändern.
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. Beispiele:
admin-cp-vm-1 Ready control-plane,master ... admin-cp-vm-2 Ready control-plane,master ... admin-cp-vm-3 Ready control-plane,master ...
PodTemplate konfigurieren
Das Topologielabel wird in die Labels der Knoten in der Topologiedomäne eingefügt.
Sofern Sie bei der Einrichtung der Topologiedomäne nicht die Standardeinschränkung
"topology.kubernetes.io/zone"
als Topologieschlüssel verwendet haben, müssen Sie den Topologieschlüssel gegebenenfalls in der Pod
Vorlage Ihrer Bereitstellung, Ihres StatefulSets oder Ihres ReplicaSets konfigurieren.
Angenommen, Sie haben den Schlüssel im Topologielabel als
"topology.examplepetstore.com/zone" definiert. In der PodTemplate geben Sie den Schlüssel als Wert für das Feld topologySpreadConstraints.topologyKey an. So kann der Kubernetes-Scheduler Pods in der Topologiedomäne verteilen, um eine Hochverfügbarkeit zu gewährleisten und eine Überkonzentration in einem einzelnen Bereich im Falle eines Fehlers zu verhindern.
Weitere Informationen zum Konfigurieren von topologySpreadConstraints finden Sie unter
Pod Topology Spread Constraints
in der Kubernetes-Dokumentation.
Dateien sichern
Wir empfehlen, die kubeconfig-Datei des Administratorclusters zu sichern. Kopieren Sie dazu die kubeconfig-Datei von Ihrer Administrator-Workstation an einen anderen Speicherort. Wenn Sie dann den Zugriff auf die Administrator-Workstation verlieren oder die kubeconfig-Datei auf der 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 Knoten des Administratorclusters 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.
Fehlerbehebung
Siehe Fehlerbehebung beim Erstellen und Upgraden von Clustern.
Nächste Schritte
Nutzercluster für die Verwendung in der Topologiedomäne erstellen