Administratorcluster erstellen

In diesem Dokument wird gezeigt, wie Sie einen Administratorcluster für GKE on VMware erstellen. Der Administratorcluster verwaltet Nutzercluster, auf denen Ihre Arbeitslasten ausgeführt werden.

Weitere Informationen zum Administratorcluster finden Sie in der Installationsübersicht.

Verfahrensübersicht

Dies sind die primären Schritte zum Erstellen eines Administratorclusters:

  1. Bereiten Sie eine Administratorworkstation vor.
    Diese Maschine verfügt über die erforderlichen Tools, um neue Cluster zu erstellen.
  2. 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.
  3. Importieren Sie Betriebssystem-Images in vSphere und übertragen Sie Container-Images gegebenenfalls in die private Registry.
    Führen Sie den Befehl „gkectl prepare“ aus.
  4. Erstellen Sie einen Administratorcluster.
    Erstellen Sie mit gkectl einen neuen Administratorcluster, wie in den ausgefüllten Konfigurationsdateien angegeben.
  5. 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 wie "Validation Category: GCP - [UNKNOWN] GCP service: [Stackdriver] could not get GCP services" möglicherweise Fehler angezeigt. Fügen Sie Ihren Befehlen den Parameter --skip-validation-gcp hinzu, um diese Fehler zu vermeiden.

Hinweise

  • 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 kubeception-Nutzercluster erstellen möchten, benötigen Sie genügend IP-Adressen für die Knoten der Steuerungsebene dieser Nutzercluster.

  • 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. Administratorworkstation vorbereiten

Sie müssen Ihre Administratorworkstation eingerichtet haben und sich bei ihr anmelden können, wie unter Administratorworkstation erstellen beschrieben. Die Administratorworkstation verfügt über die Tools, die Sie zum Erstellen des Administratorclusters benötigen.

Führen Sie alle verbleibenden Schritte in diesem Dokument auf Ihrer Administratorworkstation 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 Felder in diesem Abschnitt sind bereits mit den Werten ausgefüllt, die Sie beim Erstellen der Administrator-Workstation eingegeben haben.

network

Füllen Sie die Abschnitte network.controlPlaneIPBlock und network.hostConfig aus. Setzen Sie auch adminMaster.replicas auf 3.

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 Netzwerkabschnitt der Konfigurationsdatei aus.

loadBalancer

Legen Sie eine VIP für den Kubernetes API-Server Ihres Administratorclusters fest. Geben Sie Ihre VIP als Wert für loadBalancer.vips.controlPlaneVIP 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.

  • Integriertes Load-Balancing mit F5 BIG-IP. Legen Sie loadBalancer.kind auf "F5BigIP" fest und füllen Sie den Abschnitt f5BigIP aus.

  • Manuelles Load-Balancing. Legen Sie loadBalancer.kind auf "ManualLB" fest und füllen Sie den Abschnitt manualLB 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.

Setzen Sie das Feld replicas im Abschnitt 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

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. Wenn Sie die Abschnitte stackdriver und cloudAuditLogging in die Konfigurationsdatei aufnehmen, muss die ID in gkeConnect.projectID mit der in stackdriver.projectID und cloudAuditLogging.projectID festgelegten ID übereinstimmen. 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 angegebene Region mit der in cloudAuditLogging.clusterLocation, stackdriver.clusterLocation und gkeOnPremAPI.location konfigurierten Region übereinstimmen. Wenn die Regionen nicht identisch sind, schlägt die Clustererstellung fehl.

gkeOnPremAPI

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 in cloudAuditLogging.clusterLocation, gkeConnect.location und stackdriver.clusterLocation angegebenen Region übereinstimmen. Wenn die Regionen nicht identisch sind, schlägt die Clustererstellung fehl.

  • Wenn Sie alle Cluster im Projekt in der GKE On-Prem API registrieren möchten, führen Sie die Schritte unter Vorbereitung aus, um die GKE On-Prem API im Projekt zu aktivieren und zu verwenden.

  • Wenn Sie den Cluster nicht in der GKE On-Prem API registrieren möchten, fügen Sie diesen Abschnitt ein und legen Sie gkeOnPremAPI.enabled auf false fest. Wenn Sie keine Cluster im Projekt registrieren möchten, deaktivieren Sie gkeonprem.googleapis.com (den Dienstnamen für die GKE On-Prem API) im Projekt. Eine Anleitung dazu 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 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.

Beachten Sie die folgenden Anforderungen für neue Cluster:

  • Die ID in stackdriver.projectID muss mit der ID in gkeConnect.projectID und cloudAuditLogging.projectID übereinstimmen.

  • Die in stackdriver.clusterLocation festgelegte Google Cloud-Region muss mit der in cloudAuditLogging.clusterLocation und gkeConnect.location festgelegten Region übereinstimmen (wenn das Feld in der Konfigurationsdatei enthalten ist). Wenn gkeOnPremAPI.enabled den Wert true hat, muss dieselbe Region auch in gkeOnPremAPI.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:

  • Die ID in cloudAuditLogging.projectID muss mit der ID in gkeConnect.projectID und stackdriver.projectID übereinstimmen.

  • Die in cloudAuditLogging.clusterLocation festgelegte Google Cloud-Region muss mit der in stackdriver.clusterLocation und gkeConnect.location festgelegten Region übereinstimmen (wenn das Feld in der Konfigurationsdatei enthalten ist). Wenn gkeOnPremAPI.enabled den Wert true hat, muss dieselbe Region auch in gkeOnPremAPI.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.

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 Konfigurationsdatei für einen Administratorcluster. Die Konfiguration aktiviert einige, aber nicht alle der verfügbaren Funktionen.

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.

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.

5. 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 wie "Validation Category: GCP - [UNKNOWN] GCP service: [Stackdriver] could not get GCP services" möglicherweise Fehler angezeigt. 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. 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 die VM-Verschlüsselung in Ihrer Instanz von vCenter Server aktiviert haben, benötigen Sie die Berechtigung Kryptografische Vorgänge.Direktzugriff, 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.

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:

admin-cp-vm-1   Ready    control-plane,master   ...
admin-cp-vm-2   Ready    control-plane,master   ...
admin-cp-vm-3   Ready    control-plane,master   ...

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.

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.

Fehlerbehebung

Siehe Fehlerbehebung beim Erstellen und Upgraden von Clustern.

Nächste Schritte

Nutzercluster erstellen