My IBM Accedi Iscriviti
Cos'è il monitoraggio Kubernetes?

Cos'è il monitoraggio Kubernetes?

Esplora la soluzione IBM per il monitoraggio Kubernetes Iscriviti per ricevere gli aggiornamenti sull'AI
Lavoratore portuale con appunti che guarda all'interno di un container di spedizione
Cos'è il monitoraggio Kubernetes?

Cos'è il monitoraggio Kubernetes?

Il monitoraggio Kubernetes si riferisce al processo di raccolta e analisi dei dati relativi alle caratteristiche di stato di salute, prestazioni e costo delle applicazioni containerizzate che vengono eseguite all'interno di un cluster Kubernetes.

Kubernetes, noto anche come K8s o kube, è una piattaforma di orchestrazione dei container per la pianificazione e l'automazione delle operazioni di distribuzione, gestione e scalabilità delle applicazioni containerizzate. Originariamente progettato da Google, il progetto è ora gestito dalla Cloud Native Computing Foundation (CNCF).

Il monitoraggio dei cluster Kubernetes consente agli amministratori e agli utenti di tenere traccia di cose come il tempo di attività, l'utilizzo delle risorse del cluster e l'interazione tra i componenti del cluster. Il monitoraggio consente di identificare rapidamente problemi come risorse insufficienti, errori, pod non in grado di avviarsi e nodi che non possono essere aggiunti al cluster.

Le applicazioni su Kubernetes fornite come microservizi cloud-nativi hanno un ordine di grandezza maggiore di componenti che comunicano tra loro. Distribuite su più istanze e persino su più sedi, le architetture moderne aggiungono nuove complessità alle attività quotidiane di monitoraggio, allerta e risoluzione dei problemi.

Inoltre, la natura effimera dei container può ostacolare gli sforzi di risoluzione dei problemi. I container di solito vivono quanto il processo in esecuzione al loro interno e scompaiono quando questo processo muore. Questa è una delle parti più impegnative della risoluzione dei problemi relativi ai container. Quando i container si esauriscono o vengono riprogrammati su nodi alternativi, i dettagli necessari per la risposta agli incidenti potrebbero non esistere più.

Sebbene Kubernetes disponga di operatori di cluster integrati per monitorare i cluster e inviare avvisi in base all'esecuzione dei pod, gli strumenti open source e le soluzioni di monitoraggio di terze parti aiutano a fornire piena visibilità in un ambiente K8s.

Vantaggi del monitoraggio Kubernetes

Vantaggi del monitoraggio Kubernetes

Un corretto monitoraggio di Kubernetes offre una serie di vantaggi, dal mantenimento della stabilità e della reattività delle prestazioni delle applicazioni al miglioramento della sicurezza e della conformità.

Ottimizzazione delle prestazioni

Monitorando e analizzando metriche come il consumo della CPU, l'utilizzo della memoria, il traffico di rete e i tempi di risposta, è possibile identificare le aree di inefficienza, ottimizzare l'allocazione delle risorse e mettere a punto un'infrastruttura Kubernetes per garantire prestazioni ottimali.

Ciò può tradursi in una migliore velocità di risposta dell'applicazione e una migliore esperienza utente.

Utilizzo efficiente delle risorse

Monitorando le metriche sull'utilizzo delle risorse come l'utilizzo della CPU, il consumo di memoria e il traffico di rete, è possibile identificare i nodi Kubernetes sottoutilizzati o sovrautilizzati, ottimizzare l'allocazione delle risorse e prendere decisioni informate sulla scalabilità dell'infrastruttura.

Ciò consente di garantire che le applicazioni dispongano delle risorse necessarie per funzionare in modo ottimale, con l'ulteriore vantaggio di ridurre i costi.

Rilevamento proattivo dei problemi

Alert e notifiche aiutano a identificare e risolvere in modo proattivo la causa principale dei problemi di Kubernetes prima che causino interruzioni o tempi di inattività.

I risultati sono una migliore stabilità del sistema e un impatto minimo dei potenziali problemi su applicazioni e utenti.

Risoluzione rapida dei problemi e debugging

I registri di monitoraggio, gli eventi e le metriche aiutano a identificare e diagnosticare rapidamente i problemi, come i guasti dei pod, i limiti delle risorse, i problemi di rete o gli errori delle applicazioni.

Accelerando il processo di debug, i tempi di inattività vengono ridotti e le applicazioni rimangono disponibili.

Pianificazione e scalabilità della capacità

Analizzando i dati storici e monitorando le tendenze nell'utilizzo delle risorse, è possibile fare una previsione del fabbisogno futuro di risorse, identificare quando sono necessarie più risorse Kubernetes e pianificare la scalabilità dei cluster di conseguenza.

In definitiva, l'aumento delle richieste di workload non porterà a carenze di risorse.

Sicurezza e conformità avanzate

Il monitoraggio dei log di Kubernetes, del traffico di rete e dei modelli di accesso facilita l'identificazione di attività anomale, potenziali violazioni e tentativi di accesso non autorizzati.

Inoltre, garantire che i controlli e le politiche di sicurezza adeguati siano in atto e monitorati attivamente aiuta a mantenere la conformità agli standard e alle normative.

Quali metriche K8s devono essere monitorate?

Quali metriche K8s devono essere monitorate?

La visibilità completa di uno stack Kubernetes richiede che vengano raccolti i dati di telemetria sui container che vengono costantemente creati, distrutti e che effettuano chiamate tra loro, oltre a raccogliere dati di telemetria sul cluster Kubernetes stesso.

