Nutzercluster erstellen

In diesem Dokument wird gezeigt, wie Sie einen Nutzercluster für Anthos-Cluster auf VMware (GKE On-Prem) erstellen. In einem Nutzercluster können Sie Ihre Arbeitslasten ausführen. Jeder Nutzercluster ist einem Administratorcluster zugeordnet.

Weitere Informationen zu Administratorclustern und Nutzerclustern finden Sie in der Installationsübersicht.

Verfahrensübersicht

Dies sind die wichtigsten Schritte zum Erstellen eines Nutzerclusters:

  1. Verbindung zu Ihrer Administrator-Workstation herstellen
    Die Administrator-Workstation ist eine VM mit den erforderlichen Tools zum Erstellen eines Nutzerclusters.
  2. Ihre Konfigurationsdateien ausfüllen
    Geben Sie die Details für den neuen Cluster an. Füllen Sie dazu eine Nutzercluster-Konfigurationsdatei, eine Konfigurationsdatei für Anmeldedaten und möglicherweise eine IP-Blockdatei aus.
  3. (Optional) Seesaw-Load-Balancer erstellen
    Wenn Sie den Seesaw-Load-Balancer verwenden möchten, führen Sie gkectl create loadbalancer aus.
  4. Nutzercluster erstellen
    Führen Sie gkectl create cluster aus, um einen Cluster zu erstellen, wie in der Konfigurationsdatei angegeben.
  5. Prüfen Sie, ob Ihr Nutzercluster ausgeführt wird
    Rufen Sie mit kubectl die Clusterknoten auf.

Am Ende dieses Verfahrens haben Sie einen laufenden Nutzercluster, in dem Sie Ihre Arbeitslasten bereitstellen können.

Hinweis

  • Prüfen Sie, ob eine Administrator-Workstation und ein Administratorcluster erstellt wurden.

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

  • Sehen Sie sich den Abschnitt vcenter an. Überlegen Sie, ob Sie separate vSphere-Cluster für Ihren Administratorcluster und Ihre Nutzercluster verwenden möchten und ob Sie separate Rechenzentren verwenden möchten. Die Option mit separaten vSphere-Clustern befindet sich in der Vorschau für Version 1.12.0 und in GA für Version 1.12.1.

  • Sehen Sie sich den Abschnitt nodePools an. Überlegen Sie sich, wie viele Knotenpools Sie benötigen und welches Betriebssystem Sie in jedem Ihrer Pools ausführen möchten.

1. Verbindung zu Ihrer Administrator-Workstation herstellen

SSH-Verbindung zu Ihrer Administrator-Workstation abrufen.

Denken Sie daran, dass gkeadm Ihr Dienstkonto für den Komponentenzugriff auf der Administrator-Workstation aktiviert hat.

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 user-cluster.yaml erzeugt. Diese Konfigurationsdatei dient zum Erstellen Ihres Nutzerclusters.

Machen Sie sich mit der Konfigurationsdatei vertraut, indem Sie sich das Dokument zur Nutzercluster-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

Geben Sie für das Feld name einen Namen Ihrer Wahl für den Nutzercluster an.

gkeOnPremVersion

Dieses Feld ist bereits für Sie ausgefüllt. Es gibt die Version von Anthos-Cluster auf VMware an. Beispiel: 1.11.0-gke.543

vCenter

Die im Abschnitt vCenter Ihrer Administratorcluster-Konfigurationsdatei festgelegten Werte sind global. Das heißt, sie gelten für Ihren Administratorcluster und die zugehörigen Nutzercluster.

Für jeden von Ihnen erstellten Nutzercluster haben Sie die Möglichkeit, einige der globalen vCenter-Werte zu überschreiben.

Wenn Sie einen oder mehrere der globalen vCenter-Werte überschreiben möchten, füllen Sie die relevanten Felder im Abschnitt vCenter der Konfigurationsdatei des Nutzerclusters aus.

Insbesondere möchten Sie vielleicht getrennte vSphere-Cluster für Ihren Administrator-Cluster und Ihre Nutzer-Cluster verwenden, und Sie möchten vielleicht getrennte Rechenzentren für Ihren Administrator-Cluster und Ihre Nutzer-Cluster verwenden.

