Questa sezione descrive come inviare una o più metriche da un pod o un workload al bilanciatore del carico.
Queste metriche provengono dal servizio o dall'applicazione che stai eseguendo. Ad esempio, consulta le metriche esposte dal motore vLLM.
Il bilanciatore del carico può quindi utilizzare questi dati con il
bilanciamento del carico basato sull'utilizzo
per bilanciare i workload in modo più efficiente. Ad esempio, puoi utilizzare questa funzionalità per monitorare le regioni con un utilizzo più intenso del workload e poi consentire al bilanciatore del carico di reindirizzare il traffico verso la regione con più risorse disponibili. Dall'esempio vLLM, una metrica che potrebbe essere utile per monitorare l'utilizzo è
gpu_cache_usage_perc
.
Requisiti
I requisiti per i pod sono i seguenti.
- GKE 1.34.1-gke.1127000 o versioni successive con cluster nel canale rapido.
- L'API Gateways è abilitata.
- Utilizzo della scalabilità automatica orizzontale dei pod con il profilo di rendimento.
I requisiti per le metriche sono i seguenti.
- Le metriche devono essere accessibili su un endpoint HTTP.
- Il formato delle metriche deve essere standard Prometheus.
I bilanciatori del carico hanno limitazioni sui nomi delle metriche. Ad esempio, il nome non può superare i 64 caratteri. Per l'elenco completo delle limitazioni, consulta i dettagli sul campo
backends[].customMetrics[].name
nei riferimenti per l'APIBackendService
.Se la metrica del tuo servizio non rispetta queste limitazioni, puoi rinominarla utilizzando il campo
exportName
.Sono supportate solo le metriche del misuratore comprese tra 0 e 1, dove 1 rappresenta l'utilizzo del 100%.
Le etichette delle metriche vengono ignorate, pertanto non possono essere utilizzate per distinguere le metriche. Assicurati che il tuo workload non esponga la stessa metrica con più etichette.
È possibile esporre un massimo di 10 metriche per cluster. Altri servizi hanno i propri limiti. Ad esempio, consulta i limiti e i requisiti per i bilanciatori del carico. Tieni presente che un cluster può utilizzare più di un bilanciatore del carico.
Esporre le metriche per il bilanciamento del carico
Scegli una metrica da esporre. Puoi scegliere qualsiasi metrica esposta dal server e che soddisfi anche i requisiti elencati nella sezione precedente.
Aggiungi la seguente risorsa personalizzata, sostituendo i dettagli specifici per la metrica e il pod.
apiVersion: autoscaling.gke.io/v1beta1 kind: AutoscalingMetric metadata: name: NAME namespace:NAMESPACE spec: selector: matchLabels: name: APP_LABEL_NAME endpoints: - port: METRIC_PORT path: METRIC_PATH metrics: - name: METRIC exportName: METRIC_NEW_NAME
Sostituisci quanto segue in base al tuo workload:
NAME
: il nome dell'oggetto AutoscalingMetric.NAMESPACE
: lo spazio dei nomi in cui si trovano i pod.APP_LABEL_NAME
: l'etichetta utilizzata per il pod.METRIC_PORT
: il numero di porta.METRIC_PATH
: il percorso della metrica. Verifica il percorso utilizzato dal tuo servizio o dalla tua applicazione. Questo percorso è spesso/metrics
.METRIC
: il nome della metrica che stai esponendo.(Facoltativo)
METRIC_NEW_NAME
: puoi utilizzare questo campo per rinominare la metrica. Se il nome della metrica non è conforme alle limitazioni del nome impostate dal bilanciatore del carico, utilizza questo campo per rinominarlo con un nome valido.Per l'elenco completo delle limitazioni, consulta i dettagli sul campo
backends[].customMetrics[].name
nei riferimenti per l'APIBackendService
.
Applica la risorsa utilizzando il seguente comando:
kubectl apply -f FILE_NAME.yaml
Sostituisci
FILE_NAME
con il nome del file YAML.Dopo aver aggiunto la risorsa personalizzata, la metrica viene inviata all'API di scalabilità automatica. La metrica viene letta ogni pochi secondi e inviata al bilanciatore del carico.
Per esporre una seconda metrica, segui gli stessi passaggi per creare un'altra risorsa personalizzata.
Ora che hai esposto le metriche al bilanciatore del carico, puoi configurarlo in modo che le utilizzi. Per maggiori dettagli, vedi Configurare il bilanciatore del carico in modo che utilizzi metriche personalizzate.
Per saperne di più su come utilizzare il bilanciatore del carico, consulta Configurare il bilanciamento del carico basato sull'utilizzo per i servizi GKE.
Risolvi i problemi relativi alle metriche esposte al bilanciatore del carico
Per verificare che le metriche siano esposte correttamente al bilanciatore del carico, puoi procedere nel seguente modo:
- Verifica i log nell'agente GKE Metrics. Se si è verificato un errore durante il tentativo di esporre le metriche, i log potrebbero aver segnalato la presenza di un errore. Per saperne di più su come cercare gli errori, consulta Risoluzione dei problemi relativi alle metriche di sistema.
- Puoi utilizzare il bilanciatore del carico in modalità di prova generale per esaminare tutte le metriche che riceve. Per scoprire di più sul test delle metriche
utilizzando il flag
dryRun
, consulta Configura il bilanciatore del carico in modo che utilizzi metriche personalizzate.
Passaggi successivi
- Per ulteriori dettagli sul bilanciamento del carico basato sull'utilizzo, consulta Informazioni sui bilanciatori del carico basati sull'utilizzo per i servizi GKE.
- Scopri come configurare il bilanciamento del carico basato sull'utilizzo per i servizi GKE.