Scalabilità e auto-scaling degli endpoint dei modelli
Kubernetes HPA per i pod del modello, scalabilità basata sul traffico, deployment A/B, rilasci canary
Scalabilità e auto-scaling degli endpoint dei modelli è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.
Perché l'auto-scaling
Il traffico di inferenza raramente è costante. Configurare risorse per il carico di picco spreca denaro durante la notte; configurarle per il carico medio non è sufficiente nei momenti di picco. L'auto-scaling adatta automaticamente il numero di repliche in base alla domanda, così paga solo ciò che utilizza e mantiene il servizio reattivo.
Pod e repliche
Su Kubernetes, un server del modello viene eseguito come Deployment composto da pod identici (repliche). Scalare significa modificare il numero di repliche. Un Service distribuisce il carico delle richieste tra le repliche disponibili.
apiVersion: apps/v1
kind: Deployment
metadata:
name: model-server
spec:
replicas: 2
template:
spec:
containers:
- name: server
image: my-model:latestHorizontal Pod Autoscaler
Horizontal Pod Autoscaler (HPA) monitora una metrica e aggiunge o rimuove pod per mantenerla vicina a un valore obiettivo. La metrica classica è l'utilizzo della CPU.
HPA sull'utilizzo della CPU
targetCPUUtilizationPercentage indica all'HPA di mantenere l'utilizzo medio della CPU vicino a un valore obiettivo. Se i pod utilizzano in media l'80% della CPU e l'obiettivo è il 50%, l'HPA aumenta il numero di repliche finché l'utilizzo non torna verso il 50%.
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: model-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: model-server
minReplicas: 2
maxReplicas: 10
targetCPUUtilizationPercentage: 50Limiti dello scaling basato sulla CPU
La CPU è un indicatore poco affidabile per alcuni carichi di lavoro. Un modello GPU potrebbe essere limitato dalla GPU mentre l'utilizzo della CPU rimane basso, oppure un worker asincrono potrebbe avere una coda in crescita mentre la CPU è inattiva. In questi casi, esegua lo scaling in base a un segnale specifico del carico di lavoro.
KEDA per lo scaling guidato dagli eventi
KEDA (Kubernetes Event-Driven Autoscaling) esegue lo scaling in base a metriche esterne come la lunghezza della coda, il ritardo di Kafka o le query Prometheus. Può persino ridimensionare il sistema fino a zero quando non c'è lavoro, cosa che HPA non può fare autonomamente.
ScaledObject di KEDA basato sulla coda
Questo ScaledObject di KEDA aggiunge worker quando cresce una coda di messaggi. Ogni unità di arretrato indicata da queueLength attiva un'altra replica, così il consumer riesce a gestire i picchi.
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"Bilanciamento del carico con Ingress
Il traffico esterno raggiunge i pod tramite un ingress. Un controller ingress nginx termina TLS e distribuisce le richieste tra le repliche gestite dal Service, così lo scaling verso l'alto distribuisce immediatamente il carico.
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: 8000Rilasci sicuri: canary
Distribuire una nuova versione del modello a tutto il traffico in una sola volta è rischioso. Un rilascio canary invia una piccola parte del traffico alla nuova versione, ne monitora le metriche e poi sposta gradualmente una quantità maggiore di traffico.
Canary con pesi del traffico
Le annotazioni canary dell'ingress nginx indirizzano una percentuale di richieste a un secondo deployment. Inizi dal 10%, verifichi il tasso di errore e la latenza, quindi aumenti gradualmente il peso fino al 100%.
metadata:
annotations:
nginx.ingress.kubernetes.io/canary: "true"
nginx.ingress.kubernetes.io/canary-weight: "10"Combinare le strategie di scaling
Una configurazione solida combina tutti questi elementi:
- HPA o KEDA imposta il numero di repliche in base alla domanda
- Ingress bilancia il carico tra le repliche
- I pesi canary distribuiscono in modo sicuro le nuove versioni
Insieme offrono un servizio dei modelli elastico, resiliente e a basso rischio.
Verifica rapida
Verifichi le Sue conoscenze sullo scaling.
Riepilogo
Ha imparato a scalare gli endpoint dei modelli:
- HPA con
targetCPUUtilizationPercentageesegue lo scaling in base alla CPU - KEDA esegue lo scaling in base alla lunghezza della coda e supporta lo scaling fino a zero
- Ingress nginx bilancia il carico tra le repliche
- I pesi canary spostano gradualmente il traffico per rilasci sicuri
Impara Python con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 53
- Lezioni
- 225
Domande Frequenti
La lezione «Scalabilità e auto-scaling degli endpoint dei modelli» è gratuita?
Sì — il testo completo di «Scalabilità e auto-scaling degli endpoint dei modelli» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.
Cosa imparerò in «Scalabilità e auto-scaling degli endpoint dei modelli»?
Kubernetes HPA per i pod del modello, scalabilità basata sul traffico, deployment A/B, rilasci canary Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Learn AI with Python?
Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Scalabilità e auto-scaling degli endpoint dei modelli»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?
Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Containerizzazione dei modelli ML con Docker
- Deployment nel cloud: AWS SageMaker
- Serving ad alte prestazioni con Triton Inference Server
- Scalabilità e auto-scaling degli endpoint dei modelli