ScaledObject pour les charges de travail prises en charge. KEDA évalue leurs déclencheurs et gère les ressources Kubernetes HorizontalPodAutoscaler (HPA), qui adaptent automatiquement la capacité des charges de travail à la hausse comme à la baisse.
Comment fonctionne la mise à l’échelle automatique
KEDA modifie le nombre de réplicas des charges de travail. Il n’ajoute pas de nœuds Kubernetes, n’augmente pas les quotas et ne rend pas éligible un nœud qui ne l’est pas pour une charge de travail. Coordonnez KEDA avec votre autoscaler de nœuds ou tout autre processus de gestion de capacité.
Stratégies de scalabilité
ScaledObject générées utilisent différents types de déclencheurs selon les caractéristiques des charges de travail.
Les seuils générés, les limites de réplicas, les requêtes et le comportement du HPA diffèrent selon la charge de travail et la version du chart Vantage. Considérez les ressources
ScaledObject générées dans votre installation comme la référence.
Déclencheurs d’utilisation du CPU
Déclencheurs Prometheus
ScaledObject des workers asynchrones utilisent les métriques applicatives de Vantage issues de Prometheus. Les signaux principaux sont :
application_worker_priority_queue_lengthindique le volume de travail en attente pour un type de worker.application_worker_active_threadsindique le nombre de threads de traitement actifs. Certaines configurations de worker générées l’utilisent comme second déclencheur Prometheus, en plus de la profondeur de la file d’attente : cela augmente préventivement le nombre de workers lorsqu’il ne reste plus de threads de traitement disponibles, afin qu’une nouvelle tâche soit prise en charge immédiatement au lieu d’attendre qu’un engorgement de la file d’attente se forme.
ScaledObject contiennent plusieurs déclencheurs. N’importe lequel peut demander une montée en charge, et le HPA utilise la recommandation du nombre de réplicas la plus élevée. Lorsqu’une charge de travail change d’échelle de manière inattendue, inspectez tous les déclencheurs, et pas seulement le premier.
Dimensionnez les types de workers en fonction de vos compétences
Prérequis
- KEDA 2.17.3 est installé et son opérateur ainsi que son serveur d’API de métriques sont en bon état de fonctionnement.
- L’API de métriques des ressources Kubernetes renvoie des données CPU.
- Prometheus est accessible à l’adresse
http://prometheus-operated.observability.svc.cluster.local:9090. - Le
ServiceMonitorde Vantage existe et Prometheus indique que les cibles Vantage/metrics-textsontUP. - Prometheus renvoie les valeurs actuelles des métriques des workers Vantage.
- Le cluster dispose d’une capacité disponible suffisante pour planifier les réplicas supplémentaires, y compris sur les nœuds étiquetés pour les workers TechCore.
ScaledObject générées.
Effectuez ces vérifications avant de continuer :
Activer la mise à l’échelle automatique
ServiceMonitor créé par le chart via la section observability distincte de premier niveau :
observability ne fait pas partie de vantage ni de la ressource personnalisée Vantage. Elle contrôle les ressources de supervision générées directement par le chart vantage-selfhosted.
Appliquez ces valeurs via votre release Helm vantage-selfhosted existante. ArgoCD crée de manière asynchrone les applications des composants et leurs ressources ScaledObject.
Vérifier la mise à l’échelle automatique
ScaledObject soient prêtes :
Ready=Truesignifie que KEDA a accepté la configuration du déclencheur.Active=Truesignifie qu’au moins un déclencheur sollicite actuellement une mise à l’échelle.Active=Falsepeut être normal lorsqu’il n’y a ni trafic ni travail en file d’attente.- Une valeur de métrique HPA de
<unknown>indique que Kubernetes ne peut pas obtenir la valeur actuelle de cette métrique.
Running. Si le nombre souhaité par le HPA augmente alors que les pods restent à l’état Pending, il s’agit d’un problème de capacité ou d’ordonnancement, et non d’un problème de déclencheur KEDA.
Comprendre le comportement généré
- Les seuils de déclenchement et les requêtes Prometheus.
- Les limites minimale et maximale du nombre de réplicas.
- Le rythme de mise à l’échelle et le comportement de stabilisation.
- Le rythme de réduction et le comportement de stabilisation.
Planifier la capacité du cluster
- Le taux d’arrivée maximal des documents et le temps d’attente acceptable dans la file d’attente.
- La durée de traitement moyenne et aux percentiles supérieurs pour des documents et des compétences représentatifs.
- Le temps de démarrage des pods et de préchauffage du modèle.
- Les demandes de CPU et de mémoire pour chaque charge de travail mise à l’échelle simultanément.
- Le temps de provisionnement du node-autoscaler et la taille maximale du pool de nœuds.
- Les quotas de namespace, les limites du cluster et le débit de récupération depuis le registry.
- Les labels de nœud TechCore, les taints, les accélérateurs et l’isolation des workers d’entraînement.
- La tolérance aux pannes lorsqu’un nœud ou une zone de disponibilité est indisponible.
Dépannage
Pour des étapes correctives détaillées, consultez Dépannage de KEDA et Prometheus.
Étapes suivantes
Monitoring avec Prometheus
Configurez le scraping et vérifiez les métriques utilisées par KEDA.
Prérequis
Consultez les exigences relatives à KEDA, Prometheus et à la capacité du cluster.
Dépannage
Diagnostiquez les problèmes de ScaledObjects défaillants et de métriques indisponibles.
Compatibilité
Vérifiez les versions prises en charge avant de mettre à niveau KEDA ou Vantage.
