Auf dieser Seite wird beschrieben, wie Sie einen Administratorcluster für die Verwendung in Topologiedomänen in Google Distributed Cloud 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.
Wenn Sie eine Topologiedomain einrichten möchten, müssen Sie den erweiterten Cluster aktivieren. Beachten Sie die folgenden Einschränkungen der Vorabversion für erweiterte Cluster:
- Sie können erweiterte Cluster nur beim Erstellen neuer Cluster der Version 1.31 aktivieren.
- Nachdem die erweiterten Clusterfunktionen aktiviert wurden, können Sie den Cluster nicht mehr 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 Enterprise-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:
- Administratorkonfigurationsdatei 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 Subnetzmaske 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 prepare
aus, um die Betriebssystem-Images in vSphere zu importieren und gegebenenfalls Container-Images in die private Registry zu übertragen.
- 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 in Topologiedomänen erstellen und verwalten können.
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 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. 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.
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 Abschnitt
privateRegistry
an und entscheiden Sie, ob Sie eine öffentliche oder private Registry für Google Distributed Cloud-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.
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 zum Zugriff auf jede Instanz von vCenter Server benötigen. Sie benötigen diese Informationen, um den Abschnitt
Secret
und den AbschnittVSphereInfraConfig.credentials.vCenters
in der Konfigurationsdatei der vSphere-Infrastruktur auszufüllen. So rufen Sie die erforderlichen Informationen ab:
Konfigurationsdatei für den Administratorcluster ausfüllen
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.
enableAdvancedCluster
Legen Sie enableAdvancedCluster
auf true
fest. Dadurch werden erweiterte Cluster aktiviert, die für die Einrichtung von Topologiedomänen erforderlich sind.
infraConfigFilePath
Fügen Sie im Feld infraConfigFilePath
den vollständigen Pfad zur Konfigurationsdatei der vSphere-Infrastruktur hinzu.
vCenter
Entfernen Sie diesen gesamten Abschnitt. Stattdessen konfigurieren Sie die vCenter-Serverinformationen in der Konfigurationsdatei der vSphere-Infrastruktur.
network
Entfernen Sie Folgendes aus der Konfigurationsdatei:
- Den gesamten Abschnitt
network.hostConfig
. Diese Informationen werden in der Konfigurationsdatei der vSphere-Infrastruktur pro Topologiedomain konfiguriert. - Das Feld
network.vCenter.networkName
. Dieses Feld wird in der Konfigurationsdatei der vSphere-Infrastruktur pro Topologiedomain konfiguriert. - Den gesamten Abschnitt
network.controlPlaneIPBlock
. Die IP-Adressen für das Gateway, die Subnetzmaske und die Knoten der Steuerungsebene werden in einer IP-Blockdatei konfiguriert.
- Den gesamten Abschnitt
Legen Sie für
network.ipMode.ipBlockFilePath
den Pfad zur IP-Blockdatei fest.Legen Sie
network.ipMode.type
aufstatic
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.
loadBalancer
Legen Sie
loadBalancer.kind
auf"ManualLB"
fest und entfernen Sie den AbschnittmanualLB
.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.
antiAffinityGroups
Legen Sie antiAffinityGroups.enabled
auf false
fest.
Anti-Affinitätsregeln des Distributed Resource Schedulers (DRS) werden von Topologiedomains nicht unterstützt.
adminMaster
Wenn Sie CPU und Arbeitsspeicher für die Knoten der Steuerungsebene des Administratorclusters angeben möchten, füllen Sie die Felder
cpus
undmemoryMB
im AbschnittadminMaster
aus.Administratorcluster müssen drei Knoten der Steuerungsebene haben. Setzen Sie das Feld
replicas
im BereichadminMaster
auf3
.Wenn Sie eine bestimmte Topologiedomain für die Knoten der Kontrollebene angeben möchten, fügen Sie den Domainnamen der Topologie dem Feld
adminMaster.topologyDomains
hinzu. Wenn Sie hier keinen Namen angeben, müssen Sie einen Namen invSphereInfraConfig.defaultTopologyDomain
in der Konfigurationsdatei der vSphere-Infrastruktur festlegen.
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.
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. Die ID in gkeConnect.projectID
muss mit der ID in stackdriver.projectID
und cloudAuditLogging.projectID
übereinstimmen. Wenn die Projekt-IDs nicht identisch sind, schlägt die Clustererstellung fehl.
Sie können 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
In diesem Abschnitt wird beschrieben, wie Cluster in der GKE On-Prem API registriert werden.
Das gkectl
-Befehlszeilentool ist das einzige verfügbare Tool zum Verwalten des Clusterlebenszyklus für Cluster mit Topologiedomänen. Die Google Cloud -Console, die Google Cloud CLI und Terraform werden zwar nicht für Cluster mit Topologiedomänen unterstützt, Sie können den Cluster aber 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 in stackdriver.clusterLocation
konfigurierten Region in der GKE On-Prem API registriert. 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
Füllen Sie den Abschnitt stackdriver
aus, um Cloud Logging und Cloud Monitoring für Ihren Cluster zu aktivieren.
Beachten Sie folgende Anforderungen:
Die ID in
stackdriver.projectID
muss mit der ID ingkeConnect.projectID
undcloudAuditLogging.projectID
übereinstimmen.Die in
stackdriver.clusterLocation
festgelegte Region für Google Cloud muss mit der incloudAuditLogging.clusterLocation
undgkeConnect.location
festgelegten Region übereinstimmen. 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.
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
enableAdvancedCluster
auftrue
festgelegt ist, müssen Sie incloudAuditLogging.serviceAccountKeyPath
undstackdriver.serviceAccountKeyPath
denselben Pfad angeben.Die ID in
cloudAuditLogging.projectID
muss mit der ID ingkeConnect.projectID
undstackdriver.projectID
übereinstimmen.Die in
cloudAuditLogging.clusterLocation
festgelegte Region Google Cloud muss der instackdriver.clusterLocation
undgkeConnect.location
festgelegten Region entsprechen (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
Entfernen Sie diesen Abschnitt. Die Sicherung 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
Da enableAdvancedCluster
auf true
gesetzt ist, entfernen Sie diesen Abschnitt.
osImageType
Legen Sie osImageType
fest.
auf ubuntu_cgroupv2
oder ubuntu_containerd
.
preparedSecrets
Entfernen Sie das Feld preparedSecrets
.
Vorbereitete Anmeldedaten werden nicht unterstützt, wenn Topologiedomains 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_containerd"
Konfigurationsdatei für die vSphere-Infrastruktur ausfüllen
Kopieren Sie die Vorlage für die Konfigurationsdatei der vSphere-Infrastruktur in die Datei im Verzeichnis, das Sie in der Konfigurationsdatei des Administratorclusters im Feld infraConfigFilePath
angegeben haben. Es gibt nur eine vSphere-Infrastrukturkonfigurationsdatei für den Administratorcluster und alle verwalteten Nutzercluster.
Secret
Füllen Sie den Abschnitt Secret
in der Konfigurationsdatei der vSphere-Infrastruktur aus. In diesem Abschnitt wird das vSphere-Anmeldedaten-Secret beschrieben, in dem die Anmeldedaten der einzelnen vCenter-Server gespeichert werden.
VSphereInfraConfig.name
Füllen Sie das Feld VSphereInfraConfig,name
aus.
VSphereInfraConfig.credentials.vCenters
Fügen Sie für jede Secret
einen entsprechenden Abschnitt VSphereInfraConfig.credentials.vCenters
hinzu.
VSphereInfraConfig,topologyDomains
Füllen Sie den Abschnitt VSphereInfraConfig.topologyDomains
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 Feld network.ipMode.ipBlockFilePath
in der Konfigurationsdatei des Administratorclusters angegeben haben. Fügen Sie die IP-Adressen für das Gateway, die Subnetzmaske und die drei Knoten der Steuerungsebene hinzu. Fügen Sie jeder IP-Adresse eines Knotens der Steuerungsebene isControlPlane: true
hinzu, wie im Beispiel für Topologiedomains 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
VERSION
durch die Version von Google Distributed Cloud, die Sie installieren möchten.Mit diesem Befehl wird das normale Bundle heruntergeladen. Laden Sie das vollständige Bundle nicht herunter, da es für erweiterte Cluster nicht unterstützt wird.
Führen Sie
gkectl prepare
aus, um Ihre vSphere-Umgebung zu initialisieren:gkectl prepare --config ADMIN_CLUSTER_CONFIG
Ersetzen Sie
ADMIN_CLUSTER_CONFIG
durch den Pfad zur Konfigurationsdatei des Administratorclusters.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 --configADMIN_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 Admin-Clusters. Um den Clusternamen anzuzeigen, können Sie Folgendes ausführen:
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. 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 ...
PodTemplate
konfigurieren
Das Topologielabel wird in die Labels der Knoten in der Topologiedomain eingefügt.
Sofern bei der Einrichtung Ihrer Topologiedomain nicht die Standardeinschränkung "topology.kubernetes.io/zone"
als Topologieschlüssel verwendet wurde, müssen Sie den Topologieschlüssel in der Pod-Vorlage Ihres Deployments, StatefulSets oder Replicasets konfigurieren.
Angenommen, Sie haben den Schlüssel im Topologielabel als "topology.examplepetstore.com/zone"
definiert. In PodTemplate
geben Sie den Schlüssel als Wert für das Feld topologySpreadConstraints.topologyKey
an. So kann der Kubernetes-Planer Pods über die Topologiedomain verteilen, um eine hohe Verfügbarkeit zu gewährleisten und eine Überkonzentrierung in einem einzelnen Bereich bei einem Ausfall zu verhindern.
Weitere Informationen zum Konfigurieren von topologySpreadConstraints
finden Sie in der Kubernetes-Dokumentation unter Begrenzungen für die Pod-Topologieverteilung.
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 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 weiterhin SSH verwenden, um eine Verbindung zu den Administratorclusterknoten herzustellen. 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 --kubeconfigADMIN_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 Topologiedomain erstellen