Autoscaling

Kf exploite l'autoscaler horizontal de pods Kubernetes (HPA) de Kubernetes pour adapter automatiquement le nombre de pods d'une application. Lorsque l'autoscaling est activé pour une application, un objet HPA est créé et lié à l'objet App. Il calcule ensuite de manière dynamique l'échelle cible et la définit pour l'application.

Fonctionnement du scaling Kf

Le nombre de pods déployés pour une application Kf est contrôlé par le champ replica de l'objet de déploiement sous-jacent. Le nombre cible d'instances dupliquées de déploiement est défini via le champ replicas de l'application.

Le scaling peut être effectué manuellement à l'aide de la commande kf scale. Cette commande est désactivée lorsque l'autoscaling est activé pour éviter les cibles en conflit.

Fonctionnement de l'autoscaler horizontal de pods Kubernetes

L'autoscaler horizontal de pods (HPA) est mis en œuvre en tant que ressource d'API Kubernetes (objet HPA) et une boucle de contrôle (le contrôleur HPA) qui calcule périodiquement le nombre d'instances dupliquées souhaitées en fonction de l'utilisation actuelle des ressources. Le contrôleur HPA transmet ensuite le nombre à l'objet cible qui met en œuvre la sous-ressource Scale. Le scaling réel est délégué à l'objet sous-jacent et à son contrôleur. Pour en savoir plus, consultez la documentation Kubernetes.

Comment l'autoscaler détermine-t-il quand effectuer le scaling ?

Régulièrement, le contrôleur HPA interroge l'utilisation des ressources par rapport aux métriques spécifiées dans chaque définition HorizontalPodAutoscaler. Le contrôleur obtient les métriques de l'API Metrics de ressources pour chaque pod. Le contrôleur calcule ensuite la valeur d'utilisation sous la forme d'un pourcentage de la requête de ressource équivalente. Le nombre d'instances dupliquées souhaité est ensuite calculé en fonction du ratio du pourcentage actuel et du pourcentage souhaité. Pour en savoir plus sur l'algorithme d'autoscaling, consultez la documentation de Kubernetes.

Métriques

Kf utilise HPA v1, qui n'accepte que le processeur comme métrique cible.

Fonctionnement de l'autoscaler horizontal de Kubernetes avec Kf

Lorsque l'autoscaling est activé pour une application Kf, le contrôleur Kf crée un objet HPA en fonction des limites et des règles de scaling spécifiées dans l'application. Le contrôleur HPA récupère ensuite les spécifications de l'objet HPA et procède au scaling de l'application en conséquence.

L'objet HPA sera supprimé si l'autoscaling est désactivé ou si l'application correspondante est supprimée.