Zum Hauptinhalt springen

Automatische Skalierung der NKE Last

Mit automatischer Skalierung müssen Sie sich weniger mit der Kapazitätsplanung auseinandersetzen und die Verfügbarkeit Ihres Dienstes kann bei Lastspitzen sichergestellt werden. Zudem zahlen Sie nur für Ressourcen, die zum jeweiligen Zeitpunkt gebraucht werden, und Sie erhalten automatisch weitere Ressourcen, wenn der Bedarf grösser wird.

Details

Mit einer konfigurierten automatisierten Skalierung fügt NKE dem Cluster automatisch neue Nodes hinzu, wenn die Kapazität Ihrer neu erstellten Pods nicht für deren Ausführung reicht. Wenn eine Node im Cluster hingegen nicht ausgelastet ist und seine Pods auf anderen Nodes ausgeführt werden können, wird der Node gegebenenfalls gelöscht.

Wenn Ressourcen während der automatischen Skalierung Ihres Clusters gelöscht oder verschoben werden, können Ihre Dienste beeinträchtigt werden. Wenn Ihr Dienst beispielsweise aus einem Controller mit einem einzelnen Replikat besteht, kann der Pod dieses Replikats auf einem anderen Node neu gestartet werden, wenn sein aktueller Node gelöscht wird. Bevor Sie die automatische Skalierung aktivieren, sollten Sie überprüfen, dass Ihre Dienste für Unterbrechungen geeignet sind.

Verfügbarkeit

Automatische Skalierung kann auf einem Node Pool Level im Cockpit konfiguriert werden. Um dies zu nutzen gibt es aber ein paar Konfigurationen die notwendig sind.

Nutzung

Horizontales skalieren der Workloads

  1. Lassen Sie uns die Maximale Anzahl an Nodes wissen: Wir Skalieren Ihren Cluster Standardmässig nicht auf eine unbeschränkte Anzahl Nodes um Sie vor unerwarteten Kosten zu schützen. Wir haben eine minimale Anzahl von 3 Nodes definiert und eine Benutzerdefinierte maximale Anzahl von Nodes. Lassen Sie uns wissen, was Ihre bevorzugte maximale Anzahl an Nodes ist und wir konfigurieren diese.

  2. Setzen Sie CPU requests auf Ihre Pods: Der Cluster Autoscaler benutzt die CPU requests als Basis um zum wissen wie viel Kapazität eine Node zur Verfügung hat. Ohne CPU requests kann der Cluster Autoscaler nicht arbeiten. Zusätzlich ist es eine bewährte Vorgehensweise, ob man den Autoscaler verwendet oder nicht.

  3. Konfigurieren Sie einen Horizontal Pod Autoscaler: Damit die Anzahl der Pods auch mit der anfallender Last skalieren können sie einen Horizontal Pod Autoscaler (HPA) konfigurieren. Sobald alle Ihre Nodes voll sind, wird dies den Cluster Autoscaler auslösen um mehr Nodes zum Cluster hinzuzufügen. Die Kubernetes Dokumentation hat eine sehr gutes Beispiel um einen HPA zu konfigurieren.

Skalierung anhand benutzerdefinierter Metriken (Keda)

Mithilfe einer von Nine verwalteten Installation von keda können Sie ihre Workloads anhand von benutzerdefinierten Metriken skalieren. Keda erlaubt dabei die benötigten Metriken von verschiedenen Backends (keda nennt diese "Scalers") zu beziehen. Keda kann auf einem NKE Cluster via Cockpit installiert werden.

Sie können die unterstützten Scaler in der Dokumentation finden. Weiterhin besteht auch die Möglichkeit (selbst entwickelte) externe Scaler einzusetzen, welche die Anbindung an bisher nicht unterstützte Metriken erlauben.