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é
Les ressourcesScaledObject 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
Les déclencheurs CPU comparent l’utilisation moyenne du CPU d’une charge de travail à l’objectif configuré. L’utilisation du CPU est calculée par rapport aux requêtes CPU de la charge de travail. L’API Kubernetes des métriques de ressources doit donc être opérationnelle, et la charge de travail doit conserver des requêtes CPU valides. Vérifiez que les métriques de ressources sont disponibles :Déclencheurs Prometheus
Les ressourcesScaledObject 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
Le traitement TechCore est réparti entre différents types de workers, tels que l’OCR, l’Extraction et la Classification, et chaque type de worker monte en charge indépendamment dans sa propre file d’attente. Les compétences que vous déployez déterminent quels types de workers supportent la plus grande charge de travail : un ensemble de compétences fortement axé sur l’OCR augmente la demande en workers OCR, tandis qu’un ensemble davantage axé sur l’extraction augmente la demande en workers d’Extraction. Comme les documents passent par ces types de workers par étapes, un déséquilibre de capacité entre les étapes se traduit par de l’attente plutôt que par des erreurs. Si une étape est sous-dimensionnée par rapport à celle qui l’alimente (par exemple, une capacité OCR suffisante mais trop peu de workers d’Extraction), les documents franchissent rapidement la première étape, puis restent en attente pendant plusieurs minutes, le temps que la file d’attente en aval se résorbe et que ses workers montent en charge. Surveillez la longueur de la file d’attente pour chaque type de worker pendant un test de charge représentatif avec votre ensemble de compétences de production, puis discutez des ajustements des limites relatives des réplicas avec l’équipe ABBYY en charge de votre compte.Prérequis
Avant d’activer KEDA, vérifiez les points suivants :- 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
Activez KEDA dans la configuration de Vantage et activez leServiceMonitor 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
Listez les ressources générées :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 charts de charge de travail Vantage fournissent des paramètres propres à chaque charge de travail pour :- 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
La mise à l’échelle automatique ne peut pas compenser un cluster sous-dimensionné ou soumis à des contraintes. Tenez compte des éléments suivants :- 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. Partez des chiffres de production indiqués sur la page Dimensionnement.
- Le temps de provisionnement de l’autoscaler de nœuds 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.
