Autoscaling

Kf nutzt das horizontale Pod-Autoscaling (HPA) von Kubernetes, um die Anzahl der Pods in einer Anwendung automatisch zu skalieren. Wenn das Autoscaling für eine Anwendung aktiviert ist, wird ein HPA-Objekt erstellt und an das Anwendungsobjekt gebunden. Anschließend wird die Zielskalierung dynamisch berechnet und für die Anwendung festgelegt.

Funktionsweise der Kf-Skalierung

Die Anzahl der Pods, die für eine Kf-Anwendung bereitgestellt werden sollen, legen Sie über das Feld replica des zugrunde liegenden Deployment-Objekts fest. Die Zielanzahl der Deployment-Replikate wird im Feld replicas der Anwendung angegeben.

Die Skalierung kann mit dem Befehl kf scale manuell erfolgen. Dieser Befehl ist deaktiviert, wenn das Autoscaling aktiviert ist. So werden widersprüchliche Zielfestlegungen vermieden.

Funktionsweise des horizontalen Pod-Autoscalings von Kubernetes

Das horizontale Pod-Autoscaling (HPA) wird als Kubernetes API-Ressource (das HPA-Objekt) und als Kontrollschleife (der HPA-Controller) implementiert, die in regelmäßigen Abständen die Anzahl der erforderlichen Replikate anhand der aktuellen Ressourcenauslastung berechnet. Der HPA-Controller übergibt dann die Anzahl an das Zielobjekt, das die Skalierungsunterressource implementiert. Die tatsächliche Skalierung wird dabei an das zugrunde liegende Objekt und dessen Controller delegiert. Weitere Informationen finden Sie in der Kubernetes-Dokumentation.

Festlegung der Skalierung durch das Autoscaling

Der HPA-Controller fragt regelmäßig die Ressourcenauslastung anhand der Messwerte ab, die in der HorizontalPodAutoscaler-Definition angegeben sind. Der Controller ruft diese Messwerte aus der Ressourcenmesswerte-API für jeden Pod ab. Anschließend berechnet der Controller den Auslastungswert als Prozentsatz der entsprechenden Ressourcenanforderung. Die gewünschte Anzahl an Replikaten wird dann anhand des Verhältnisses des aktuellen Prozentsatzes und des gewünschten Prozentsatzes berechnet. Weitere Informationen zum Autoscaling-Algorithmus finden Sie in der Kubernetes-Dokumentation.

Messwerte

Kf verwendet HPA v1, das nur den CPU-Wert als Zielmesswert unterstützt.

Funktionsweise des horizontalen Kubernetes-Autoscalings in Verbindung mit Kf

Wenn das Autoscaling für eine Kf-Anwendung aktiviert ist, erstellt der Kf-Controller ein HPA-Objekt anhand des Skalierungslimits und der Skalierungsregeln der Anwendung. Anschließend ruft der HPA-Controller die Spezifikationen vom HPA-Objekt ab und skaliert die Anwendung entsprechend.

Das HPA-Objekt wird gelöscht, wenn das Autoscaling deaktiviert oder die entsprechende Anwendung gelöscht wird.