Modell-Endpunkte skalieren und automatisch skalieren
Kubernetes-HPA für Modell-Pods, datenverkehrsbasierte Skalierung, A/B-Deployment, Canary-Releases.
Modell-Endpunkte skalieren und automatisch skalieren ist eine kostenlose Learn AI with Python-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Learn AI with Python-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Warum Autoscaling
Der Inferenzverkehr ist selten gleichmäßig. Eine Kapazitätsbereitstellung für Spitzenlast verschwendet nachts Geld; eine Bereitstellung für die durchschnittliche Last reicht bei Spitzenlast nicht aus. Autoscaling passt die Anzahl der Replikate automatisch an die Nachfrage an, sodass Sie nur für die tatsächlich genutzte Kapazität zahlen und das System reaktionsfähig bleibt.
Pods und Replikate
Unter Kubernetes läuft ein Modellserver als Deployment aus identischen Pods (Replikaten). Skalieren bedeutet, die Anzahl der Replikate zu ändern. Ein Service verteilt die Anfragen auf die jeweils vorhandenen Replikate.
apiVersion: apps/v1
kind: Deployment
metadata:
name: model-server
spec:
replicas: 2
template:
spec:
containers:
- name: server
image: my-model:latestHorizontal Pod Autoscaler
Der Horizontal Pod Autoscaler (HPA) überwacht eine Metrik und fügt Pods hinzu oder entfernt sie, um die Metrik nahe an einem Zielwert zu halten. Die klassische Metrik ist die CPU-Auslastung.
HPA für CPU-Auslastung
targetCPUUtilizationPercentage weist den HPA an, die durchschnittliche CPU-Auslastung nahe an einem Zielwert zu halten. Wenn die Pods durchschnittlich 80 % CPU nutzen und das Ziel bei 50 % liegt, skaliert der HPA nach oben, bis die Auslastung wieder in Richtung 50 % sinkt.
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: model-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: model-server
minReplicas: 2
maxReplicas: 10
targetCPUUtilizationPercentage: 50Grenzen der CPU-basierten Skalierung
CPU ist für einige Workloads ein schlechter Näherungswert. Bei einem GPU-Modell kann die GPU zum Engpass werden, während die CPU wenig ausgelastet ist, oder ein asynchroner Worker kann eine wachsende Warteschlange haben, während die CPU im Leerlauf ist. Skalieren Sie in solchen Fällen stattdessen anhand eines workload-spezifischen Signals.
KEDA für ereignisgesteuertes Scaling
KEDA (Kubernetes Event-Driven Autoscaling) skaliert anhand externer Metriken wie Warteschlangenlänge, Kafka-Verzögerung oder Prometheus-Abfragen. KEDA kann sogar auf null skalieren, wenn keine Arbeit ansteht – das kann der HPA nicht selbstständig.
KEDA ScaledObject auf Basis einer Warteschlange
Dieses KEDA-ScaledObject fügt Worker hinzu, wenn eine Nachrichtenwarteschlange wächst. Jede Einheit Rückstand in queueLength löst ein weiteres Replikat aus, sodass der Consumer mit Lastspitzen Schritt hält.
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: inference-worker
spec:
scaleTargetRef:
name: inference-worker
minReplicaCount: 0
maxReplicaCount: 20
triggers:
- type: rabbitmq
metadata:
queueName: inference
queueLength: "10"Lastverteilung mit Ingress
Externer Datenverkehr erreicht Ihre Pods über einen Ingress. Ein nginx-Ingress-Controller terminiert TLS und verteilt Anfragen auf den Service hinter Ihren Replikaten, sodass eine Skalierung nach oben die Last sofort verteilt.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: model-ingress
spec:
ingressClassName: nginx
rules:
- host: api.example.com
http:
paths:
- path: /predict
pathType: Prefix
backend:
service:
name: model-server
port:
number: 8000Sichere Rollouts: Canary
Eine neue Modellversion sofort für den gesamten Datenverkehr bereitzustellen, ist riskant. Ein Canary-Release sendet einen kleinen Teil des Datenverkehrs an die neue Version, überwacht deren Metriken und verschiebt anschließend schrittweise mehr Datenverkehr dorthin.
Canary mit Traffic-Gewichten
Die Canary-Annotationen des nginx-Ingress leiten einen Prozentsatz der Anfragen an ein zweites Deployment weiter. Beginnen Sie mit 10 %, prüfen Sie Fehlerquote und Latenz und erhöhen Sie das Gewicht anschließend auf 100 %.
metadata:
annotations:
nginx.ingress.kubernetes.io/canary: "true"
nginx.ingress.kubernetes.io/canary-weight: "10"Skalierung im Zusammenspiel
Eine robuste Konfiguration vereint all dies:
- HPA oder KEDA legt die Replikatanzahl anhand der Nachfrage fest
- Ingress verteilt die Last auf die Replikate
- Canary-Gewichte führen neue Versionen sicher ein
Zusammen ermöglichen sie ein elastisches, ausfallsicheres und risikoarmes Model Serving.
Kurzer Test
Testen Sie Ihr Wissen über Skalierung.
Zusammenfassung
Sie haben gelernt, Modellendpunkte zu skalieren:
- HPA mit
targetCPUUtilizationPercentageskaliert anhand der CPU-Auslastung - KEDA skaliert anhand der Warteschlangenlänge und unterstützt die Skalierung auf null
- nginx Ingress verteilt die Last auf die Replikate
- Canary-Gewichte verschieben den Datenverkehr schrittweise für sichere Releases
Häufig gestellte Fragen
Ist die Lektion „Modell-Endpunkte skalieren und automatisch skalieren“ kostenlos?
Ja — der vollständige Text von „Modell-Endpunkte skalieren und automatisch skalieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Learn AI with Python-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Learn AI with Python-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Modell-Endpunkte skalieren und automatisch skalieren“?
Kubernetes-HPA für Modell-Pods, datenverkehrsbasierte Skalierung, A/B-Deployment, Canary-Releases. Du übst Learn AI with Python mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Learn AI with Python zu starten?
Keine Vorkenntnisse erforderlich. Learn AI with Python auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Modell-Endpunkte skalieren und automatisch skalieren“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Learn AI with Python-Lektion Code schreiben und ausführen?
Ja. Jede Learn AI with Python-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- ML-Modelle mit Docker containerisieren
- Cloud-Deployment: AWS SageMaker
- Hochperformantes Serving mit Triton Inference Server
- Modell-Endpunkte skalieren und automatisch skalieren