Ein Knotenpool besteht aus einer Gruppe von Knoten in einem Kubernetes-Cluster, die alle dieselbe Konfiguration haben. Knotenpools verwenden eine NodePool-Spezifikation. Jeder Knoten im Pool hat ein Kubernetes-Knotenlabel, das den Namen des Knotenpools als Wert enthält.
Standardmäßig führen alle neuen Knotenpools dieselbe Version von Kubernetes wie die Steuerungsebene aus.
Wenn Sie einen Nutzercluster erstellen, wird die Anzahl der Knoten und der angegebene Knotentyp zum Erstellen des ersten Knotenpools verwendet. Sie können Ihrem Cluster weitere Knotenpools unterschiedlicher Größen und Typen hinzufügen. Alle Knoten in einem gegebenen Knotenpool sind identisch.
Benutzerdefinierte Knotenpools sind nützlich, wenn Sie Pods planen müssen, die mehr Ressourcen benötigen als andere, z. B. mehr Arbeitsspeicher oder lokalen Speicherplatz. Sie können Knotenmarkierungen verwenden, wenn Sie mehr Kontrolle über die Planung der Pods benötigen.
Sie können Knotenpools einzeln erstellen und löschen, ohne dass sich dies auf den gesamten Cluster auswirkt. Ein einzelner Knoten lässt sich in einem Knotenpool nicht konfigurieren. Alle Konfigurationsänderungen wirken sich auf sämtliche Knoten im Knotenpool aus.
Sie können die Größe von Knotenpools in einem Cluster anpassen, indem Sie den Pool hoch- oder herunterskalieren. Das Herunterskalieren eines Knotenpools ist ein automatisierter Prozess, bei dem Sie die Poolgröße verringern und das GDC-System automatisch einen beliebigen Knoten leert und entfernt. Beim Herunterskalieren eines Knotenpools können Sie keinen bestimmten Knoten zum Entfernen auswählen.
Hinweise
Wenn Sie Knotenpools in einem Nutzercluster verwalten möchten, benötigen Sie die Rolle „User Cluster Admin“ (user-cluster-admin-Rolle).
Knotenpool hinzufügen
Wenn Sie einen Nutzercluster über die GDC-Konsole erstellen, können Sie den Standardknotenpool anpassen und zusätzliche Knotenpools erstellen, bevor die Clustererstellung initialisiert wird. Wenn Sie einem vorhandenen Nutzercluster einen Knotenpool hinzufügen müssen, führen Sie die folgenden Schritte aus:
Console
- Wählen Sie im Navigationsmenü Cluster aus.
- Klicken Sie in der Clusterliste auf den Cluster. Die Seite Clusterdetails wird angezeigt.
- Wählen Sie Knotenpools > Knotenpool hinzufügen aus.
- Weisen Sie dem Knotenpool einen Namen zu. Sie können den Namen nach dem Erstellen des Knotenpools nicht mehr ändern.
- Geben Sie die Anzahl der Worker-Knoten an, die im Knotenpool erstellt werden sollen.
- Wählen Sie die Maschinenklasse aus, die Ihren Arbeitslastanforderungen am besten entspricht. Die Maschinenklassen werden in den folgenden Einstellungen angezeigt:
- Maschinentyp
- vCPU
- Arbeitsspeicher
- Optional: Fügen Sie Kubernetes-Schlüssel/Wert-Paar-Labels hinzu, um die Ressourcen Ihres Knotenpools zu organisieren.
- Klicken Sie auf Speichern.
API
Öffnen Sie die benutzerdefinierte Ressourcenspezifikation
Clustermit derkubectl-Befehlszeile über den interaktiven Editor:kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \ --kubeconfig ADMIN_CLUSTER_KUBECONFIGErsetzen Sie Folgendes:
USER_CLUSTER_NAME: Der Name des Nutzerclusters.ADMIN_CLUSTER_KUBECONFIG: Der Pfad zur kubeconfig-Datei des Administratorclusters.
Fügen Sie im Abschnitt
nodePoolseinen neuen Eintrag hinzu:nodePools: ... - machineTypeName: MACHINE_TYPE name: NODE_POOL_NAME nodeCount: NUMBER_OF_WORKER_NODES taints: TAINTS labels: LABELSErsetzen Sie Folgendes:
MACHINE_TYPE: Der Maschinentyp für die Worker-Knoten des Knotenpools. Hier finden Sie die verfügbaren Maschinentypen.NODE_POOL_NAME: Der Name des Knotenpools.NUMBER_OF_WORKER_NODES: Die Anzahl der Worker-Knoten, die im Knotenpool bereitgestellt werden sollen.TAINTS: Die Markierungen, die auf die Knoten dieses Knotenpools angewendet werden sollen. Dieses Feld ist optional.LABELS: Die Labels, die auf die Knoten dieses Knotenpools angewendet werden sollen. Sie enthält eine Liste von Schlüssel/Wert-Paaren. Dieses Feld ist optional.
Speichern Sie die Datei und beenden Sie den Editor.
Knotenpools ansehen
Führen Sie die folgenden Schritte aus, um vorhandene Knotenpools in einem Nutzercluster aufzurufen:
Console
- Wählen Sie im Navigationsmenü Cluster aus.
- Klicken Sie in der Clusterliste auf den Cluster. Die Seite Clusterdetails wird angezeigt.
- Wählen Sie Knotenpools aus.
Die Liste der Knotenpools, die im Cluster ausgeführt werden, wird angezeigt. Auf dieser Seite können Sie die Knotenpools des Clusters verwalten.
API
So rufen Sie die Knotenpools eines bestimmten Nutzerclusters auf:
kubectl get clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \ -o json --kubeconfig ADMIN_CLUSTER_KUBECONFIG | \ jq .status.workerNodePoolStatusesDie Ausgabe sieht etwa so aus:
[ { "conditions": [ { "lastTransitionTime": "2023-08-31T22:16:17Z", "message": "", "observedGeneration": 2, "reason": "NodepoolReady", "status": "True", "type": "Ready" }, { "lastTransitionTime": "2023-08-31T22:16:17Z", "message": "", "observedGeneration": 2, "reason": "ReconciliationCompleted", "status": "False", "type": "Reconciling" } ], "name": "worker-node-pool", "readyNodes": 3, "readyTimestamp": "2023-08-31T18:59:46Z", "reconcilingNodes": 0, "stalledNodes": 0, "unknownNodes": 0 } ]
Knotenpool löschen
Durch das Löschen eines Knotenpools werden dessen Knoten und Routen gelöscht. Auf diesen Knoten werden alle darauf ausgeführten Pods entfernt und neu geplant. Wenn die Pods spezifische Knotenselektoren haben, bleiben die Pods womöglich in einem nicht planbaren Zustand, wenn kein anderer Knoten im Cluster die Kriterien erfüllt.
Achten Sie darauf, dass Sie mindestens drei Worker-Knoten haben, bevor Sie einen Knotenpool löschen. So stellen Sie sicher, dass Ihr Cluster genügend Rechenleistung für einen effektiven Betrieb hat.
So löschen Sie einen Knotenpool:
Console
Wählen Sie im Navigationsmenü Cluster aus.
Klicken Sie auf den Cluster, in dem sich der Knotenpool befindet, den Sie löschen möchten.
Wählen Sie Knotenpools aus.
Klicken Sie neben dem zu löschenden Knotenpool auf delete Löschen.
API
Öffnen Sie die benutzerdefinierte Ressourcenspezifikation
Clustermit derkubectl-Befehlszeile über den interaktiven Editor:kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \ --kubeconfig ADMIN_CLUSTER_KUBECONFIGErsetzen Sie Folgendes:
USER_CLUSTER_NAME: Der Name des Nutzerclusters.ADMIN_CLUSTER_KUBECONFIG: Der Pfad zur kubeconfig-Datei des Administratorclusters.
Entfernen Sie den Knotenpooleintrag aus dem Abschnitt
nodePools. Im folgenden Snippet müssen Sie beispielsweise die FeldermachineTypeName,nameundnodeCountentfernen:nodePools: ... - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: 3Entfernen Sie alle Felder für den Knotenpool, den Sie löschen.
Speichern Sie die Datei und beenden Sie den Editor.
Maschinentypen für Worker-Knoten
Wenn Sie einen Nutzercluster in einer GDC-Appliance (Google Distributed Cloud) mit Air-Gap erstellen, erstellen Sie Knotenpools, die für die Ausführung Ihrer Containerarbeitslasten im Cluster verantwortlich sind. Sie stellen Knoten basierend auf den Anforderungen Ihrer Containerarbeitslast bereit und können sie aktualisieren, wenn sich Ihre Anforderungen ändern.
GDC bietet vordefinierte Maschinentypen für Ihre Worker-Knoten, die Sie beim Hinzufügen eines Knotenpools auswählen können.
Verfügbare Maschinentypen
GDC definiert Maschinentypen mit einigen Parametern für einen Nutzerclusterknoten, darunter CPU, Arbeitsspeicher und GPU.
GDC bietet verschiedene Maschinentypen für unterschiedliche Zwecke.
Nutzercluster verwenden beispielsweise n2-standard-2-gdc für Containerarbeitslasten für allgemeine Zwecke. Es gibt auch Maschinentypen für speicheroptimierte Zwecke, z. B. n2-highcpu-8-gdc. Wenn Sie Deep Learning-Container ausführen möchten, müssen Sie GPU-Maschinen wie a2-highgpu-1g-gdc bereitstellen.
Nachfolgend finden Sie eine Liste aller vordefinierten GDC-Maschinentypen, die für Worker-Knoten von Nutzerclustern verfügbar sind:
| Name | vCPUs | Arbeitsspeicher | GPU-Anzahl |
|---|---|---|---|
| n2-standard-2-gdc | 2 | 8G | – |
| n2-standard-4-gdc | 4 | 16G | – |
| n2-highmem-4-gdc | 4 | 32G | – |
| n2-highcpu-8-gdc | 8 | 8G | – |
| n2-standard-8-gdc | 8 | 32G | – |
| n2-highmem-8-gdc | 8 | 64G | – |
| a2-highgpu-1g-gdc | 12 | 85G | 1 |
| a2-ultragpu-1g-gdc | 12 | 170G | 1 |