Administratorcluster erstellen

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:

  1. Stellen Sie eine Verbindung zu Ihrer Administrator-Workstation her.
    Diese VM hat 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. (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.
  5. Erstellen Sie einen Administratorcluster.
    Verwenden Sie gkectl, um einen neuen Administratorcluster wie in den vollständigen Konfigurationsdateien angegeben zu erstellen. Die onprem-admin-cluster-controller im temporären Bootstrap-Cluster verwaltet die Erstellung des Administratorclusters.
  6. 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 Abschnitt network.hostconfig erforderlich. Der Abschnitt network.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 Abschnitt loadBalancer.seesaw aus.

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

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.

Nächste Schritte

Nutzercluster erstellen