Monitoraggio a livello di cluster

Per il monitoraggio dei cluster, esistono diverse metriche da seguire a livello di cluster, che aiutano a determinare lo stato di salute generale di un cluster Kubernetes.

Funzioni dei nodi: il monitoraggio del corretto funzionamento di tutti i nodi del cluster e della capacità consente di determinare quali risorse cloud sono necessarie per eseguire il cluster.

Disponibilità dei nodi: il monitoraggio del numero di nodi del cluster disponibili aiuta a determinare quali risorse cloud vengono pagate (se si utilizza un provider cloud come Microsoft Azure) e come viene utilizzato il cluster.

Utilizzo delle risorse dei nodi: il monitoraggio del modo in cui il cluster nel suo complesso utilizza le risorse (memoria, CPU, larghezza di banda e utilizzo del disco) consente di prendere decisioni informate sull'opportunità di aumentare o diminuire le dimensioni o il numero di nodi in un cluster.

Numero di pod in esecuzione: il monitoraggio dei pod in esecuzione mostra se il numero di nodi disponibili è sufficiente e, in caso di errore di un nodo, se sono in grado di gestire o meno l'intero workload del pod.

Monitoraggio a livello di pod

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.

Best practice per il monitoraggio di Kubernetes

Best practice per il monitoraggio di Kubernetes

Di seguito sono riportate alcune best practice da tenere in considerazione per monitorare con successo gli ambienti Kubernetes.  

Usa Kubernetes DaemonSets: i DaemonSets consentono di distribuire un agente che monitora ogni nodo del suo ambiente Kubernetes e tutte le risorse su quel nodo nell'intero cluster Kubernetes. I Daemons aiutano a garantire che gli host appaiano e siano pronti a fornire metriche.

Fai un uso intelligente delle etichette: la creazione di uno schema di etichettatura logico, coerente e coerente semplifica l'identificazione dei diversi componenti da parte dei team DevOps e consente di ottenere il massimo valore dal monitoraggio di Kubernetes.

Use Service Discovery: Service Discovery per Google Kubernetes Engine (GKE) ti consente di monitorare continuamente le sue applicazioni anche se non sai dove sono in esecuzione. Adatta automaticamente la raccolta delle metriche ai container in movimento per una comprensione più completa dello stato di salute di un cluster.

Imposta alert e notifiche: configura alert per metriche critiche, come l'utilizzo della CPU o della memoria, e ricevi una notifica quando tali metriche raggiungono determinate soglie. Gli strumenti di monitoraggio con avvisi intelligenti aiutano a minimizzare lo stress da avvisi eccessivi, in quanto inviano avvisi solo per eventi o cambiamenti significativi.

Monitor gli elementi del piano di controllo: il monitoraggio regolare degli elementi del piano di controllo Kubernetes, come il server API, kube-dns, kubelet, kube-proxy, etcd e controller manager, garantisce che i servizi cluster funzionino senza problemi.

Monitora l'esperienza utente: anche se non viene misurato in modo nativo nella piattaforma Kubernetes, il monitoraggio dell'esperienza utente può talvolta segnalare i problemi prima che vengano rilevati all'interno del cluster.

Utilizza strumenti integrati e open source: indipendentemente dai tuoi casi d'uso, sfrutta gli strumenti di monitoraggio Kubernetes integrati, come Kubernetes Dashboard, cAdvisor (Container Advisor) e Kube-state-metrics, nonché gli strumenti open source più comuni, tra cui Prometheus, Grafana, Jaeger ed Elastic Stack (precedentemente ELK Stack). Oltre all'implementazione, alla risoluzione dei problemi e al monitoraggio, questi strumenti offrono funzioni aggiuntive come la visualizzazione dei dati e la raccolta e l'archiviazione di metriche di serie temporali da varie fonti.

Utilizza una soluzione di monitoraggio K8s basata su SaaS: per semplificare la gestione, lo sviluppo dell'infrastruttura e i costi di Kubernetes, oltre a ricevere aggiornamenti regolari, utilizza un sistema di monitoraggio basato su SaaS con automazione integrata anziché on-premise.

Soluzioni correlate

Soluzioni correlate

IBM Instana Observability

Supera le tradizionali soluzioni di monitoraggio delle prestazioni delle applicazioni democratizzando l'osservabilità in modo che chiunque si occupi di DevOps, SRE, ingegneria della piattaforma, ITOps e sviluppo possa ottenere i dati desiderati con il contesto di cui ha bisogno.

Esplora Instana

Piattaforma IBM Turbonomic Application Resource Management (ARM)

Quando le applicazioni consumano solo ciò di cui hanno bisogno, puoi migliorare l’efficienza operativa, aumentare l’utilizzo, ridurre i costi energetici e le emissioni di carbonio associate.

Scopri Turbonomic

IBM Cloud Monitoring

Utilizza la telemetria full stack per la gestione di architetture incentrate sui container e sui microservizi, con funzionalità avanzate per il monitoraggio, la risoluzione dei problemi, la definizione di avvisi e la progettazione di dashboard personalizzate.

Esplora il monitoraggio del cloud
Fai il passo successivo

IBM Instana consente osservabilità in tempo reale che tutti, e chiunque, possono utilizzare. Offre un rapido time to value, verificando al contempo che la strategia di osservabilità possa tenere il passo con la complessità dinamica degli ambienti di oggi e di domani. Dal mobile al mainframe, Instana supporta oltre 250 tecnologie ed è in continua crescita. 

Esplora IBM Instana Prenota una demo live