Der Cluster Autoscaler (CA) skaliert die Anzahl der Nodes in einem Kubernetes-Cluster automatisch nach oben und unten. Er ergänzt damit den Horizontal Pod Autoscaler auf der Infrastrukturebene: Passen die laufenden Maschinen nicht mehr, startet der CA zusätzliche Nodes; sind Nodes dauerhaft unterausgelastet, entfernt er sie wieder.
Hochskalieren
Der CA beobachtet die Pods im Status Pending. Bleibt ein Pod unplanbar, weil auf keinem vorhandenen Node genügend Ressourcen frei sind, simuliert der CA das Hinzufügen eines Nodes aus jeder verfügbaren Node-Gruppe und prüft, ob der Pod dort Platz fände. Ist das der Fall, skaliert er die passende Gruppe hoch – bis zur konfigurierten Obergrenze. Node-Gruppen sind beim Cloud-Anbieter definiert, etwa Auto Scaling Groups bei AWS, Managed Instance Groups bei Google Cloud oder Virtual Machine Scale Sets bei Azure.
Herunterskalieren
Beim Abbau sucht der CA Nodes, deren Auslastung dauerhaft niedrig ist (Standard: unter 50 Prozent über mindestens zehn Minuten, einstellbar über --scale-down-utilization-threshold und --scale-down-unneeded-time). Vor dem Entfernen simuliert er, ob alle Pods des Nodes auf andere Nodes umziehen können – unter Beachtung von Pod-Affinitäten, PodDisruptionBudgets und Pods mit lokalem Speicher, die nicht verschoben werden dürfen. Pro Node-Gruppe gilt eine Untergrenze (min), unter die der CA nie skaliert.
Einordnung
Der Horizontal Pod Autoscaler und der Vertical Pod Autoscaler wirken auf Pod-Ebene innerhalb eines Clusters. Der Cluster Autoscaler arbeitet darunter: Er startet und beendet die Maschinen, auf denen die Pods laufen. Eine neuere Alternative für das Node-Autoprovisioning ist Karpenter, das Nodes direkter und ohne klassische Node-Gruppen verwaltet.
Verwandte Grundlagen: Kubernetes, kube-controller-manager, Namespace, Skalierung, kubectl-Befehle.