Zum Inhalt

Nodes und Nodegruppen

NETWAYS Managed Kubernetes Cluster bestehen aus zwei oder mehr Nodegruppen: Einer Nodegruppe für das Controlplane und einer oder meherer Nodegruppen für Worker.

Löschung von Nodegruppen

Die bei Erstellung eines NETWAYS Managed Kubernetes Clusters angelegten Nodegruppen können nicht gelöscht werden.

Für die Worker-Nodegruppe lässt sich die Anzahl der Nodes allerdings auf 0 skalieren.

Skalierung von Nodegruppen

Nodes sind in Nodegruppen organisiert. Möchte ma Nodes erstellen oder bestehende löschen, musst man die Nodegruppe skalieren. Die Nodegruppe legt fest, welcher Flavor für neue Nodes verwendet wird.

Um eine Nodegruppe zu skalieren, wählt man den Tab Nodegroups und klickt im Kontextmenü auf Resize. Hier wählt man die gewünschte Anzahl an Nodes aus und klickt abschließend auf Resize Nodegroup.

Skalierung der Controlplane-Nodegruppe

Es ist nicht möglich, die Controlplane-Nodegruppe zu skalieren. Diese wird bei Erstellung eines NETWAYS Managed Kubernetes Clusters auf 1 bzw. 3 Nodes festgelegt.

Erstellung von Nodegruppen

Um eine neue Nodegroup zu erstellen, klickt man auf den Button Create Nodegroup und passt die Nodegroup nach seinen Wünschen an.

Löschen von Nodes

Das Löschen von unhealthy Nodes unterscheidet sich zwischen den Varianten von NETWAYS Managed Kubernetes®, die im Einsatz sind. Die genutzte Variante lässt sich am Namen des NETWAYS Managed Kubernetes® Projekts in MyNWS erkennen:

  • gardener im Projektnamen: Siehe NETWAYS Managed Kubernetes® (Gardener)
  • openstack im Projektnamen: Siehe NETWAYS Managed Kubernetes® (Legacy)

Sowohl NETWAYS Managed Kubernetes® als auch seine Legacy-Variante (mit aktiviertem Autoscaling) erkennen unhealthy Nodes nach einer gewissen Zeit automatisch und kümmern sich um die Entfernung von unhealthy Nodes. Eine manuelle Löschung sollte nur als Ausnahme durchgeführt werden (s. Infobox).

Node Autoscaling

Abhängig von der Autoscaling-Konfiguration des betroffenen Clusters werden evtl. direkt nach Löschen eines oder mehrerer Nodes neue Nodes im Cluster erstellt.

Das manuelle Löschen von Nodes sollte nur für unhealthy Nodes durchgeführt werden. In einem funktionalen Cluster können Nodes stattdessen durch eine Skalierung der Nodegruppe gelöscht werden.

NETWAYS Managed Kubernetes® (Gardener)

In neueren NETWAYS Managed Kubernetes® Clustern basierend auf Gardener können unhealthy Nodes durch Entfernen des entsprechenden Kubernetes API Objekts gelöscht werden:

kubectl delete node <node>

Dadurch werden folgende Aktionen angestoßen:

  1. Der Node wird zur Löschung vorgemerkt.
  2. Der Status der Node-VM wird evaluiert.
  3. Der Node wird gedraint.
  4. Existierende Node Finalizer werden gelöscht.
  5. Die Node-VM wird gelöscht.

Automatisches Drainen von Nodes

Das automatische Drainen von Nodes erfolgt nach einem Best-Effort-Prinzip. Abhängig von Faktoren wie PodDisruptionBudgets, Node Taints und anderen Kubernetes-Konfigurationen kann es sein, dass ein manuelles Drainen des Nodes notwendig ist, bevor er gelöscht werden kann.

NETWAYS Managed Kubernetes® (Legacy)

Unhealthy Nodes können in MyNWS in den Clustereinstellungen unter Servers gelöscht werden.

Drainen von Nodes

Um sicherzustellen, dass bei einer Skalierung der gewünschte Node gelöscht wird, muss dieser zuvor vom Scheduling ausgeschlossen und geleert werden:

kubectl cordon <nodename>
kubectl drain <nodename>

Nach einer erfolgreichen Skalierung der Nodegruppe und Löschung des gewünschten Nodes entfernt NETWAYS Managed Kubernetes® automatisch das zugehörige API-Objekt aus dem Cluster.