Nutzercluster mit einem neuen Installationsmodell erstellen

In diesem Dokument wird gezeigt, wie Sie einen Nutzercluster erstellen, der ein neues Installationsmodell verwendet, das als Vorschaufeature in Version 1.13 von Anthos-Clustern auf VMware (GKE On-Prem) verfügbar ist.

Was ist Kubeception?

Mit dem Begriff kubeception wird die Idee vermittelt, dass ein Kubernetes-Cluster zum Erstellen und Verwalten anderer Kubernetes-Cluster verwendet wird. Im Kontext von Anthos-Clustern auf VMware bezieht sich kubeception auf den Fall, in dem die Steuerungsebene für einen Nutzercluster auf einem oder mehreren Knoten in einem Administratorcluster ausgeführt wird.

Ab Version 1.13.0 haben Sie die Möglichkeit, die Steuerungsebene für einen Nutzercluster auf einem oder mehreren Knoten im Nutzercluster selbst auszuführen. In früheren Versionen von Anthos-Clustern auf VMware war kubeception die einzige Option. Das heißt, alle Nutzercluster hatten ihre Steuerungsebenen im Administratorcluster.

Das neue Installationsmodell bietet architektonische Konsistenz zwischen Administrator- und Nutzerclustern und entkoppelt den Nutzercluster vom Administratorcluster. Dies ist bei Szenarien wie dem Ausführen von Clustern an verschiedenen geografischen Standorten ein Vorteil.

Hinweis

Sie benötigen einen Administratorcluster und die Administratorclusterversion muss 1.13.0 oder höher sein.

IP-Adressen planen

Beachten Sie beim Planen der IP-Adressen für Ihren Nutzercluster die folgenden Anforderungen für das neue Installationsmodell:

  • Die Knoten der Steuerungsebene für Ihren Nutzercluster müssen die IP-Adressen aus einer Liste der von Ihnen angegebenen statischen Adressen abrufen. Dies ist auch dann der Fall, wenn die Worker-Knoten ihre Adressen von einem DHCP-Server abrufen. Sie benötigen drei Knoten der Steuerungsebene für einen Hochverfügbarkeits-Nutzercluster (HA), aber nur einen Knoten der Steuerungsebene für einen Nicht-HA-Nutzercluster.

  • Die Knoten der Nutzercluster-Steuerungsebene müssen sich im selben VLAN wie die Worker-Knoten des Nutzerclusters befinden. Dies steht im Gegensatz zum Kubeception-Modell.

  • Die virtuelle IP-Adresse der Nutzercluster-Steuerungsebene muss sich im selben VLAN wie die Nutzercluster-Worker-Knoten und die Knoten der Nutzercluster-Steuerungsebene befinden. Dies steht im Gegensatz zum Kubeception-Modell.

vSphere-Umgebung planen

Die Administratorcluster-Konfigurationsdatei und die Nutzercluster-Konfigurationsdatei haben beide den Abschnitt vCenter, in dem Sie die vSphere-Ressourcen angeben können, die der Administrator oder Nutzercluster verwenden soll.

Bei einem Nutzercluster müssen Sie den Abschnitt vCenter nicht ausfüllen, da ein Nutzercluster standardmäßig dieselben vSphere-Ressourcen wie der Administratorcluster verwendet. Wenn Sie jedoch möchten, dass Ihr Nutzercluster vSphere-Ressourcen verwendet, die Sie nicht für den Administratorcluster angegeben haben, können Sie im Abschnitt vCenter der Nutzercluster-Konfigurationsdatei Felder Ihrer Wahl ausfüllen. Weitere Informationen finden Sie unter vSphere-Objekthierarchie einrichten.

Im neuen Installationsmodell befinden sich die Knoten der Steuerungsebene für den Nutzercluster im Nutzercluster selbst. Daher verwenden die Knoten der Steuerungsebene die vSphere-Ressourcen, die in der Konfigurationsdatei des Nutzerclusters angegeben sind. Angenommen, Sie geben datacenter-1 für den Administratorcluster und datacenter-2 für den Nutzercluster an. Die Knoten der Steuerungsebene für Ihren Nutzercluster befinden sich in datacenter-2.

