Version 1.4. This version is fully supported, offering the latest patches and updates for security vulnerabilities, exposures, and issues impacting GKE on-prem. Refer to the release notes for more details. This is not the most recent version.

Admin- und Nutzercluster erstellen

Erfahren Sie, wie Sie einen Administrator- und einen Nutzercluster mit grundlegender Konfiguration erstellen.

Bei den Schritten in diesem Thema wird davon ausgegangen, dass Sie gkeadm zum Erstellen Ihrer Administratorworkstation verwendet haben. Wenn Sie nicht gkeadm verwendet haben, sondern stattdessen das erweiterte Thema Administrator-Workstation mit einer statischen IP-Adresse erstellen ausgeführt haben, müssen Sie möglicherweise die in den einzelnen Schritten der folgenden Anleitung erläuterten Anpassungen vornehmen. Für eine DHCP-Administrator-Workstation müssen Sie die entsprechende DHCP-Installationsanleitung verwenden.

Wenn Sie sich hinter einem Proxy befinden, verwenden alle gkectl-Befehle automatisch denselben Proxy, den Sie in Ihrer Konfigurationsdatei für Internetanfragen von der Administrator-Workstation festgelegt haben. Befindet sich Ihre Administrator-Workstation nicht hinter demselben Proxy, finden Sie weitere Informationen unter "Manuelle Proxyoptionen" in den Themen der erweiterten Installationsanleitung: Statische IP-Adresse | DHCP.

SSH-Verbindung zur Administrator-Workstation herstellen

Stellen Sie eine SSH-Verbindung zu Ihrer Administrator-Workstation her, indem Sie die Anweisungen unter SSH-Verbindung zu Ihrer Administrator-Workstation abrufen befolgen.

Ihr Dienstkonto auf der Zulassungsliste ist auf Ihrer Administrator-Workstation aktiviert. Führen Sie alle verbleibenden Schritte in diesem Thema auf Ihrer Administratorworkstation aus.

Statische IP-Adressen für den Administratorcluster konfigurieren

Erstellen Sie eine Hostkonfigurationsdatei mit dem Namen admin-hostconfig.yaml, um die statischen IP-Adressen anzugeben, die Sie für Ihren Administratorcluster verwenden möchten. Für diese Übung müssen Sie fünf IP-Adressen angeben, die vom Administratorcluster verwendet werden sollen.

Im Folgenden finden Sie ein Beispiel für eine Hostkonfigurationsdatei mit fünf Hosts:

hostconfig:
  dns: 172.16.255.1
  tod: 216.239.35.0
  otherdns:
  - 8.8.8.8
  - 8.8.4.4
  othertod:
  - ntp.ubuntu.com
  searchdomainsfordns:
  - "my.local.com"
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

Das Feld ips enthält ein Array von IP-Adressen und Hostnamen. Dies sind die IP-Adressen und Hostnamen, die GKE On-Prem den Knoten Ihres Administratorclusters zuweist.

In der Hostkonfigurationsdatei geben Sie auch die Adressen der DNS-Server, Zeitserver und des Standard-Gateways an, die von den Knoten des Administratorclusters verwendet werden.

Das Feld searchdomainsfordns ist ein Array von DNS-Suchdomains, die im Cluster verwendet werden sollen. Diese Domains werden als Teil einer Domainsuchliste verwendet.

Statische IP-Adressen für den Nutzercluster konfigurieren

Erstellen Sie zur Angabe der statischen IP-Adressen, die Sie für Ihren Nutzercluster verwenden möchten, eine Hostkonfigurationsdatei mit dem Namen user-hostconfig.yaml.

Im Folgenden finden Sie ein Beispiel für eine Hostkonfigurationsdatei mit drei Hosts:

hostconfig:
  dns: 172.16.255.1
  tod: 216.239.35.0
  otherdns:
  - 8.8.8.8
  - 8.8.4.4
  othertod:
  - ntp.ubuntu.com
  searchdomainsfordns:
  - "my.local.com"
