Wenn Sie einen Nutzercluster erstellen, müssen Sie mindestens einen Knotenpool konfigurieren. Dabei handelt es sich um eine Gruppe von Knoten, die alle dieselbe Konfiguration haben. Nachdem der Cluster erstellt wurde, können Sie neue Knotenpools hinzufügen, Knotenpooleinstellungen aktualisieren und Knotenpools löschen.
Wie Sie Knotenpools erstellen, aktualisieren und löschen, hängt davon ab, ob der Cluster von der Anthos On-Prem API verwaltet wird. Ein Nutzercluster wird von der Anthos On-Prem API verwaltet, wenn eine der folgenden Bedingungen zutrifft:
Der Cluster wurde in der Google Cloud Console erstellt, die die Anthos On-Prem API automatisch für die Verwaltung des Clusters konfiguriert.
Der Befehl
gkectl enroll cluster
wurde in einem Nutzercluster ausgeführt, der konfiguriert, dass er von der Anthos On-Prem API verwaltet wird.
Wenn die Anthos On-Prem API einen Nutzercluster verwaltet, können Sie Knotenpools über die Google Cloud Console verwalten. Wenn der Nutzercluster nicht von der Anthos On-Prem API verwaltet wird, verwenden Sie gkectl
in der Befehlszeile Ihrer Administratorworkstation, um Knotenpools zu verwalten.
Knotenpool hinzufügen
Wenn Sie den Cluster in der Google Cloud Console erstellt haben, können Sie mit der Google Cloud Console einen Knotenpool hinzufügen. Sie müssen jedoch die Befehlszeile verwenden, um die folgenden Knotenpooleinstellungen zu konfigurieren:
- Windows für den Betriebssystem-Image-Typ
- vSphere-Datenspeicher
vSphere tags: Wenn Sie Tags an alle VMs in einem Knotenpool anhängen möchten, muss Ihr vCenter-Nutzerkonto diese vSphere-Tagging-Berechtigungen haben:
- vSphere-Tagging.Assign oder Unassign vSphere Tag
- vSphere Tagging.Assign oder Unassign vSphere Tag on Object (vSphere 7)
Console
Rufen Sie in der Google Cloud Console die Anthos-Seite Cluster auf.
Wählen Sie das Google Cloud-Projekt aus, in dem sich der Nutzercluster befindet.
Klicken Sie in der Clusterliste auf den Namen des Clusters und dann im Bereich Details auf Details ansehen.
Klicken Sie auf Knotenpool hinzufügen
.Konfigurieren Sie den Knotenpool:
- Geben Sie den Namen des Knotenpools ein.
- Geben Sie die Anzahl der vCPUs für jeden Knoten im Pool (mindestens 4 pro Nutzercluster-Worker) ein.
- Geben Sie die Größe des Arbeitsspeichers in Mebibyte (MiB) für jeden Knoten im Pool ein (mindestens 8.192 MiB pro Nutzercluster-Worker-Knoten und muss ein Vielfaches von 4 sein).
- Geben Sie im Feld Knoten die Anzahl der Knoten im Pool ein (mindestens 3).
Wählen Sie den Betriebssystem-Image-Typ aus: Ubuntu Containerd, Ubuntu oder COS.
Geben Sie die Größe des Bootlaufwerks in Gibibyte (GiB) ein (Standardeinstellung ist 40 GiB).
Wenn Sie Labels und Markierungen von Kubernetes hinzufügen möchten, gehen Sie im Abschnitt Knotenpool-Metadaten (optional) so vor:
- Klicken Sie auf + Kubernetes-Labels hinzufügen. Geben Sie den Schlüssel und den Wert für das Label ein. Wiederholen Sie diese Schritte für alle Suchabfragen, für die dies erforderlich ist.
- Klicken Sie auf + Markierung hinzufügen. Geben Sie den Schlüssel, den Wert und den Effekt für die Markierung ein. Wiederholen Sie diese Schritte für alle Suchabfragen, für die dies erforderlich ist.
Klicken Sie auf Erstellen.
In der Google Cloud Console wird Clusterstatus: Änderungen in Bearbeitung angezeigt. Klicken Sie auf Details ansehen, um die Ressourcenstatusbedingung und Statusmeldungen aufzurufen.
Befehlszeile
Füllen Sie in der Konfigurationsdatei für den Nutzercluster den Abschnitt
nodePools
aus.Geben Sie die folgenden Felder an:
nodePools.[i].name
nodePools[i].cpus
nodePools.[i].memoryMB
nodePools.[i].replicas
Die folgenden Felder sind optional. Wenn Sie weder
nodePools[i].bootDiskSizeGB
nochnodePools[i].osImageType
angeben, werden die Standardwerte verwendet.nodePools[i].labels
nodePools[i].taints
nodePools[i].bootDiskSizeGB
nodePools[i].osImageType
nodePools[i].vsphere.datastore
nodePools[i].vsphere.tags
Führen Sie dazu diesen Befehl aus:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Ersetzen Sie Folgendes:
[ADMIN_CLUSTER_KUBECONFIG]
ist der Pfad der kubeconfig-Datei für Ihren Administratorcluster.[USER_CLUSTER_CONFIG]
ist der Pfad Ihrer Nutzercluster-Konfigurationsdatei.
Konfigurationsbeispiel
In der folgenden Beispielkonfiguration gibt es vier Knotenpools mit jeweils unterschiedlichen Attributen:
pool-1
: nur mindestens erforderliche Attribute sind angegebenpool-2
: enthältvsphere.datastore
undvsphere.tags
pool-3
: enthälttaints
undlabels
pool-4
: enthältosImageType
undbootDiskSizeGB
nodePools:
- name: pool-1
cpus: 4
memoryMB: 8192
replicas: 5
- name: pool-2
cpus: 8
memoryMB: 16384
replicas: 3
vsphere:
datastore: my_datastore
tags:
- category: "purpose"
name: "testing"
- name: pool-3
cpus: 4
memoryMB: 8192
replicas: 5
taints:
- key: "example-key"
effect: NoSchedule
labels:
environment: production
app: nginx
- name: pool-4
cpus: 4
memoryMB: 8192
replicas: 5
osImageType: cos
bootDiskSizeGB: 40
Knotenpool aktualisieren
Mit der Befehlszeile können Sie alle Felder im Abschnitt nodePools
Ihrer Konfigurationsdatei für den Nutzercluster aktualisieren. Derzeit können nur die folgenden Knotenpoolfelder mit der Google Cloud Console aktualisiert werden:
- Anzahl der Replikate
- Speicher
- Anzahl der vCPUs
Wenn Sie die Anzahl der Replikate erhöhen, fügt Anthos-Cluster auf VMware die erforderliche Anzahl von Knoten zum Nutzercluster hinzu. Wenn Sie die Anzahl der Replikate verringern, werden Knoten entfernt. Die Änderung der Anzahl von Replikaten für einen Knotenpool unterbricht die Arbeitslasten nicht. Achten Sie darauf, dass IP-Adressen zur Verfügung stehen, wenn Sie die Anzahl der Replikate erhöhen.
Wenn Sie ein anderes Knotenpoolfeld aktualisieren, löst dies ein Rolling Update im Cluster aus. Bei einem Rolling Update erstellt Anthos-Cluster auf VMware einen neuen Knoten und löschen dann einen alten Knoten. Dieser Vorgang wird wiederholt, bis alle alten Knoten durch neue Knoten ersetzt wurden. Dieser Vorgang verursacht keine Ausfallzeit, aber der Cluster muss eine zusätzliche IP-Adresse haben, die während des Updates verwendet werden kann.
Angenommen, ein Knotenpool hat am Ende einer Aktualisierung N Knoten. Dann müssen Sie mindestens N + 1 IP-Adressen für Knoten in diesem Pool haben. Wenn Sie also die Größe eines Clusters anpassen, indem Sie einem oder mehreren Pools Knoten hinzufügen, müssen Sie mindestens eine IP-Adresse mehr als die Gesamtzahl der Knoten haben, die sich am Ende der Größenänderung in allen Knotenpools des Clusters befinden werden. Weitere Informationen finden Sie unter Prüfen, ob genügend IP-Adressen verfügbar sind.
So aktualisieren Sie einen Knotenpool in einem Nutzercluster:
Console
Rufen Sie in der Google Cloud Console die Anthos-Seite Cluster auf.
Wählen Sie das Google Cloud-Projekt aus, in dem sich der Nutzercluster befindet.
Klicken Sie in der Clusterliste auf den Namen des Clusters und dann im Bereich Details auf Details ansehen.
Klicken Sie auf den Tab Knoten.
Klicken Sie auf den Namen des Knotenpools, den Sie ändern möchten.
Klicken Sie neben dem Feld, das Sie ändern möchten, auf
Bearbeiten und dann auf Fertig.Klicken Sie auf
, um zur vorherigen Seite zurückzukehren.In der Google Cloud Console wird Clusterstatus: Änderungen in Bearbeitung angezeigt. Klicken Sie auf Details ansehen, um die Ressourcenstatusbedingung und Statusmeldungen aufzurufen.
Befehlszeile
Ändern Sie die Werte in den Feldern, die Sie ändern möchten, im Abschnitt
nodePools
der Konfigurationsdatei des Nutzerclusters.Aktualisieren Sie den Cluster:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Ersetzen Sie Folgendes:
[ADMIN_CLUSTER_KUBECONFIG]
ist der Pfad der kubeconfig-Datei für Ihren Administratorcluster.[USER_CLUSTER_CONFIG]
ist der Pfad Ihrer Nutzercluster-Konfigurationsdatei.
Von einem Knotenpool verwendeten osImageType
aktualisieren
Zum Aktualisieren eines Knotenpools für die Verwendung eines anderen osImageType
müssen Sie die Befehlszeile verwenden. Wenn Sie den von einem Knotenpool verwendeten osImageType
ändern möchten, aktualisieren Sie die Konfigurationsdatei für den Knotenpool, wie im folgenden Beispiel gezeigt, und führen Sie gkectl update cluster
aus.
nodePools: - name: np-1 cpus: 4 memoryMB: 8192 replicas: 3 osImageType: ubuntu_containerd
Änderungen prüfen
Sehen Sie sich die Clusterknoten an, um sicherzustellen, dass Ihre Knotenpools wie vorgesehen erstellt oder aktualisiert wurden:
Console
Rufen Sie in der Google Cloud Console die Anthos-Seite Cluster auf.
Wählen Sie das Google Cloud-Projekt aus, in dem sich der Nutzercluster befindet.
Klicken Sie in der Clusterliste auf den Namen des Clusters und dann im Bereich Details auf Details ansehen.
Klicken Sie auf den Tab Knoten.
Klicken Sie auf den Namen des Knotenpools, den Sie sich ansehen möchten.
Befehlszeile
Führen Sie dazu diesen Befehl aus:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get nodes -o wide
Wenn Sie Ihre Änderungen rückgängig machen möchten, bearbeiten Sie die Clusterkonfigurationsdatei und führen Sie gkectl update cluster
aus.
Knotenpool löschen
Sie können Knotenpools zwar löschen, Ihr Nutzercluster muss jedoch mindestens einen Knotenpool haben. Das Löschen eines Knotenpools führt dazu, dass die Knoten des Pools sofort entfernt werden, unabhängig davon, ob auf diesen Knoten Arbeitslasten ausgeführt werden.
So löschen Sie einen Knotenpool aus einem Nutzercluster:
Console
Achten Sie darauf, dass auf den betroffenen Knoten keine Arbeitslasten ausgeführt werden.
Rufen Sie in der Google Cloud Console die Anthos-Seite Cluster auf.
Wählen Sie das Google Cloud-Projekt aus, in dem sich der Nutzercluster befindet.
Klicken Sie in der Clusterliste auf den Namen des Clusters und dann im Bereich Details auf Details ansehen.
Klicken Sie auf den Tab Knoten.
Klicken Sie auf den Namen des Knotenpools, den Sie löschen möchten.
Klicken Sie auf
Löschen.Klicken Sie auf
, um zur vorherigen Seite zurückzukehren.In der Google Cloud Console wird Clusterstatus: Änderungen in Bearbeitung angezeigt. Klicken Sie auf Details ansehen, um die Ressourcenstatusbedingung und Statusmeldungen aufzurufen.
Befehlszeile
Achten Sie darauf, dass auf den betroffenen Knoten keine Arbeitslasten ausgeführt werden.
Entfernen Sie seine Definition aus dem Abschnitt
nodePools
der Konfigurationsdatei des Nutzerclusters.Aktualisieren Sie den Cluster:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Ersetzen Sie Folgendes:
[ADMIN_CLUSTER_KUBECONFIG]
ist der Pfad der kubeconfig-Datei für Ihren Administratorcluster.[USER_CLUSTER_CONFIG]
ist der Pfad Ihrer Nutzercluster-Konfigurationsdatei.
Fehlerbehebung
Im Allgemeinen liefert der Befehl
gkectl update cluster
detaillierte Informationen, wenn er fehlschlägt. Wenn der Befehl erfolgreich ausgeführt wurde und die Knoten nicht angezeigt werden, können Sie anhand des Leitfadens Clusterprobleme diagnostizieren eine Fehlerbehebung durchführen.Es ist möglich, dass nicht genügend Clusterressourcen vorhanden sind, z. B. wenn beim Erstellen oder Aktualisieren des Knotenpools nicht genügend IP-Adressen verfügbar sind. Weitere Informationen dazu, wie Sie die Verfügbarkeit von IP-Adressen prüfen, finden Sie unter Größe eines Nutzerclusters anpassen.
Sie können auch den allgemeinen Leitfaden zur Fehlerbehebung lesen.
Wenn Sie nicht weiter als bis
Creating node MachineDeployment(s) in user cluster…
gelangen:Es kann eine Weile dauern, bis die Knotenpools in Ihrem Nutzercluster erstellt oder aktualisiert wurden. Wenn die Wartezeit jedoch extrem lang ist und Sie den Verdacht haben, dass etwas nicht richtig funktioniert, können Sie so vorgehen:
- Führen Sie
kubectl get nodes
aus, um den Status Ihrer Knoten abzurufen. - Führen Sie für alle Knoten, die nicht bereit sind,
kubectl describe node NODE_NAME
aus, um Details zu erfahren.
- Führen Sie