Autoscaling

Kf exploite l'autoscaler horizontal des pods (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 répliqué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 des pods de Kubernetes

L'autoscaler horizontal des pods (HPA) est implémenté en tant que ressource d'API Kubernetes (objet HPA) avec une boucle de contrôle (le contrôleur HPA) qui calcule périodiquement le nombre d'instances répliquées souhaitées en fonction de l'utilisation actuelle des ressources. Le contrôleur HPA transmet ensuite le nombre à l'objet cible qui implémente 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 ?

Le contrôleur HPA interroge de façon périodique 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 des 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 répliqué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 Kubernetes.

Métriques

Kf utilise HPA v1, qui n'accepte que le CPU 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.