blocks:
  - netmask: 255.255.252.0
    gateway: 172.16.23.254
    ips:
    - ip: 172.16.20.15
      hostname: user-host1
    - ip: 172.16.20.16
      hostname: user-host2
    - ip: 172.16.20.17
      hostname: user-host3

Das Feld ips enthält ein Array von IP-Adressen und Hostnamen. Dies sind die IP-Adressen und Hostnamen, die GKE On-Prem Ihren Nutzerclusterknoten zuweist.

In der Hostkonfigurationsdatei geben Sie auch die Adressen der DNS-Server, Zeitserver und des Standardgateways an, die von den Knoten des Nutzerclusters verwendet werden.

Das Feld searchdomainsfordns ist ein Array von DNS-Suchdomains, die im Cluster verwendet werden sollen. Diese Domains werden als Teil einer Domainsuchliste verwendet.

Ausgefüllte Felder in der GKE On-Prem-Konfigurationsdatei

Sie haben beim Erstellen der Administrator-Workstation eine Konfigurationsdatei mit dem Namen admin-ws-config.yaml ausgefüllt. Das gkeadm-Befehlszeilentool hat die Datei admin-ws-config.yaml zum Erstellen der Administrator-Workstation verwendet.

Als gkeadm die Administrator-Workstation erstellt hat, wurde eine zweite Konfigurationsdatei mit dem Namen config.yaml erzeugt. Diese Konfigurationsdatei, die sich auf Ihrer Administrator-Workstation befindet, dient zum Erstellen von GKE On Prem-Clustern.

Die Dateien admin-ws-config.yaml und config.yaml haben mehrere Felder gemeinsam. Die Werte für diese gemeinsamen Felder sind bereits in der Datei config.yaml ausgefüllt.

Die folgenden Felder sind bereits mit Werten gefüllt, die Sie beim Erstellen der Administrator-Workstation angegeben haben:

vcenter:
  credentials:
    address:
    username:
    password:
  datacenter:
  datastore:
  cluster:
  network:
  resourcepool:
  cacertpath:
gkeconnect:
  projectid:
  registerserviceaccountkeypath:
  agentserviceaccountkeypath:
stackdriver:
  projectid:
  serviceaccountkeypath:
gcrkeypath:

Rest Ihrer GKE On-Prem-Konfigurationsdatei ausfüllen

Als Nächstes füllen Sie die verbleibenden Felder der Datei config.yaml aus.

bundlepath

Die GKE On-Prem-Bundle-Datei enthält alle Komponenten in einem bestimmten GKE On-Prem-Release. Legen Sie den Wert von bundlepath auf den Pfad zur Bundle-Datei der Administrator-Workstation fest.

bundlepath: /var/lib/gke/bundles/gke-onprem-vsphere-1.4.3-gke.3-full.tgz

vcenter.datadisk

GKE On-Prem erstellt ein VM-Laufwerk (VMDK), das die Kubernetes-Objektdaten für den Administratorcluster enthält. Das Installationsprogramm erstellt das VMDK für Sie, aber Sie müssen im Feld vcenter.datadisk einen Namen für das VMDK angeben. Beispiel:

vcenter:
  ...
  datadisk: "my-disk.vmdk"
vSAN-Datenspeicher: Ordner für das VMDK erstellen

Wenn Sie einen vSAN-Datenspeicher verwenden, müssen Sie das VMDK in einem Ordner ablegen. Sie müssen den Ordner im Voraus manuell erstellen. Erstellen Sie dazu mit govc einen Ordner:

govc datastore.mkdir -namespace=true my-gke-on-prem-folder

Legen Sie dann vcenter.datadisk auf den Pfad des VMDK einschließlich des Ordners fest. Beispiel:

vcenter:
...
datadisk: "my-gke-on-prem-folder/my-disk.vmdk"

In Version 1.1.1 ist es aufgrund eines bekannten Problems erforderlich, dass Sie die UUID (Universally Unique Identifier) des Ordners anstelle seines Pfads angeben.