Ein Rechenzentrum und einen vSphere-Cluster verwenden

Standardmäßig wird ein Rechenzentrum und ein vSphere-Cluster sowohl für den Administrator- als auch für alle Nutzercluster verwendet. Die Werte in der Konfigurationsdatei des Administratorclusters werden auch für den Nutzercluster verwendet. Legen Sie in der Konfigurationsdatei des Nutzerclusters keine vCenter-Werte fest.

Nutzercluster in einem separaten vSphere-Cluster erstellen

Diese Funktion befindet sich in der Vorschau für Version 1.12.0 und ist für GA 1.12.1 verfügbar.

Wenn Sie einen Nutzercluster erstellen möchten, der sich in seinem eigenen vSphere-Cluster befindet, geben Sie in der Konfigurationsdatei des Nutzerclusters einen Wert für vCenter.cluster an.

Wenn sich Ihr Administrator- und Ihr Nutzercluster in separaten vSphere-Clustern befinden, können sie sich im selben Rechenzentrum oder in verschiedenen Rechenzentren befinden.

Nutzercluster mit einem separaten Rechenzentrum erstellen

Der Nutzercluster und der Administratorcluster können sich in verschiedenen Rechenzentren befinden. In diesem Fall befinden sie sich auch in separaten vSphere-Clustern.

Wenn Sie in der Konfigurationsdatei des Nutzerclusters vCenter.datacenter angeben, müssen Sie auch vCenter.datastore und vCenter.networkName sowie vCenter.cluster oder vCenter.resourcePool angeben.

Wenn Sie für den Administratorcluster und den Nutzercluster unterschiedliche Rechenzentren verwenden möchten, empfehlen wir Ihnen, für jede Steuerungsebene des Nutzerclusters einen separaten Datenspeicher im Administratorcluster-Rechenzentrum zu erstellen, sodass die Steuerungsebene des Administratorclusters und die Steuerungsebene des Nutzerclusters über isolierte Domänen für Datenspeicherausfälle verfügen. Sie können den Administratorcluster-Datenspeicher zwar für Knoten der Steuerungsebene des Nutzerclusters verwenden, aber die Knoten der Steuerungsebene des Nutzerclusters und der Administratorcluster werden dadurch in derselben Datenspeicher-Fehlerdomain abgelegt.

vCenter-Konto für einen Nutzercluster in seinem eigenen Rechenzentrum

Ein Nutzercluster kann ein anderes vCenter-Konto mit anderen vCenter.credentials als der Administratorcluster verwenden. Das vCenter-Konto für den Administratorcluster benötigt Zugriff auf das Administratorcluster-Rechenzentrum, während das vCenter-Konto für den Nutzercluster nur auf das Rechenzentrum des Nutzerclusters zugreifen muss.

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 Abschnitt network aus:

  • Wenn Sie statische IP-Adressen für Ihre Nutzerclusterknoten 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 den Seesaw-Load-Balancer verwenden, ist der Abschnitt network.hostconfig erforderlich, auch wenn Sie DHCP für Ihre Clusterknoten verwenden möchten.

  • 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 Ihren Nutzercluster genügend IP-Adressen haben. Dazu gehören die Knoten in Ihrem Nutzercluster sowie die Knoten im Administratorcluster, die die Steuerungsebene für Ihren Nutzercluster ausführen. Wie viele IP-Adressen Sie benötigen, erfahren Sie unter IP-Adressen planen.

Firewallregeln für einen Nutzercluster mit einem separaten network.vCenter.networkName-Wert

In deren jeweiligen Konfigurationsdateien können der Administratorcluster und der Nutzercluster separate network.vCenter.networkName-Werte verwenden, die unterschiedliche VLANs und unterschiedliche Rechenzentren darstellen. Die folgende regionenübergreifende Kommunikation muss jedoch zugelassen sein.

  • Nutzerknoten können auf die Ports 443 und 8132 auf der VIP-Adresse der Steuerungsebene des Nutzerclusters zugreifen und Rückgabepakete von diesen abrufen.

