In einem Nutzercluster können Sie eine Gruppe von Knoten mit derselben Konfiguration erstellen. Dazu füllen Sie den Abschnitt nodePools
der Clusterkonfigurationsdatei aus.
Sie können den Knotenpool dann verwalten, ohne dass sich dies auf die anderen Knoten im Cluster auswirkt.
Knotenpools
Hinweis
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.
Sie können das Feld replicas
eines nodePool
-Abschnitts aktualisieren, ohne Arbeitslasten zu unterbrechen. Wenn Sie jedoch andere Felder aktualisieren, werden die Knoten im Pool gelöscht und neu erstellt.
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)
Wenn Sie einen nodePool
-Abschnitt aktualisieren, erstellt Anthos-Cluster auf VMware einen neuen Knoten und löscht dann einen alten Knoten. Dieser Vorgang wird solange wiederholt, bis alle alten Knoten durch neue Knoten ersetzt wurden. Dies bedeutet, dass der Cluster während des Updates eine zusätzliche IP-Adresse haben muss.
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.
Den Abschnitt nodePools
der Cluster-Konfigurationsdatei ausfüllen
Füllen Sie in der Konfigurationsdatei für den Nutzercluster den Abschnitt nodePools
aus.
Geben Sie für jeden Knotenpool die folgenden Felder an:
nodePools.[i].name
nodePools[i].cpus
nodePools.[i].memoryMB
nodePools.[i].replicas
Die folgenden Felder sind optional:
nodePools[i].labels
nodePools[i].taints
nodePools[i].bootDiskSizeGB
nodePools[i].osImageType
nodePools[i].vsphere.datastore
nodePools[i].vsphere.tags
Knotenpools in einem neuen Cluster erstellen
Füllen Sie in der Konfigurationsdatei des Nutzerclusters den Abschnitt nodePools
aus und erstellen Sie dann den Cluster:
gkectl create cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Ersetzen Sie Folgendes:
ADMIN_CLUSTER_KUBECONFIG ist die kubeconfig-Datei für den Administratorcluster
USER_CLUSTER_CONFIG ist die Konfigurationsdatei des Nutzerclusters
Knotenpools in einem vorhandenen Cluster aktualisieren
Bearbeiten Sie in der Konfigurationsdatei des Nutzerclusters den Abschnitt nodePools
und aktualisieren Sie dann den Cluster:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Änderungen prüfen
Sehen Sie sich die Clusterknoten an, um sicherzustellen, dass Ihre Knotenpools wie vorgesehen erstellt oder aktualisiert wurden:
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
So löschen Sie einen Knotenpool aus einem Nutzercluster:
Entfernen Sie seine Definition aus dem Abschnitt
nodePools
der Konfigurationsdatei des Nutzerclusters.Achten Sie darauf, dass auf den betroffenen Knoten keine Arbeitslasten ausgeführt werden.
Aktualisieren Sie den Cluster:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Beispiele
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
Problembehebung
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