Monitoraggio Kubernetes con Prometheus

Il monitoraggio di cluster Kubernetes automatizzato con Prometheus

Kubernetes

Il Kubernetes (o k8s) è una piattaforma self-healing e opensource per l’automazione dei deploy, l’orchestrazione dinamica e la gestione delle applicazioni nei container. È stata originalmente sviluppata da Google e successivamente donata alla CCNF.

Raggruppa i container che compongono un’applicazione in unità logiche atte a semplificarne la gestione e il discovery.

Anche utilizzando i cluster Kubernetes, in qualsiasi momento è possibile che le applicazioni, i nodi o la rete s rompano, o comunque abbiano un malfunzionamento. La possibilità di consultare i log e un sistema di monitoraggio appropriato, con tanto alert e generazione automatica di pannelli con grafici (CPU, Rete,…), diventa fondamentale per evitare interruzioni e analizzare disservizi in genere.

Tutto il progetto Kubernetes ha abbracciato la tecnologia Prometheus e quindi offre supporto al relativo protocollo per il monitoraggio sui servizi presenti nella suite k8s.

Il monitoraggio del cluster k8s può essere molto utile per:

  • effettuare il monitoraggio proattivo, quindi la necessità di monitorare lo stato di tutti i servizi e della rete H24.
  • determinare la visibilità del cluster, cioè la la capacità dei nodi di vedersi reciprocamente.
  • valutare la necessità di modifiche alla capacità del cluster stesso.
  • inviare alert e notifiche, per indicare particolari condizioni critiche.
  • ottenere pannelli con grafici, realizzati con le metriche fornite dal k8s.

Metriche Kubernetes

Ma quali metriche sono disponibili con il Kubernetes per il Prometheus?

Per ciascun nodo presente in Kubernetes saranno disponibili i dati relativi:

  • all’uso della CPU
  • al carico del sistema (System Load)
  • al disk I/O,
  • allo spazio disco utilizzato
  • al traffico di rete sia ricevuto che trasmesso.

Esempio di grafici da Kubernetes

Prometheus Operator

Per far si che tutti i container caricati sul k8s siano automaticamente sotto monitoraggio si può utilizzare il Prometheus Operator, sviluppato in seno alla CoreOS. Lo scopo di questo elemento è la creazione, la configurazione e la gestione di istanze Prometheus per il monitoraggio. Quello che fa è generare le configurazioni per il monitoraggio basandosi sulle label del Kubernetes.

Prometheus Operator Architecture

Il Prometheus Operator fornisce il monitoraggio configurando appropriatamente i servizi Prometheus, Alertmanager e Grafana.

Monitoraggio automatico su k8s

Quando si fa il deploy di una nuova versione di una applicazione, il k8s crea un nuovo pod (container) e solo quando il nuovo pod è pronto, viene distrutto il precedente. Prometheus in questa configurazione è sempre vigilante, in ascolto sulle appropriate API k8s (watching), e quando nota una modifica crea in automatico la configurazione appropriata, basandosi su questo cambiamento di pod.

Grafana & Kubernetes


Pubblicato il
Ultima modifica del
    Be Smart Be Open

    Business Software Solutions

    Ultimi articoli

    Rilasciata in produzione applicazione Wasteful basata su Flutter

    11 Marzo 2022

    I nostri contatti

    Email: besmart@besmartbeopen.it
    Pec: besmartbeopen@pec.it
    P.IVA e C.F.: 02137570509
    Top
    Noi ed alcuni partner utilizziamo cookie o tecnologie simili come specificato nella cookie policy Per maggiori informazioni consulta la nostra Cookie Policy Cookie Policy