Anti-Affinitätsgruppen

Die Administratorcluster-Konfigurationsdatei und die Nutzercluster-Konfigurationsdatei haben beide das Feld antiAffinityGroups.enabled, das Sie auf true oder false festlegen können.

Im neuen Installationsmodell werden die Knoten der Steuerungsebene für den Nutzercluster gemäß dem Wert antiAffinityGroups.enabled in der Konfigurationsdatei des Nutzerclusters verteilt.

Im Gegensatz dazu werden bei dem Kubeception-Modell die Knoten der Steuerungsebene für den Nutzercluster gemäß dem Wert antiAffinityGroups.enabled in der Konfigurationsdatei des Administratorclusters verteilt.

Beispiel

Hier ein Beispiel für einen Nutzercluster mit den folgenden Eigenschaften:

  • Es gibt drei Worker-Knoten.

  • Die Worker-Knoten haben statische IP-Adressen.

  • Es gibt drei Knoten der Steuerungsebene. Das ist ein Hochverfügbarkeitscluster.

  • Der Load-Balancer ist MetalLB.

  • Der Nutzercluster verwendet dieselben vSphere-Ressourcen wie der Administratorcluster.

Das folgende Diagramm veranschaulicht das Netzwerk für die Administrator- und Nutzercluster:

Administratorcluster und Nutzercluster
Ein Administratorcluster und ein Nutzercluster (zum Vergrößern klicken)

Im Folgenden finden Sie ein Beispiel für eine IP-Blockdatei und einen Teil einer Nutzercluster-Konfigurationsdatei.

Nutzer-IPblocker.yaml

blocks:
  - netmask: 255.255.255.0
    gateway: 172.16.21.1
    ips:
    - ip: 172.16.21.2
      hostname: worker-vm-1
    - ip: 172.16.21.3
      hostname: worker-vm-2
    - ip: 172.16.21.4
      hostname: worker-vm-3
    - ip: 172.16.21.5
      hostname: worker-vm-4

user-cluster.yaml

apiVersion: v1
kind: UserCluster
...
kubeception: false
network:
  hostConfig:
    dnsServers:
    - "203.0.113.2"
    - "198.51.100.2"
    ntpServers:
    - "216.239.35.4"
  ipMode:
    type: "static"
    ipBlockFilePath: "user-ipblock.yaml"
  controlPlaneIPBlock:
    netmask: "255.255.255.0"
    gateway: "172.16.21.1"
    ips:
    - ip: "172.16.21.6"
      hostname: "cp-vm-1"
    - ip: "172.16.21.7"
      hostname: "cp-vm-2"
    - ip: "172.16.21.8"
      hostname: "cp-vm-3"
loadBalancer:
  vips:
    controlPlaneVIP: "172.16.21.40"
    ingressVIP: "172.16.21.30"
  kind: MetalLB
  metalLB:
    addressPools:
    - name: "address-pool-1"
      addresses:
    - "172.16.21.30-172.16.21.39"
...
masterNode:
  cpus: 4
  memoryMB: 8192
  replicas: 3
nodePools:
- name: "worker-node-pool"
  enableLoadBalancer: true

Dies sind die wichtigsten Punkte, die im vorherigen Beispiel zu verstehen sind:

  • Die statischen IP-Adressen für die Worker-Knoten werden in einer IP-Blockdatei angegeben. Die IP-Blockdatei hat vier Adressen, obwohl es nur drei Worker-Knoten gibt. Die zusätzliche IP-Adresse wird während des Clusterupgrades, -updates und der automatischen Reparatur benötigt.

  • Die statischen IP-Adressen für die drei Knoten der Steuerungsebene werden im Abschnitt network.controlPlaneIPBlock der Konfigurationsdatei des Nutzerclusters angegeben. In diesem Block ist keine zusätzliche IP-Adresse erforderlich.

  • Das Feld masterNode.replicas ist auf 3 gesetzt.

  • Die virtuelle IP-Adresse der Steuerungsebene und die virtuelle IP-Adresse für eingehenden Traffic befinden sich beide im selben VLAN wie die Knoten der Worker und der Knoten der Steuerungsebene.

  • Die virtuellen IP-Adressen, die für Dienste vom Typ Balancer reserviert werden, sind im Abschnitt loadBalancer.metalLB.addressPools der Konfigurationsdatei des Nutzerclusters angegeben. Diese VIPs befinden sich im selben VLAN wie die Worker-Knoten und die Knoten der Steuerungsebene.

  • Die Konfigurationsdatei des Nutzerclusters enthält keinen vCenter-Abschnitt. Der Nutzercluster verwendet daher dieselben vSphere-Ressourcen wie der Administratorcluster.

