Ab GKE On-Prem-Version 1.3 können Sie einen Knotenpool erstellen, um eine Gruppe von Knoten in Ihren Nutzerclustern zu definieren, die alle dieselbe Konfiguration haben. Sie können diesen Knotenpool dann separat verwalten, ohne die anderen Knoten in den einzelnen Clustern zu beeinflussen. Knotenpools
In den Konfigurationsdateien Ihrer Nutzercluster können ein oder mehrere Knotenpools definiert werden. Beim Erstellen eines Knotenpools werden in jedem Cluster zusätzliche Knoten erstellt.
Die Knotenpoolverwaltung erfolgt über die Konfigurationsdatei Ihres Nutzerclusters, einschließlich des Erstellens, Aktualisierens und Löschens von Knotenpools. Nachdem die Knotenpools in Ihren Konfigurationsdateien definiert wurden, stellen Sie diese Änderungen mit dem Befehl gkectl update cluster
in Ihren Clustern bereit. Die Änderungen, die Sie bereitstellen, werden sofort im jeweiligen Nutzercluster ausgeführt. Wenn Sie beispielsweise einen Knotenpool aus einem Cluster entfernen, werden diese Knoten sofort gelöscht, unabhängig davon, ob einer dieser Knoten eine Arbeitslast ausführt.
Beispiel für einen Knotenpool:
nodepools:
- name: pool-1
cpus: 4
memorymb: 8192
replicas: 5
Tipp für Neuinstallationen: Erstellen Sie Ihren ersten Nutzercluster und definieren Sie Ihre Knotenpools in diesem Cluster. Erstellen Sie dann mithilfe der Konfigurationsdatei dieses Clusters weitere Nutzercluster mit denselben Knotenpooleinstellungen.
Hinweis
Unterstützung:
Es werden nur Nutzercluster der Version 1.3.0 oder höher unterstützt.
Knotenpools in Administratorclustern werden nicht unterstützt.
Der Befehl
gkectl update cluster
unterstützt derzeit nur die Verwaltung von Knotenpools. Alle anderen Änderungen in der Konfigurationsdatei werden ignoriert.Während die Knoten in einem Knotenpool separat von den anderen Knoten in den einzelnen Nutzerclustern verwaltet werden können, lassen sich die Knoten eines Clusters nicht separat upgraden. Für alle Knoten wird ein Upgrade durchgeführt, wenn Sie Ihre Cluster upgraden.
Ressourcen:
Sie können nur Änderungen am Knotenpool
replicas
bereitstellen, ohne dass die Arbeitslast eines Knotens unterbrochen wird.Wichtig: Wenn Sie eine andere Änderung an der Knotenpoolkonfiguration bereitstellen, werden die Knoten im Knotenpool neu erstellt. In keinem Knotenpool sollte eine Arbeitslast ausgeführt werden, die nicht unterbrochen werden darf.
Wenn Sie Ihre Knotenpooländerungen bereitstellen, wird möglicherweise ein temporärer Knoten erstellt. Sie müssen für diesen temporären Knoten prüfen, ob eine IP-Adresse verfügbar ist.
Knotenpools erstellen und aktualisieren
Sie verwalten einen Knotenpool, indem Sie die Konfigurationsdatei Ihres Nutzerclusters ändern und bereitstellen. Sie können für jeden Nutzercluster einen oder mehrere Knotenpools erstellen und bereitstellen.
So erstellen oder aktualisieren Sie Knotenpools:
Öffnen Sie in einem Editor die Konfigurationsdatei des Nutzerclusters, in dem Sie Knotenpools erstellen oder aktualisieren möchten.
Definieren Sie einen oder mehrere Knotenpools in der Konfigurationsdatei im Abschnitt
nodepools
unterusercluster
:Konfigurieren Sie die mindestens erforderlichen Knotenpoolattribute. Sie müssen für jeden Knotenpool die folgenden Attribute angeben:
usercluster.nodepools.name
: gibt einen eindeutigen Namen für den Knotenpool an. Beim Aktualisieren dieses Attributs wird der Knoten neu erstellt. Beispiel:name: pool-1
usercluster.nodepools.cpus
: gibt an, wie viele CPUs den einzelnen Worker-Knoten des Nutzerclusters zugeordnet werden sollen. Beim Aktualisieren dieses Attributs wird der Knoten neu erstellt. Beispiel:cpus: 4
usercluster.nodepools.memorymb
: gibt an, wie viel Arbeitsspeicher (in Megabyte) den einzelnen Worker-Knoten des Nutzerclusters zugewiesen wird. Beim Aktualisieren dieses Attributs wird der Knoten neu erstellt. Beispiel:memorymb: 8192
usercluster.nodepools.replicas
: gibt die Gesamtzahl der Worker-Knoten an, die der Nutzercluster zum Ausführen von Arbeitslasten verwendet. Sie können dieses Attribut aktualisieren, ohne dass es Auswirkungen auf Knoten oder laufende Arbeitslasten hat. Beispiel:replicas: 5
Beachten Sie Folgendes: Einige der
nodepools
-Attribute stimmen zwar mit denen vonworkernode
überein (DHCP | Statische IP-Adressen), der Abschnittworkernode
ist jedoch für jeden Nutzercluster erforderlich. Sie könnenworkernode
weder entfernen noch durchnodepools
ersetzen.Beispiel:
nodepools: - name: pool-1 cpus: 4 memorymb: 8192 replicas: 5
Unter Beispiele finden Sie ein Konfigurationsbeispiel mit mehreren Knotenpools.
Konfigurieren Sie optionale Knotenpoolattribute. Sie können der Knotenpoolkonfiguration Labels und Markierungen hinzufügen, um Knotenarbeitslasten zu steuern. Sie können auch definieren, welcher vSphere-Datenspeicher von Ihrem Knotenpool verwendet wird.
usercluster.nodepools.labels
: gibt ein oder mehrerekey : value
-Paare an, um Ihre Knotenpools eindeutig zu identifizieren.key
undvalue
können jeweils bis zu 63 Zeichen umfassen, müssen mit einem Buchstaben oder einer Ziffer beginnen und können Buchstaben, Ziffern, Bindestriche, Punkte und Unterstriche enthalten.Ausführliche Informationen zur Konfiguration finden Sie unter Labels.
Wichtig: Sie können für ein Label nicht die folgenden Schlüssel angeben, da sie für die Verwendung durch GKE On-Prem reserviert sind:
kubernetes.io
,k8s.io
undgoogleapis.com
.Beispiel:
labels: key1: value1 key2: value2
usercluster.nodepools.taints
: gibt einenkey
,value
undeffect
an, umtaints
(Markierungen) für Ihre Knotenpools zu definieren. Diesetaints
entsprechen dentolerations
, die Sie für Ihre Pods konfigurieren.Die Angabe von
key
ist erforderlich undvalue
ist optional. Beides kann jeweils bis zu 253 Zeichen umfassen, muss mit einem Buchstaben oder einer Ziffer beginnen und kann Buchstaben, Ziffern, Bindestriche, Punkte und Unterstriche enthalten. Optional können Sie einemkey
eine DNS-Subdomain gefolgt von einem Schrägstrich (/
) voranstellen. Beispiel:example.com/my-app
.Gültige Werte für
effect
sindNoSchedule
,PreferNoSchedule
undNoExecute
.Ausführliche Informationen zur Konfiguration finden Sie unter Markierungen.
Beispiel:
taints: - key: key1 value: value1 effect: NoSchedule
usercluster.nodepools.vsphere.datastore
: gibt den mit dem Knotenpool zu verwendenden vSphere-Datenspeicher an. Dies überschreibt die Angabe zum Standard-vSphere-Datenspeicher des Nutzerclusters.Beispiel:
vsphere: datastore: datastore_name
Unter Beispiele finden Sie ein Konfigurationsbeispiel mit mehreren Knotenpools.
Verwenden Sie den Befehl
gkectl update cluster
, um Ihre Änderungen im Nutzercluster bereitzustellen.Hinweis:
gkectl update cluster
unterstützt nur die Verwaltung von Knotenpools. Es werden nur Änderungen am Abschnittnodepools
bereitgestellt. Alle anderen Änderungen in Ihrer Konfigurationsdatei werden ignoriert.gkectl update cluster --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config config.yaml --dry-run --yes
Dabei gilt:- [ADMIN_CLUSTER_KUBECONFIG]: gibt die
kubeconfig
-Datei Ihres Administratorclusters an. - config.yaml: gibt das bearbeitete
configuration file
des Nutzerclusters an. Möglicherweise haben Sie für diese Datei einen anderen Namen ausgewählt. --dry-run
: optionales Flag. Fügen Sie dieses Flag hinzu, um nur die Änderung zu sehen. Es werden keine Änderungen im Nutzercluster bereitgestellt.--yes
: optionales Flag. Fügen Sie dieses Flag hinzu, damit der Befehl automatisch ausgeführt wird. Die Eingabeaufforderung mit der Frage, ob Sie fortfahren möchten, ist deaktiviert.
Wenn Sie den Befehl vorzeitig abbrechen, können Sie denselben Befehl noch einmal ausführen, um den Vorgang abzuschließen und Ihre Änderungen im Nutzercluster bereitzustellen.
Wenn Sie Ihre Änderungen rückgängig machen möchten, müssen Sie die Änderungen in der Konfigurationsdatei rückgängig machen und diese Änderungen dann noch einmal in Ihrem Nutzercluster bereitstellen.
- [ADMIN_CLUSTER_KUBECONFIG]: gibt die
Prüfen Sie alle Knoten daraufhin, ob die Änderungen erfolgreich waren. Führen Sie den folgenden Befehl aus, um alle Knoten im Nutzercluster aufzulisten:
kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] get nodes -o wide
Dabei ist [USER_CLUSTER_KUBECONFIG] die
kubeconfig
-Datei des Nutzerclusters.
Knotenpools löschen
So entfernen Sie Knotenpools aus einem Nutzercluster:
Entfernen Sie alle
nodepools
-Einstellungen aus der Konfigurationsdatei des Nutzerclusters. Wenn mehrere Knotenpools vorhanden sind, müssen Sie alle Einstellungen entfernen.Achten Sie darauf, dass keine Arbeitslasten ausgeführt werden. Alle betroffenen Knoten werden gelöscht.
Stellen Sie die Änderungen mit dem Befehl
gkectl update cluster
bereit:gkectl update cluster --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] --config config.yaml --dry-run --yes
Dabei gilt:- [ADMIN_CLUSTER_KUBECONFIG]: gibt die
kubeconfig
-Datei Ihres Administratorclusters an. - config.yaml: gibt das bearbeitete
configuration file
des Nutzerclusters an. Möglicherweise haben Sie für diese Datei einen anderen Namen ausgewählt. --dry-run
: optionales Flag. Fügen Sie dieses Flag hinzu, um nur die Änderung zu sehen. Es werden keine Änderungen im Nutzercluster bereitgestellt.--yes
: optionales Flag. Fügen Sie dieses Flag hinzu, damit der Befehl automatisch ausgeführt wird. Die Eingabeaufforderung mit der Frage, ob Sie fortfahren möchten, ist deaktiviert.
- [ADMIN_CLUSTER_KUBECONFIG]: gibt die
Prüfen Sie alle Knoten daraufhin, ob die Änderungen erfolgreich waren. Führen Sie den folgenden Befehl aus, um alle Knoten im Nutzercluster aufzulisten:
kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] get nodes -o wide
Dabei ist [USER_CLUSTER_KUBECONFIG] die
kubeconfig
-Datei des Nutzerclusters.
Beispiele
In der folgenden Beispielkonfiguration gibt es vier Knotenpools mit jeweils unterschiedlichen Attributen:
pool-1
: nur mindestens erforderliche Attribute sind angegebenpool-2
: enthält vSphere-Datenspeicherpool-3
: enthält Markierungen und Labelspool-4
: enthält alle Attribute
...
usercluster:
...
workernode:
cpus: 4
memorymb: 8192
replicas: 3
# (Optional) Node pools with customizable labels, taints, etc.
nodepools:
- name: pool-1
cpus: 4
memorymb: 8192
replicas: 5
- name: pool-2
cpus: 8
memorymb: 16384
replicas: 3
vsphere:
datastore: my_datastore
- name: pool-3
cpus: 4
memorymb: 8192
replicas: 5
taints:
- key: "example-key"
effect: NoSchedule
labels:
environment: production
app: nginx
- name: pool-4
cpus: 8
memorymb: 16384
replicas: 3
taints:
- key: "my_key"
value: my_value1
effect: NoExecute
labels:
environment: test
vsphere:
datastore: my_datastore
...
Hier finden Sie ein vollständiges Beispiel für die Konfigurationsdatei des Nutzerclusters.
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