Questa pagina descrive i modi in cui puoi aumentare o diminuire automaticamente il numero di repliche di un determinato carico di lavoro utilizzando metriche personalizzate, esterne o Prometheus.
Perché eseguire la scalabilità automatica in base alle metriche
Prendiamo in considerazione un'applicazione che estrae le attività da una coda e le completa. L'applicazione potrebbe avere un obiettivo del livello di servizio (SLO) per il tempo di elaborazione di un'attività o per il numero di attività in attesa. Se la coda è in aumento, un numero maggiore di repliche del carico di lavoro potrebbe soddisfare lo SLO dei carichi di lavoro. Se la coda è vuota o si sta riducendo più rapidamente del previsto, puoi risparmiare denaro eseguendo meno repliche, pur rispettando gli SLO dei carichi di lavoro.
Informazioni sulle metriche personalizzate, Prometheus ed esterne
Puoi scalare i carichi di lavoro in base a metriche personalizzate, Prometheus o esterne.
Viene registrata una metrica personalizzata dalla tua applicazione in esecuzione in Kubernetes. Per approfondire, consulta Metriche personalizzate e Prometheus.
Le metriche provenienti da Managed Service per Prometheus sono considerate un tipo di metrica personalizzata.
Una metrica esterna viene registrata da un'applicazione o un servizio non in esecuzione sul tuo cluster, ma le cui prestazioni influiscono sulla tua applicazione Kubernetes. Ad esempio, puoi eseguire la scalabilità automatica in base a qualsiasi metrica in Cloud Monitoring, tra cui Pub/Sub o Dataflow. Le metriche Prometheus contengono dati omessi dal tuo cluster che puoi utilizzare per eseguire il ridimensionamento automatico. Per scoprire di più, consulta Metriche esterne.
Metriche personalizzate e Prometheus
Ti consigliamo di utilizzare Managed Service per Prometheus per creare e gestire le metriche personalizzate. Puoi utilizzare Prometheus Query Language (PromQL) per eseguire query su tutte le metriche in Monitoraggio. Per saperne di più, consulta Scalabilità automatica dei pod orizzontali per Managed Service per Prometheus.
L'applicazione può segnalare una metrica personalizzata a Monitoring. Puoi configurare Kubernetes in modo che risponda a queste metriche e scalare automaticamente il tuo carico di lavoro. Ad esempio, puoi scalare l'applicazione in base a metriche come query al secondo, scritture al secondo, prestazioni della rete, latenza durante la comunicazione con un'altra applicazione o altre metriche pertinenti per il tuo carico di lavoro. Per ulteriori informazioni, consulta Ottimizzare la scalabilità automatica dei pod in base alle metriche.
Metriche esterne
Se devi scalare il carico di lavoro in base alle prestazioni di un'applicazione o di un servizio esterno a Kubernetes, puoi configurare una metrica esterna. Ad esempio, potresti dover aumentare la capacità della tua applicazione per importare i messaggi da Pub/Sub se il numero di messaggi non recapitati è in aumento. L'applicazione esterna deve esportare la metrica in un'istanza di monitoraggio a cui il cluster può accedere. La tendenza di ogni metrica nel tempo fa sì che Horizontal Pod Autoscaler modifichi automaticamente il numero di repliche nel workload. Per ulteriori informazioni, consulta Ottimizzare la scalabilità automatica dei pod in base alle metriche.
Importare le metriche in Monitoring
Per importare le metriche in Monitoring, puoi:
- Configura Managed Service per Prometheus (opzione consigliata) o
- Esporta le metriche dall'applicazione utilizzando l'API Cloud Monitoring.
Passaggi successivi
- Scopri come abilitare la scalabilità automatica orizzontale dei pod per Managed Service per Prometheus.
- Scopri di più sulla scalabilità automatica pod orizzontale.
- Scopri di più sulla scalabilità automatica pod verticale.