loadBalancer

Legen Sie eine VIP für den Kubernetes API-Server Ihres Nutzerclusters fest. Legen Sie eine andere VIP für den Ingress-Dienst Ihres Nutzerclusters fest. Geben Sie Ihre VIPs als Werte für loadBalancer.vips.controlPlaneVIP und loadBalancer.vips.ingressVIP an.

Weitere Informationen finden Sie unter VIPs im Nutzercluster-Subnetz und VIPs im Administratorcluster-Subnetz.

Entscheiden Sie, welche Art von Load-Balancing Sie verwenden möchten. Folgende Optionen sind verfügbar:

Weitere Informationen zu den Load-Balancing-Optionen finden Sie unter Load-Balancing – Übersicht.

enableDataplaneV2

Entscheiden Sie, ob Dataplane V2 für Ihren Nutzercluster aktiviert werden soll, und legen Sie entsprechend enableDataplaneV2 fest.

enableWindowsDataplaneV2

Wenn Sie einen Windows-Knotenpool haben möchten, entscheiden Sie, ob Windows Dataplane V2 aktiviert werden soll, und legen Sie enableWindowsDataplaneV2 entsprechend fest.

advancedNetworking

Wenn Sie ein NAT-Gateway für ausgehenden Traffic erstellen möchten, legen Sie für advancedNetworking den Wert true fest.

multipleNetworkInterfaces

Entscheiden Sie, ob Sie mehrere Netzwerkschnittstellen für Pods konfigurieren möchten, und legen Sie multipleNetworkInterfaces entsprechend fest.

storage

Wenn Sie die Bereitstellung von vSphere-CSI-Komponenten deaktivieren möchten, setzen Sie storage.vSphereCSIDisabled auf true.

masterNode

Die Steuerungsebene für Ihren Nutzercluster wird auf Knoten im Administratorcluster ausgeführt.

Im Abschnitt masterNode können Sie angeben, wie viele Knoten auf der Steuerungsebene für Ihren Nutzercluster verwendet werden sollen. Sie können auch einen Datenspeicher für die Knoten der Steuerungsebene angeben und festlegen, ob die automatische Größenanpassung für die Knoten aktiviert werden soll.

nodePools

Ein Knotenpool besteht aus einer Gruppe von Knoten in einem Cluster, die alle dieselbe Konfiguration haben. Beispielsweise kann auf den Knoten in einem Pool Windows und auf den Knoten in einem anderen Pool Linux ausgeführt werden.

Sie müssen mindestens einen Knotenpool angeben, indem Sie den Abschnitt nodePools ausfüllen.

Weitere Informationen finden Sie unter Knotenpools und Knotenpools erstellen und verwalten.

antiAffinityGroups

Legen Sie antiAffinityGroups.enabled auf true oder false fest.

Dieses Feld gibt an, ob Anthos-Cluster auf VMware DRS-Anti-Affinitätsregeln (Distributed Resource Scheduler) für Ihre Nutzerclusterknoten erstellt, wodurch sie auf mindestens drei physische Hosts in Ihrem Rechenzentrum verteilt werden.

stackdriver

Wenn Sie Cloud Logging und Cloud Monitoring für Ihren Cluster aktivieren möchten, füllen Sie den Abschnitt stackdriver aus.

gkeConnect

Ihr Nutzercluster muss bei einer Google Cloud-Flotte registriert sein.

Füllen Sie den Abschnitt gkeConnect aus, um ein Flotten-Hostprojekt und ein zugehöriges Dienstkonto anzugeben.

usageMetering

Wenn Sie die Nutzungsmessung für Ihren Cluster aktivieren möchten, füllen Sie den Abschnitt usageMetering aus.

cloudAuditLogging

Wenn Sie die Audit-Logs vom Kubernetes API-Server des Clusters in Cloud-Audit-Logs einbinden möchten, füllen Sie den Abschnitt cloudAuditLogging aus.

Beispiel für ausgefüllte Konfigurationsdateien

Hier sehen Sie ein Beispiel für eine ausgefüllte IP-Blockdatei und eine ausgefüllte Nutzercluster-Konfigurationsdatei. Die Konfiguration aktiviert einige, aber nicht alle verfügbaren Features.

