Il monitoraggio a livello di pod è necessario per garantire che i singoli pod all'interno di un cluster Kubernetes funzionino correttamente. Ciò comporta l'esame di tre tipi di metriche: metriche Kubernetes, metriche dei container e metriche delle applicazioni.
1. Metriche Kubernetes
Il monitoraggio delle metriche Kubernetes consente di garantire che tutti i pod in una distribuzione Kubernetes siano in esecuzione e integri.
Numero di istanze del pod: se il numero attuale di istanze di un pod è basso rispetto a quante ne erano previste, il cluster potrebbe avere esaurito le risorse.
Stato dei pod: capire se i pod sono in esecuzione e quanti sono in sospeso, guasti o terminati offre visibilità sulla loro disponibilità e stabilità.
Riavvii del pod: il monitoraggio del numero di riavvii di un pod indica la stabilità dell'applicazione all'interno del pod. In caso di riavvii frequenti, potrebbe trattarsi di un problema di fondo, come un crash o una limitazione delle risorse.
Utilizzo della CPU: il monitoraggio del consumo della CPU di un pod consente di identificare potenziali colli di bottiglia delle prestazioni e di garantire che i pod dispongano di risorse di elaborazione sufficienti.
Utilizzo della memoria: il monitoraggio del consumo di memoria di un pod consente di rilevare perdite di memoria o un utilizzo eccessivo della memoria, che potrebbero influire sulla stabilità di un'applicazione.
Utilizzo della rete: il monitoraggio dei byte inviati/ricevuti di un pod fornisce insight dettagliati sui relativi modelli di comunicazione e consente di identificare eventuali problemi di rete.
Le metriche di Kubernetes includono anche i controlli dello stato di salute, i dati di rete e l'andamento della distribuzione in corso (ad esempio, il numero di istanze modificate da una versione precedente a una nuova).
2. Metriche dei container
Il monitoraggio delle metriche del container pod consente di determinare quanto si è vicini ai limiti delle risorse configurati. Queste metriche consentono anche di rilevare i pod bloccati in un CrashLoopBackOff.
Utilizzo/limitazione della CPU: il monitoraggio del modo in cui i container in esecuzione consumano la CPU aiuta a identificare quelli che richiedono molte risorse o creano colli di bottiglia, che potrebbero influire sulle prestazioni complessive del cluster. Il monitoraggio delle metriche di throttling della CPU evidenzia se i container sono limitati nell'uso della CPU a causa di vincoli di risorse o di configurazioni errate.
Utilizzo della memoria: il monitoraggio del consumo di memoria dei container in esecuzione richiama l'attenzione su problemi quali perdite di memoria, utilizzo eccessivo della memoria o allocazione insufficiente della memoria, che potrebbero influire sulla stabilità del container e sulle prestazioni complessive del sistema.
Traffico/errori di rete: il monitoraggio del traffico di rete dei container, nonché degli errori come la perdita di pacchetti o i guasti della connessione, aiuta a valutare i loro schemi di comunicazione e l'uso eccessivo della rete o picchi di traffico imprevisti.
3. Metriche delle applicazioni
Il monitoraggio delle metriche delle applicazioni aiuta a misurare le prestazioni e la disponibilità delle applicazioni in esecuzione nei pod Kubernetes. Queste metriche sono in genere sviluppate dall'applicazione Kubernetes stessa e si riferiscono alle business rules che affronta, come latenza, reattività, tassi di errore e tempi di risposta.