proxy

Wenn sich Ihr Netzwerk hinter einem Proxyserver befindet, müssen Sie die Proxyadresse und alle weiteren Adressen angeben, die nicht über den Proxyserver geleitet werden sollen.

Legen Sie proxy.url fest, um die HTTP-Adresse Ihres Proxyservers anzugeben. Sie müssen die Portnummer angeben, auch wenn sie mit dem Standardport des Schemas identisch ist. Der hier angegebene Proxyserver wird von Ihren lokalen GKE On-Prem-Clustern verwendet. Außerdem wird Ihre Administrator-Workstation automatisch so konfiguriert, dass sie denselben Proxyserver verwendet, sofern Sie nicht die Umgebungsvariable HTTPS_PROXY auf Ihrer Administrator-Workstation festgeleget haben.

Legen Sie proxy.noproxy fest, um eine Liste von IP-Adressen, IP-Adressbereichen, Hostnamen und Domainnamen zu definieren, die nicht über den Proxyserver geleitet werden sollen. Wenn GKE On-Prem eine Anfrage an eine dieser Adressen, Hosts oder Domains sendet, wird diese Anfrage direkt gesendet.

Beispiel:

proxy:
  url: "http://my-proxy.example.local:80"
  noproxy: "10.151.222.0/24, my-host.example.local,10.151.2.1"

admincluster.ipblockfilepath

Da Sie statische IP-Adressen verwenden, benötigen Sie eine Hostkonfigurationsdatei, wie unter Statische IP-Adressen konfigurieren beschrieben. Geben Sie den Pfad zu Ihrer Hostkonfigurationsdatei im Feld admincluster.ipblockfilepath ein. Beispiel:

admincluster:
  ipblockfilepath: "/my-config-directory/admin-hostconfig.yaml"

admincluster.bigip.credentials

GKE On-Prem benötigt die IP-Adresse oder den Hostnamen, den Nutzernamen und das Passwort Ihres F5 BIG-IP-Load-Balancers. Legen Sie die Werte unter admincluster.bigip fest, um diese Informationen bereitzustellen. Fügen Sie einen Anchor &bigip-credentials nach credentials ein, sodass Sie diese Informationen nicht im Abschnitt usercluster wiederholen müssen. Beispiel:

admincluster:
  ...
  bigip:
    credentials: &bigip-credentials
      address: "203.0.113.2"
      username: "my-admin-f5-name"
      password: "rJDlm^%7aOzw"

admincluster.bigip.partition

Zuvor haben Sie eine BIG-IP-Partition für Ihren Administratorcluster erstellt. Legen Sie admincluster.bigip.partition auf den Namen Ihrer Partition fest. Beispiel:

admincluster:
  ...
  bigip:
    partition: "my-admin-f5-partition"

admincluster.vips

Setzen Sie den Wert von admincluster.vips.controlplanevip auf die IP-Adresse, die Sie für den Load-Balancer für den Kubernetes API-Server des Administratorclusters konfiguriert haben. Legen Sie den Wert von ingressvip auf die IP-Adresse fest, die Sie auf dem Load-Balancer für den Dienst für eingehenden Traffic des Administratorclusters konfiguriert haben. Beispiel:

admincluster:
  ...
  vips:
    controlplanevip: 203.0.113.3
    ingressvip: 203.0.113.4

admincluster.serviceiprange und admincluster.podiprange

Der Administratorcluster muss einen Bereich von IP-Adressen für Dienste und einen Bereich von IP-Adressen für Pods haben. Diese Bereiche werden durch die Felder admincluster.serviceiprange und admincluster.podiprange angegeben. Diese Felder werden ausgefüllt, wenn Sie gkectl create-config ausführen. Sie können die Werte auch ändern.

Die Bereich für Dienste und Pods dürfen sich nicht überschneiden. Außerdem dürfen sich diese beiden Bereiche nicht mit IP-Adressen überschneiden, die für Knoten in einem Cluster verwendet werden.