vc-01-ipblock-user.yaml

blocks:
  - netmask: 255.255.252.0
    gateway: 172.16.23.254
    ips:
    - ip: 172.16.20.21
      hostname: user-host1
    - ip: 172.16.20.22
      hostname: user-host2
    - ip: 172.16.20.23
      hostname: user-host3
    - ip: 172.16.20.24
      hostname: user-host4
    - ip: 172.16.20.25
      hostname: user-host5
    - ip: 172.16.20.26
      hostname: user-host6

vc-01-user-cluster.yaml

apiVersion: v1
kind: UserCluster
name: "gke-user-01"
gkeOnPremVersion: 1.11.0-gke.543
network:
  hostConfig:
    dnsServers:
    - "203.0.113.1"
    - "198.51.100.1"
    ntpServers:
    - "216.239.35.4"
  ipMode:
    type: dhcp
    ipBlockFilePath: "vc-01-ipblock-user.yaml"
  serviceCIDR: 10.96.0.0/20
  podCIDR: 192.168.0.0/16
  vCenter:
    networkName: "vc01-net-1"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.20.32"
    ingressVIP: "172.16.21.30"
  kind: "MetalLB"
   metalLB:
    addressPools:
    - name: "gke-address-pool-01"
      addresses:
      - "172.16.21.30 - 172.16.21.39"
enableDataplaneV2: true
masterNode:
  cpus: 4
  memoryMB: 8192
  replicas: 1
nodePools:
- name: "gke-node-pool-01"
  cpus: 4
  memoryMB: 8192
  replicas: 3
  osImageType: "ubuntu_containerd"
antiAffinityGroups:
  enabled: true
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"
autoRepair:
  enabled: true

Konfigurationsdatei validieren

Nachdem Sie die Konfigurationsdatei des Nutzerclusters ausgefüllt haben, führen Sie gkectl check-config aus, um zu prüfen, ob die Datei gültig ist:

gkectl check-config --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Dabei gilt:

  • ADMIN_CLUSTER_KUBECONFIG: Pfad der kubeconfig-Datei für Ihren Administratorcluster

  • USER_CLUSTER_CONFIG: Pfad Ihrer Nutzercluster-Konfigurationsdatei

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. (Optional) Seesaw-Load-Balancer für den Nutzercluster erstellen

Wenn Sie den gebündelten Seesaw-Load-Balancer verwenden möchten, führen Sie den Schritt in diesem Abschnitt aus. Überspringen Sie andernfalls diesen Abschnitt.

Erstellen und konfigurieren Sie die VMs für den Seesaw-Load-Balancer:

gkectl create loadbalancer --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

4. Nutzercluster erstellen

Erstellen Sie einen Nutzercluster:

gkectl create cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG

Suchen Sie die kubeconfig-Datei des Nutzerclusters.

Mit dem Befehl gkectl create cluster wird im aktuellen Verzeichnis die kubeconfig-Datei USER_CLUSTER_NAME-kubeconfig erstellt. Sie benötigen diese kubeconfig-Datei später, um mit Ihrem Nutzercluster zu interagieren.

Wenn Sie möchten, können Sie den Namen und den Speicherort der kubeconfig-Datei ändern.

5. Prüfen Sie, ob Ihr Nutzercluster ausgeführt wird

Prüfen Sie, ob Ihr Nutzercluster ausgeführt wird:

kubectl get nodes --kubeconfig USER_CLUSTER_KUBECONFIG

Ersetzen Sie USER_CLUSTER_KUBECONFIG durch den Pfad der kubeconfig-Datei des Nutzerclusters.

Die Ausgabe zeigt die Knoten des Nutzerclusters. Beispiel:

my-user-cluster-node-pool-69-d46d77885-7b7tx   Ready ...
my-user-cluster-node-pool-69-d46d77885-lsvzk   Ready ...
my-user-cluster-node-pool-69-d46d77885-sswjk   Ready ...

Fehlerbehebung

Siehe Fehlerbehebung beim Erstellen und Upgraden von Clustern.

Nächste Schritte