ScaledObject-Ressourcen für unterstützte Workloads. KEDA wertet deren Trigger aus und verwaltet Kubernetes-Ressourcen vom Typ HorizontalPodAutoscaler (HPA), die die Workloads hoch- und herunterskalieren.
Wie die automatische Skalierung funktioniert
KEDA passt die Replikatanzahl von Workloads an. Es fügt keine Kubernetes-Knoten hinzu, erhöht keine Kontingente und macht aus einem ungeeigneten Knoten keinen geeigneten für einen Workload. Stimmen Sie KEDA mit Ihrem Knoten-Autoscaler oder einem anderen Prozess zur Kapazitätsverwaltung ab.
Skalierungsstrategien
ScaledObject-Ressourcen verwenden je nach Workload-Eigenschaften unterschiedliche Triggertypen.
Die generierten Schwellenwerte, Replikatgrenzen, Abfragen und das HPA-Verhalten unterscheiden sich je nach Workload und Vantage-Chart-Version. Betrachten Sie die in Ihrer Installation generierten
ScaledObject-Ressourcen als maßgebliche Referenz.
Trigger für CPU-Auslastung
Prometheus-Trigger
ScaledObject-Ressourcen nutzen Vantage-Anwendungsmetriken von Prometheus. Die wichtigsten Signale sind:
application_worker_priority_queue_lengthmeldet Arbeit, die auf einen Worker-Typ wartet.application_worker_active_threadsmeldet aktive Verarbeitungs-Threads. Einige generierte Worker-Konfigurationen verwenden sie als zweiten Prometheus-Trigger zusätzlich zur Warteschlangentiefe: Der Worker wird damit vorsorglich hochskaliert, wenn keine Verarbeitungs-Threads mehr frei sind, sodass eine neu eingehende Aufgabe sofort übernommen wird, anstatt zu warten, bis sich ein Rückstau in der Warteschlange aufbaut.
ScaledObject-Ressourcen enthalten mehr als einen Trigger. Jeder Trigger kann eine Hochskalierung anfordern, und die HPA verwendet die höchste Replikat-Empfehlung. Wenn ein Workload unerwartet skaliert, prüfen Sie jeden Trigger statt nur den ersten.
Skalieren Sie Workertypen proportional zu Ihren Skills
Voraussetzungen
- KEDA 2.17.3 installiert ist und sein Operator sowie der Metrics API Server fehlerfrei laufen.
- Die API für Kubernetes-Ressourcenmetriken CPU-Daten zurückgibt.
- Prometheus unter
http://prometheus-operated.observability.svc.cluster.local:9090erreichbar ist. - Der Vantage-
ServiceMonitorvorhanden ist und Prometheus die Vantage-/metrics-text-Ziele alsUPmeldet. - Prometheus aktuelle Werte für die Vantage-Worker-Metriken zurückgibt.
- Im Cluster genügend einplanbare Kapazität für die zusätzlichen Replikate vorhanden ist, einschließlich Knoten, die für TechCore-Worker gekennzeichnet sind.
ScaledObject-Ressourcen.
Verwenden Sie diese Prüfungen, bevor Sie fortfahren:
Automatische Skalierung aktivieren
ServiceMonitor über den separaten Top-Level-Block observability:
observability ist weder Teil von vantage noch der Vantage-Custom-Resource. Er steuert Ressourcen für die Überwachung, die direkt vom vantage-selfhosted-Chart erzeugt werden.
Wenden Sie die Werte über Ihr vorhandenes vantage-selfhosted-Helm-Release an. ArgoCD erstellt die Anwendungen der Komponenten und ihre ScaledObject-Ressourcen asynchron.
Automatische Skalierung überprüfen
ScaledObject-Ressourcen bereit sind:
Ready=Truebedeutet, dass KEDA die Trigger-Konfiguration akzeptiert hat.Active=Truebedeutet, dass derzeit mindestens ein Trigger eine Skalierungsaktivität anfordert.Active=Falsekann normal sein, wenn es keinen Traffic und keine Arbeit in der Warteschlange gibt.- Ein HPA-Metrikwert von
<unknown>weist darauf hin, dass Kubernetes keinen aktuellen Wert für diese Metrik abrufen kann.
Running erreichen. Wenn die vom HPA gewünschte Anzahl steigt, die Pods aber weiterhin Pending bleiben, handelt es sich um ein Kapazitäts- oder Scheduling-Problem, nicht um ein Problem mit dem KEDA-Trigger.
Generiertes Verhalten verstehen
- Auslöseschwellen und Prometheus-Abfragen
- minimale und maximale Replikagrenzen
- die Scale-up-Rate und das Stabilisierungsverhalten
- die Scale-down-Rate und das Stabilisierungsverhalten
Cluster-Kapazität planen
- Die maximale Ankunftsrate von Dokumenten und die akzeptable Wartezeit in der Warteschlange.
- Die durchschnittliche Verarbeitungsdauer sowie die Verarbeitungsdauer in hohen Perzentilen für repräsentative Dokumente und Skills.
- Die Startzeit von Pods und die Aufwärmzeit des Modells.
- CPU- und Speicheranforderungen für jede Workload, die gleichzeitig skaliert.
- Die Bereitstellungszeit des Node-Autoscalers und die maximale Größe des Node-Pools.
- Namespace-Quoten, Cluster-Limits und den Pull-Durchsatz der Registry.
- TechCore-Node-Labels, Taints, Beschleuniger und die Isolierung von Training-Workern.
- Die Fehlertoleranz, wenn ein Node oder eine Verfügbarkeitszone ausfällt.
Fehlerbehebung
Detaillierte Schritte zur Problembehebung finden Sie unter Fehlerbehebung für KEDA und Prometheus.
Was kommt als Nächstes
Überwachung mit Prometheus
Konfigurieren Sie das Scraping und prüfen Sie die von KEDA verwendeten Metriken.
Voraussetzungen
Prüfen Sie die Anforderungen an KEDA, Prometheus und die Clusterkapazität.
Fehlerbehebung
Diagnostizieren Sie problematische ScaledObjects und nicht verfügbare Metriken.
Kompatibilität
Prüfen Sie die unterstützten Versionen, bevor Sie KEDA oder Vantage aktualisieren.