Beispiel:

admincluster:
  ...
  serviceiprange: 10.96.232.0/24
  podiprange: 192.168.0.0/16

usercluster.ipblockfilepath

Da Sie statische IP-Adressen verwenden, benötigen Sie eine Hostkonfigurationsdatei, wie unter Statische IP-Adressen konfigurieren beschrieben. Geben Sie den Pfad zu Ihrer Hostkonfigurationsdatei im Feld usercluster.ipblockfilepath ein. Beispiel:

usercluster:
  ipblockfilepath: "/my-config-directory/user-hostconfig.yaml"

usercluster.bigip.credentials

Fügen Sie eine Referenz *bigip-credentials nach usercluster.bigip.credentials ein, um address, username und password zu verwenden, die Sie in admincluster.bigip.credentials angegeben haben. Beispiel:

usercluster:
  ...
  bigip:
    credentials: *bigip-credentials

usercluster.bigip.partition

Zuvor haben Sie eine BIG-IP-Partition für Ihren Nutzercluster erstellt. Legen Sie usercluster.bigip.partition auf den Namen Ihrer Partition fest. Beispiel:

usercluster:
  ...
  bigip:
    partition: "my-user-f5-partition"
  ...

usercluster.vips

Setzen Sie den Wert von usercluster.vips.controlplanevip auf die IP-Adresse, die Sie für den Load-Balancer für den Kubernetes API-Server des Nutzerclusters konfiguriert haben. Legen Sie den Wert von ingressvip auf die IP-Adresse fest, die Sie auf dem Load-Balancer für den Dienst für eingehenden Traffic des Nutzerclusters konfiguriert haben. Beispiel:

usercluster:
  ...
  vips:
    controlplanevip: 203.0.113.6
    ingressvip: 203.0.113.7

usercluster.serviceiprange und usercluster.podiprange

Der Nutzercluster muss einen IP-Adressbereich für Dienste und einen IP-Adressbereich für Pods haben. Diese Bereiche werden durch die Felder usercluster.serviceiprange und usercluster.podiprange angegeben. Diese Felder werden ausgefüllt, wenn Sie gkectl create-config ausführen. Sie können die Werte auch ändern.

Die Bereich für Dienste und Pods dürfen sich nicht überschneiden. Außerdem dürfen sich diese beiden Bereiche nicht mit IP-Adressen überschneiden, die für Knoten in einem Cluster verwendet werden.

Beispiel:

usercluster:
  ...
  serviceiprange: 10.96.233.0/24
  podiprange: 172.16.0.0/12

VMware DRS-Anti-Affinitätsregeln deaktivieren

GKE On-Prem erstellt automatisch die DRS-Anti-Affinitätsregeln (Distributed Resource Scheduler) für die Knoten Ihres Nutzerclusters, wodurch sie auf mindestens drei physische Hosts in Ihrem Rechenzentrum verteilt werden.

Für diese Funktion muss die vSphere-Umgebung die folgenden Bedingungen erfüllen:

  • VMware DRS ist aktiviert. Für VMware DRS ist die vSphere Enterprise Plus-Lizenzversion erforderlich. Informationen zum Aktivieren von DRS finden Sie unter Enabling VMware DRS in a cluster.
  • Das vSphere-Nutzerkonto im Feld vcenter hat die Berechtigung Host.Inventory.EditCluster.
  • Es sind mindestens drei physische Hosts verfügbar.

Wenn Sie eine vSphere Standard-Lizenz haben, können Sie VMware DRS nicht aktivieren.

Wenn Sie DRS nicht aktiviert haben oder nicht mindestens drei Hosts haben, für die vSphere-VMs geplant werden können, fügen Sie Ihrer Konfigurationsdatei usercluster.antiaffinitygroups.enabled: false hinzu. Beispiel:

usercluster:
  ...
  antiaffinitygroups:
    enabled: false

Weitere Informationen finden Sie in den Versionshinweisen für Version 1.1.0-gke.6.