Firewallregeln erstellen

Erstellen Sie bei Bedarf zusätzlich zu den standardmäßigen Firewallregeln die folgenden Firewallregeln:

From

Quellport

To

Dst-Port

Protokoll

Beschreibung

Administratorcluster-Knoten

Alle

VIP der Nutzercluster-Steuerungsebene

443

https

Erlauben, dass Knoten und Pods im Administratorcluster mit dem Kubernetes API-Server des Nutzerclusters kommunizieren.

Administratorcluster-Knoten

Alle

Knoten der Steuerungsebene des Nutzerclusters

443

https

Zulassen, dass Knoten und Pods im Administratorcluster mit dem Kubernetes API-Server des Nutzerclusters über die IP-Adresse eines Knotens der Steuerungsebene eines Nutzerclusters kommunizieren.

Administratorcluster-Knoten

Alle

Nutzercluster- vCenter-Server

443

https

Erlauben Sie dem Administratorcluster, den Lebenszyklus des Nutzerclusters zu verwalten. Erforderlich, wenn Sie einen Wert für vCenter.address angegeben haben, der sich von der vCenter-Adresse in der Konfigurationsdatei des Administratorclusters unterscheidet.

Knoten der Steuerungsebene des Nutzerclusters

1024 – 65535

Lokale Docker-Registry

Hängt von Ihrer Registry ab

TCP/https

Erforderlich, wenn Sie in Ihrer Konfigurationsdatei für den Administratorcluster eine private Registry angegeben haben.

Nutzercluster mit dem neuen Modell erstellen

In diesem Abschnitt wird gezeigt, wie Sie einen Nutzercluster erstellen, der das neue Installationsmodell verwendet. In diesem Beispiel verwendet der Nutzercluster dieselbe Instanz von vCenter Server wie der Administratorcluster.

Folgen Sie der Anleitung unter Nutzercluster erstellen.

Beachten Sie beim Ausfüllen der Nutzercluster-Konfigurationsdatei Folgendes:

  • Setzen Sie kubeception auf false.

  • Geben Sie keinen Wert für vCenter.address an.

  • Füllen Sie den Abschnitt network.controlPlaneIPBlock aus. Wenn Sie einen HA-Nutzercluster haben möchten, geben Sie drei IP-Adressen an. Geben Sie andernfalls eine IP-Adresse an.

Prüfen Sie bei der Ausführung Ihres Nutzerclusters, ob die Steuerungsebene auf einem oder drei Knoten im Nutzercluster ausgeführt wird:

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get nodes

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

Die Ausgabe zeigt einen oder drei Knoten der Steuerungsebene zusammen mit den Worker-Knoten. Beispiel:

cp-vm-1       Ready    control-plane,master   18m
cp-vm-2       Ready    control-plane,master   18m
cp-vm-3       Ready    control-plane,master   18m
worker-vm-1   Ready                           6m7s
worker-vm-2   Ready                           6m6s
worker-vm-3   Ready                           6m14s

Prüfen Sie, ob die Steuerungsebene für den Nutzercluster im Administratorcluster nicht ausgeführt wird:

kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get nodes --output wide

Ersetzen Sie ADMIN_CLUSTER_KUBECONFIG durch den Pfad der SavedModel-Datei des Administratorclusters.

Die Ausgabe zeigt einen Knoten der Steuerungsebene für den Administratorcluster selbst, aber keine Knoten der Steuerungsebene für den Nutzercluster. Beispiel:

admin-vm-1   Ready    control-plane,master   82m
admin-vm-2   Ready                           71m
admin-vm-3   Ready                           71m

