Knotenpools

Auf dieser Seite wird erläutert, wie Knotenpools in Google Kubernetes Engine funktionieren. Sie erfahren außerdem, wie Knotenpools hinzugefügt und verwaltet werden.

Übersicht

Ein Knotenpool besteht aus einer Gruppe von Knoten in einem Cluster, die alle dieselbe Konfiguration haben. Knotenpools verwenden die Spezifikation NodeConfig. Jeder Knoten im Pool hat das Kubernetes-Knotenlabel cloud.google.com/gke-nodepool, das den Namen des Knotenpools als Wert enthält. Ein Knotenpool kann einen oder mehrere Knoten enthalten.

Wenn Sie einen Cluster erstellen, wird die angegebene Anzahl und der angegebene Typ von Knoten als Standardknotenpool übernommen. Anschließend können Sie dem Cluster weitere benutzerdefinierte Knotenpools unterschiedlicher Größen und Typen hinzufügen. Alle Knoten in einem gegebenen Knotenpool sind identisch.

Sie können beispielsweise einen Knotenpool in Ihrem Cluster mit lokalen SSDs, einer CPU-Mindestplattform, VMs auf Abruf, einem bestimmten Knoten-Image oder unterschiedlichen Maschinentypen erstellen. Benutzerdefinierte Knotenpools sind nützlich, wenn Sie Pods planen müssen, die mehr Ressourcen benötigen als andere, z. B. mehr Arbeitsspeicher oder mehr lokalen Speicherplatz. Wenn Sie mehr Kontrolle darüber benötigen, wo Pods eingeplant werden, können Sie Knotenmarkierungen verwenden.

Mit dem Befehl gcloud container node-pools können Sie Knotenpools einzeln erstellen, aktualisieren und löschen, ohne dass der gesamte Cluster betroffen ist. Ein einzelner Knoten lässt sich in einem Knotenpool nicht konfigurieren. Alle Konfigurationsänderungen wirken sich auf sämtliche Knoten im Knotenpool aus.

Standardmäßig führen alle neuen Knotenpools die neueste stabile Version von Kubernetes aus. Vorhandene Knotenpools können manuell oder automatisch aktualisiert werden. Außerdem können Sie auf jedem Knotenpool in Ihrem Cluster mehrere Versionen von Kubernetes-Knoten ausführen, jeden Knotenpool individuell aktualisieren und für einzelne Bereitstellungen verschiedene Knotenpools auswählen.

Dienste für bestimmte Knotenpools bereitstellen

Wenn Sie einen Service definieren, können Sie indirekt steuern, in welchem Knotenpool er bereitgestellt wird. Der Knotenpool ist nicht von der Konfiguration des Services abhängig, sondern von der Konfiguration des Pods.

  • Sie können einen Pod explizit in einem bestimmten Knotenpool bereitstellen. Dazu legen Sie im Pod-Manifest einen nodeSelector fest. Dadurch kann der Pod nur auf Knoten in diesem Knotenpool ausgeführt werden. Ein Beispiel finden Sie unter Pod in einem bestimmten Knotenpool bereitstellen.

  • Sie können Ressourcenanfragen für die Container angeben. Der Pod wird dann nur auf Knoten ausgeführt, die den Ressourcenanfragen entsprechen. Wenn die Pod-Definition etwa einen Container enthält, für den vier CPUs erforderlich sind, wählt der Dienst keine Pods aus, die auf Knoten mit zwei CPUs ausgeführt werden.

Knoten in multizonalen oder regionalen Clustern

Wenn Sie einen multizonalen oder regionalen Cluster erstellt haben, werden alle Knotenpools automatisch in diese Zonen repliziert. Jeder neue Knotenpool wird automatisch in diesen Zonen erstellt. Ebenso führt ein Löschen dazu, dass diese Knotenpools auch aus den zusätzlichen Zonen gelöscht werden.

Aufgrund dieses multiplikativen Effekts wird möglicherweise ein größerer Anteil Ihres Projektkontingents für eine bestimmte Region verbraucht, wenn Sie Knotenpools erstellen.

Weitere Informationen