lbmode

Legen Sie lbmode auf "Integrated" fest. Beispiel:

lbmode: "Integrated"

stackdriver.clusterlocation

Legen Sie stackdriver.clusterlocation auf eine Google Cloud-Region fest, in der Logs gespeichert werden sollen. Es empfiehlt sich, eine Region in der Nähe Ihres lokalen Rechenzentrums auszuwählen.

stackdriver.enablevpc

Setzen Sie stackdriver.enablevpc auf true, wenn das Netzwerk Ihres Clusters durch eine VPC gesteuert wird. So wird gewährleistet, dass alle Telemetriedaten über die eingeschränkten IP-Adressen von Google übertragen werden.

Zusätzliche Felder in der Konfigurationsdatei

Die Konfigurationsdatei von GKE On-Prem enthält zusätzlich zu den in diesem Thema gezeigten Feldern mehrere andere Felder. Sie können beispielsweise das Feld manuallbspec verwenden, um GKE On-Prem für die Ausführung im manuellen Load-Balancing-Modus zu konfigurieren.

Eine vollständige Beschreibung der Felder in der Konfigurationsdatei finden Sie unter Über DHCP installieren und Über statische IP-Adressen installieren.

Konfigurationsdatei validieren

Nachdem Sie die Konfigurationsdatei geändert haben, führen Sie gkectl check-config aus, um zu prüfen, ob die Datei gültig ist und für die Installation verwendet werden kann:

gkectl check-config --config config.yaml

Wenn der Befehl FAILURE-Meldungen 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.

gkectl prepare ausführen

Führen Sie gkectl prepare aus, um Ihre vSphere-Umgebung zu initialisieren:

gkectl prepare --config config.yaml --skip-validation-all

Administrator- und Nutzercluster erstellen

  1. Erstellen Sie den Administratorcluster und den Nutzercluster mit dem Befehl gkectl create cluster.

    gkectl create cluster --config config.yaml --skip-validation-all

    Der Befehl gkectl create cluster erstellt kubeconfig-Dateien mit dem Namen [CLUSTER_NAME]-kubeconfig im aktuellen Verzeichnis, wobei [CLUSTER_NAME] der Name ist, den Sie für cluster festgelegt haben. Beispiel: MY-CLUSTER-kubeconfig.

    Die GKE-On-Prem-Dokumentation verwendet die folgenden Platzhalter, um auf diese kubeconfig-Dateien zu verweisen:

    • Administratorcluster: [ADMIN_CLUSTER_KUBECONFIG]
    • Nutzercluster: [USER_CLUSTER_KUBECONFIG]
  2. Prüfen Sie, ob der Cluster erstellt und ausgeführt wird:

    1. Führen Sie den folgenden Befehl aus, um den Administratorcluster zu prüfen:

      kubectl get nodes --kubeconfig [ADMIN_CLUSTER_KUBECONFIG]

      Die Ausgabe listet die Knoten des Administratorclusters auf.

    2. Führen Sie den folgenden Befehl aus, um den Nutzercluster zu prüfen:

      kubectl get nodes --kubeconfig [USER_CLUSTER_KUBECONFIG]

      Die Ausgabe listet die Knoten des Nutzerclusters auf. Beispiel:

      NAME                        STATUS   ROLES    AGE   VERSION
      xxxxxx-1234-ipam-15008527   Ready    <none>   12m   v1.14.7-gke.24
      xxxxxx-1234-ipam-1500852a   Ready    <none>   12m   v1.14.7-gke.24
      xxxxxx-1234-ipam-15008536   Ready    <none>   12m   v1.14.7-gke.24
      

    Tipp: Wenn Ihre Cluster registriert sind, können Sie sich in der Cloud Console anmelden, um zu prüfen, ob sie erfolgreich erstellt wurden.

Fahren Sie mit dem nächsten Abschnitt fort, um zu erfahren, wie Sie eine Anwendung in Ihrem Nutzercluster bereitstellen.