Nutzercluster aktualisieren

Folgen Sie der Anleitung unter Anthos-Cluster auf VMware aktualisieren.

Beachten Sie, dass beim Upgrade eines Nutzerclusters mit dem neuen Installationsmodell der gesamte Nutzercluster aktualisiert wird, einschließlich der Knoten der Nutzersteuerungsebene.

Im Gegensatz dazu werden bei Nutzerclustern, die mit dem kubeception-Modell bereitgestellt werden, für die Knoten der Steuerungsebene während des Nutzercluster-Upgrades keine Upgrades durchgeführt. Sie werden erst nach dem Administratorcluster-Upgrade aktualisiert.

Nutzercluster löschen

So löschen Sie einen Nutzercluster:

gkectl delete cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --cluster USER_CLUSTER

Ersetzen Sie USER_CLUSTER durch den Namen des Nutzerclusters.

Wenn Sie einen Nutzercluster löschen, der das neue Installationsmodell verwendet, werden die Datenlaufwerke des Clusters nicht automatisch gelöscht. Sie müssen die Datenlaufwerke also manuell löschen. Ein Hochverfügbarkeitscluster hat drei Datenlaufwerke und ein Nicht-HA-Cluster hat ein Datenlaufwerk.

Die Datenlaufwerke für den Nutzercluster befinden sich an einem dieser Speicherorte:

  • ADMIN_CLUSTER/USER_CLUSTER/

  • ADMIN_DISK_FOLDER/ADMIN_CLUSTER/USER_CLUSTER/

Ersetzen Sie ADMIN_CLUSTER durch den Namen des Administratorclusters.

Wenn Sie im Feld vCenter.dataDisk der Konfigurationsdatei des Administratorclusters einen Ordner angegeben haben, ersetzen Sie ADMIN_DISK_FOLDER durch den Namen des Ordners.

Bei einem Nicht-HA-Cluster hat das Datenlaufwerk den Namen USER_CLUSTER-0-data.vmdk.

Für einen Hochverfügbarkeitscluster haben die Datenlaufwerke einen Namen:

  • USER_CLUSTER-0-data.vmdk.
  • USER_CLUSTER-1-data.vmdk.
  • USER_CLUSTER-2-data.vmdk.

Sie können die Datenlaufwerke mit dem vSphere-Client löschen.

Nutzercluster mit eigenem vCenter-Server erstellen

In bestimmten Situationen ist es sinnvoll, einen Nutzercluster zu erstellen, der eine eigene Instanz von vCenter Server verwendet. Das bedeutet, dass der Administratorcluster und ein zugehöriger Nutzercluster unterschiedliche Instanzen von vCenter Server verwenden.

In einem Edge-Standort möchten Sie beispielsweise, dass eine physische Maschine mit vCenter Server und eine oder mehrere physische Maschinen mit ESXi ausgeführt werden kann. Sie können dann Ihre lokale vCenter-Instanz verwenden, um eine vSphere-Objekthierarchie zu erstellen, die Rechenzentren, Cluster, Ressourcenpools, Datenspeicher und Ordner enthält.

Folgen Sie der Anleitung unter Nutzercluster mit dem neuen Modell erstellen.

Füllen Sie zusätzlich zu den Schritten in diesem Abschnitt den gesamten Abschnitt vCenter der Konfigurationsdatei für den Nutzercluster aus. Geben Sie insbesondere einen Wert für vCenter.address an, der sich von der vCenter Server-Adresse unterscheidet, die Sie in der Konfigurationsdatei des Administratorclusters angegeben haben.

Beispiel

vCenter:
  address: "vc-edge.example"
  datacenter: "vc-edge"
  cluster: "vc-edge-workloads"
  resourcePool: "vc-edge-pool
  datastore: "vc-edge-datastore
  caCertPath: "/usr/local/google/home/me/certs/edge-cacert.pem"
  credentials:
    fileRef:
      path: "credential.yaml"
      entry: "vCenter-edge"
  folder: "edge-vm-folder"

Fehlerbehebung

Siehe Fehlerbehebung beim Erstellen und Upgraden von Clustern.

Nächste Schritte