Monitorare le prestazioni del cluster Kubernetes con informazioni dettagliate sul contenitore
Usare le cartelle di lavoro, i grafici delle prestazioni e lo stato di integrità disponibili in Informazioni dettagliate contenitore per monitorare il carico di lavoro dei cluster Kubernetes ospitati nel servizio Azure Kubernetes, in Azure Stack o in un altro ambiente. Questo articolo illustra come usare Monitoraggio di Azure per valutare, analizzare e risolvere rapidamente i problemi rilevati.
Cartelle di lavoro
Le cartelle di lavoro combinano testo, query di log, metriche e parametri in report interattivi avanzati che possono essere usati per analizzare le prestazioni dei cluster. Per una descrizione delle cartelle di lavoro disponibili per Informazioni dettagliate contenitore e per indicazioni su come accedervi, vedere Cartelle di lavoro in Informazioni dettagliate contenitore.
Visualizzazione multicluster da Monitoraggio di Azure
Monitoraggio di Azure offre una visualizzazione multicluster che mostra lo stato di integrità di tutti i cluster Kubernetes monitorati distribuiti tra gruppi di risorse nelle sottoscrizioni. Mostra anche i cluster non monitorati dalla soluzione individuati in tutti gli ambienti. Questa visualizzazione consente di comprendere immediatamente lo stato di integrità del cluster e, quindi, di eseguire il drill-down alla pagina delle prestazioni dei nodi e dei controller oppure di vedere i grafici delle prestazioni del cluster. Per i cluster del servizio Azure Kubernetes che sono stati individuati e identificati come non monitorati si può abilitare il monitoraggio dalla visualizzazione.
Per accedere alla visualizzazione multicluster, selezionare Monitoraggio nel riquadro sinistro nel portale di Azure. Nella sezione Informazioni dettagliate selezionare Contenitori.
È possibile definire l'ambito dei risultati presentati nella griglia per visualizzare i tipi di cluster seguenti:
- Azure: cluster del servizio Azure Kubernetes e del motore del servizio Azure Kubernetes ospitati nel servizio stesso.
- Azure Stack (anteprima): cluster del motore del servizio Azure Kubernetes ospitati in Azure Stack.
- Non Azure (anteprima): cluster Kubernetes ospitati in locale.
- Tutti: tutti i cluster Kubernetes ospitati in Azure, in Azure Stack e in ambienti locali di cui è stato eseguito l'onboarding in Informazioni dettagliate contenitore.
Per visualizzare i cluster di un ambiente specifico, selezionarlo in Ambiente nell'angolo in alto a sinistra.
La scheda Cluster monitorati contiene le informazioni seguenti:
- Quanti cluster si trovano in uno stato critico o non integro e quanti sono integri o non inviano dati (ossia si trovano in uno stato sconosciuto).
- Se le distribuzioni del motore del servizio Azure Kubernetes sono tutte integre.
- Quantità di nodi o pod di sistema e utente distribuiti per ogni cluster.
Gli stati di integrità inclusi sono:
- Integro: non vengono rilevati problemi per la macchina virtuale e funziona in base alle esigenze.
- Critico: sono stati rilevati uno o più problemi critici che devono essere risolti per ripristinare il normale funzionamento.
- Avviso: sono stati rilevati uno o più problemi che devono essere risolti per evitare che la condizione di integrità diventi critica.
- Sconosciuto: se non è stato possibile stabilire una connessione con il nodo o il pod, viene impostato uno stato sconosciuto.
- Non trovato: l'area di lavoro, il gruppo di risorse o la sottoscrizione contenente l'area di lavoro per questa soluzione è stato eliminato.
- Non autorizzato: l'utente non ha le autorizzazioni necessarie per leggere i dati nell'area di lavoro.
- Errore: si è verificato un errore durante il tentativo di lettura dei dati dall'area di lavoro.
- Configurazione errata: le informazioni dettagliate sui contenitori non sono configurate correttamente nell'area di lavoro specificata.
- Nessun dato: i dati non sono stati segnalati all'area di lavoro per gli ultimi 30 minuti.
Lo stato di integrità calcola lo stato complessivo del cluster come il peggiore dei tre stati con un'eccezione. Se uno dei tre stati è Sconosciuto, lo stato complessivo del cluster è Sconosciuto.
La tabella seguente fornisce i dettagli del calcolo controllando gli stati di integrità per un cluster monitorato nella vista multicluster.
Cluster monitorato | Status | Disponibilità |
---|---|---|
Pod utente | Healthy Avviso Critico Sconosciuto |
100% 90 - 99% <90% Non segnalata negli ultimi 30 minuti |
Pod sistema | Healthy Avviso Critico Sconosciuto |
100% N/D 100% Non segnalata negli ultimi 30 minuti |
Node | Healthy Avviso Critico Sconosciuto |
>85% 60 - 84% <60% Non segnalata negli ultimi 30 minuti |
Dall'elenco dei cluster è possibile eseguire il drill-down alla pagina Cluster selezionando il nome del cluster. Passare quindi alla pagina delle prestazioni Nodi selezionando il rollup dei nodi nella colonna Nodi per il cluster specifico. In alternativa, è possibile eseguire il drill-down alla pagina delle prestazioni Controller selezionando il rollup della colonna Pod utente o Pod sistema.
Visualizzare le prestazioni direttamente da un cluster
L'accesso a Informazioni dettagliate contenitore è disponibile direttamente da un cluster del servizio Azure Kubernetes selezionando Informazioni dettagliate>Cluster nel riquadro sinistro oppure dopo aver selezionato un cluster nella visualizzazione multicluster. Le informazioni sul cluster sono organizzate in base a quattro prospettive:
- Cluster
- Nodi
- Controller
- Contenitori
Nota
Le esperienze descritte nel resto di questo articolo sono applicabili anche per la visualizzazione delle prestazioni e dello stato di integrità dei cluster Kubernetes ospitati in Azure Stack o in un altro ambiente, se selezionati nella visualizzazione multicluster.
Viene visualizzata la pagina predefinita, contenente quattro grafici a linee delle prestazioni che mostrano le metriche delle prestazioni chiave del cluster.
I grafici delle prestazioni mostrano quattro metriche delle prestazioni:
- % utilizzo CPU nodo: una prospettiva aggregata dell'utilizzo della CPU per l'intero cluster. Per filtrare i risultati per l'intervallo di tempo, selezionare Medio, Min, 50°, 90°, 95° o Max nel selettore di percentili sopra il grafico. I filtri possono essere usati singolarmente o in combinazione.
- % utilizzo memoria nodo: una prospettiva aggregata dell'utilizzo della memoria per l'intero cluster. Per filtrare i risultati per l'intervallo di tempo, selezionare Medio, Min, 50°, 90°, 95° o Max nel selettore di percentili sopra il grafico. I filtri possono essere usati singolarmente o in combinazione.
- Node count (Numero di nodi): il numero e lo stato dei nodi in Kubernetes. Gli stati dei nodi del cluster rappresentati sono Totale, Pronto e Non pronto. Possono essere filtrati singolarmente o in combinazione nel selettore sopra il grafico.
- Numero di pod attivi : il numero e lo stato dei pod in Kubernetes. Gli stati dei pod rappresentati sono Totale, In sospeso, In esecuzione, Sconosciuto, Operazione completata o Operazione non completata. Possono essere filtrati singolarmente o in combinazione nel selettore sopra il grafico.
Usare i tasti freccia SINISTRA e freccia DESTRA per scorrere ogni punto dati del grafico. Usare i tasti freccia SU e GIÙ per scorrere le linee di percentile. Selezionare l'icona Aggiungi nell'angolo in alto a destra di uno dei grafici per aggiungere il grafico selezionato all'ultimo dashboard di Azure visualizzato. Dal dashboard è possibile ridimensionare e riposizionare il grafico. Selezionando il grafico dal dashboard si viene reindirizzati a Informazioni dettagliate contenitore e vengono caricati l'ambito e la visualizzazione corretti.
Informazioni dettagliate contenitore supporta anche Esplora metriche di Monitoraggio di Azure, in cui è possibile creare grafici personalizzati, correlare e analizzare le tendenze e aggiungere ai dashboard. In Esplora metriche è anche possibile usare i criteri impostati per visualizzare le metriche come base di una regola di avviso basata su metriche.
Visualizzare le metriche dei contenitori in Esplora metriche
In Esplora metriche è possibile visualizzare le metriche aggregate di utilizzo dei nodi e dei pod da Informazioni dettagliate contenitore. La tabella seguente contiene un riepilogo dei dettagli utile per comprendere come usare i grafici delle metriche per visualizzare le metriche dei contenitori.
Spazio dei nomi | Metrico | Descrizione |
---|---|---|
insights.container/nodes | ||
cpuUsageMillicores | Misurazione aggregata dell'utilizzo della CPU nel cluster. Si tratta di un core CPU suddiviso in 1.000 unità (milli = 1000). Questa metrica viene usata per determinare l'utilizzo dei core in un contenitore in cui molte applicazioni potrebbero usare un solo core. | |
cpuUsagePercentage | Utilizzo medio aggregato della CPU misurato in percentuale nel cluster. | |
memoryRssBytes | Utilizzo della memoria RSS del contenitore in byte. | |
memoryRssPercentage | Utilizzo della memoria RSS del contenitore in percentuale. | |
memoryWorkingSetBytes | Utilizzo della memoria del working set del contenitore. | |
memoryWorkingSetPercentage | Utilizzo della memoria del working set del contenitore in percentuale. | |
nodesCount | Numero dei nodi in Kubernetes. | |
insights.container/pods | ||
PodCount | Numero dei pod in Kubernetes. |
È possibile dividere una metrica per visualizzarla in base alla dimensione e confrontare diversi segmenti della metrica tra loro. Per un nodo, è possibile segmentare il grafico in base alla dimensione dell’host. Per un pod, è possibile segmentarlo in base alle dimensioni seguenti:
- Controller
- Spazio dei nomi Kubernetes
- Node
- Fase
Analizzare l’integrità di nodi, controller e contenitori
Quando si passa alle schede Nodi, Controller e Contenitori, sul lato destro della pagina viene visualizzato automaticamente un riquadro delle proprietà. Mostra le proprietà dell'elemento selezionato, che include le etichette definite per organizzare gli oggetti Kubernetes. Quando si seleziona un nodo Linux, nella sezione Capacità disco locale vengono visualizzati anche lo spazio su disco disponibile e la percentuale usata per ogni disco presentato al nodo. Selezionare il collegamento >> nel riquadro per visualizzare o nascondere il riquadro.
Quando si espandono gli oggetti nella gerarchia, il riquadro delle proprietà viene aggiornato in base all'oggetto selezionato. Nel riquadro è anche possibile visualizzare i log dei contenitori Kubernetes (stdout/stderror), gli eventi e le metriche dei pod selezionando la scheda Eventi live nella parte superiore del riquadro. Per altre informazioni sulla configurazione necessaria per concedere e controllare l'accesso per la visualizzazione di questi dati, vedere Configurare Dati live.
Mentre si esaminano le risorse del cluster, è possibile visualizzare questi dati dal contenitore in tempo reale. Per altre informazioni su questa funzionalità, vedere Come visualizzare i log, gli eventi e le metriche dei pod Kubernetes in tempo reale.
Per visualizzare i dati dei log di Kubernetes archiviati nell'area di lavoro in base alle ricerche log predefinite, selezionare Visualizza log contenitori nell'elenco a discesa Visualizza in Analisi. Per altre informazioni, vedere Come eseguire query sui log da Informazioni dettagliate contenitore.
Usare l'opzione + Aggiungi filtro nella parte superiore della pagina per filtrare i risultati della visualizzazione per Servizio, Nodo, Spazio dei nomi o Pool di nodi. Dopo aver selezionato l'ambito del filtro, selezionare uno dei valori visualizzati nel campo Seleziona valore/i. Una volta configurato, il filtro viene applicato a livello globale durante la visualizzazione di qualsiasi prospettiva del cluster del servizio Azure Kubernetes. La formula supporta solo il segno di uguale. È possibile aggiungere altri filtri al primo per restringere ulteriormente i risultati. Ad esempio, se si specifica un filtro in base a Nodo, come secondo filtro è possibile selezionare solo Servizio o Spazio dei nomi.
Se si specifica un filtro in una scheda, questo rimane applicato quando si seleziona un'altra scheda. Per eliminarlo occorre selezionare il simbolo x accanto al filtro specificato.
Passando alla scheda Nodi, la gerarchia delle righe segue il modello a oggetti Kubernetes, che parte da un nodo nel cluster. Espandere il nodo per visualizzare uno o più pod in esecuzione nel nodo. Se in un pod sono raggruppati più contenitori, questi vengono visualizzati come ultima riga della gerarchia. È anche possibile visualizzare il numero di carichi di lavoro non correlati a pod in esecuzione sull'host, in caso di uso intensivo del processore o della memoria sull'host.
I contenitori Windows Server che eseguono il sistema operativo Windows Server 2019 vengono visualizzati dopo tutti i nodi basati su Linux nell'elenco. Se si espande un nodo di Windows Server, è possibile visualizzare uno o più pod e contenitori in esecuzione nel nodo. Dopo aver selezionato un nodo, nel riquadro delle proprietà vengono visualizzate le informazioni sulla versione.
I nodi virtuali di Istanze di Azure Container che eseguono il sistema operativo Linux vengono visualizzati dopo l'ultimo nodo del cluster del servizio Azure Kubernetes nell'elenco. Se si espande un nodo virtuale di Istanze di Container, è possibile visualizzare uno o più pod e contenitori di Istanze di Container in esecuzione nel nodo. Le metriche non vengono raccolte e inviate per i nodi, solo i per i pod.
Da un nodo espanso è possibile eseguire il drill-down dal pod o contenitore in esecuzione nel nodo al controller, per visualizzare i dati sulle prestazioni filtrati per quel controller specifico. Nella colonna Controller selezionare il valore per il nodo specifico.
Selezionare controller o contenitori nella parte superiore della pagina per controllare lo stato e l'utilizzo delle risorse per tali oggetti. Per controllare l'utilizzo della memoria, nell'elenco a discesa Metrica selezionare RSS memoria o Working set della memoria. L'opzione Memoria RSS è supportata solo per Kubernetes versione 1.8 e successive. Se si usa un'altra versione, per i valori di % minima viene visualizzato NaN %, ovvero un valore di tipo di dati numerico che indica un valore non definito o non rappresentabile.
Working set della memoria mostra sia la memoria residente che la memoria virtuale (cache) incluse e rappresenta il totale della memoria usata dall'applicazione. RSS memoria mostra solo la memoria principale, vale a dire la memoria residente. Questa metrica mostra la capacità effettiva della memoria disponibile. Qual è la differenza tra memoria residente e memoria virtuale?
- La memoria residente, o memoria principale, è la quantità effettiva di memoria del computer disponibile per i nodi del cluster.
- La memoria virtuale è lo spazio su disco rigido riservato (cache) usato dal sistema operativo per effettuare lo swapping dei dati dalla memoria al disco in caso di utilizzo elevato di memoria e quindi recuperarli in memoria quando necessario.
Per impostazione predefinita, i dati sulle prestazioni sono basati sulle ultime sei ore, ma è possibile modificare questa finestra tramite l'opzione TimeRange nell'angolo superiore sinistro. È anche possibile filtrare i risultati compresi nell'intervallo di tempo selezionando Min, Medio, 50°, 90°, 95° e Max tramite il selettore di percentile.
Quando si passa il puntatore del mouse sopra il grafico a barre sotto la colonna Tendenza, ogni barra mostra l'utilizzo di CPU o memoria, a seconda della metrica selezionata, all'interno di un periodo di campionamento di 15 minuti. Dopo aver selezionato il grafico di tendenza tramite una tastiera, premere ALT+PGSU o ALT+PGGIÙ per scorrere singolarmente ogni barra. Si ottengono gli stessi dettagli che si otterrebbero se si passasse il puntatore sulla barra.
Nell'esempio seguente, per il primo nodo dell'elenco, aks-nodepool1-, il valore per Contenitori è 25. Questo valore è un rollup del numero totale di contenitori distribuiti.
Queste informazioni consentono di determinare rapidamente se i contenitori sono ripartiti in modo equilibrato tra i nodi del cluster.
Le informazioni visualizzate nella scheda Nodi sono descritte nella tabella seguente.
Colonna | Descrizione |
---|---|
Name | Nome dell'host. |
Status | Visualizzazione Kubernetes dello stato del nodo. |
% minima, % media, 50° %, 90° %, 95° %, % massima | Percentuale media dei nodi in base al percentile durante l'intervallo di tempo selezionato. |
Min, Medio, 50°, 90°, 95°, Max | Valore effettivo medio dei nodi in base al percentile durante l'intervallo di tempo selezionato. Il valore medio viene misurato dal limite di CPU/memoria impostato per un nodo. Per i pod e i contenitori, è il valore medio segnalato dall'host. |
Contenitori | Numero di contenitori. |
Tempo di attività | Rappresenta il tempo dall'avvio o dal riavvio di un nodo. |
Controller | Solo per i contenitori e i pod. Mostra il controller in cui si trova. Non tutti i pod sono presenti in un controller. È quindi possibile che per alcuni sia visualizzato N/A per indicare che non sono disponibili. |
% minima tendenza, % media, 50° %, 90° %, 95° %, % massima | Grafico a barre della tendenza che presenta il valore percentuale medio delle metriche di percentile del controller. |
Dopo aver espanso un nodo denominato Altro processo, si potrebbe notare un carico di lavoro. Rappresenta i processi non in contenitori che vengono eseguiti nel nodo e include:
- Processi non in contenitori Kubernetes gestiti o autogestiti.
- Processi runtime del contenitore.
- Kubelet.
- Processi di sistema in esecuzione nel nodo.
- Altri carichi di lavoro non Kubernetes in esecuzione su hardware o macchina virtuale del nodo.
Viene calcolato in base a Utilizzo totale da CAdvisor - Utilizzo da processo in contenitore.
Nel selettore selezionare Controller.
Qui è possibile visualizzare l'integrità delle prestazioni dei controller e dei controller di nodi virtuali di Istanze di Container o dei pod di nodi virtuali non connessi a un controller.
La gerarchia di righe inizia con un controller. Quando si espande un controller, vengono visualizzati uno o più pod. Espandendo un pod, nell'ultima riga viene mostrato il contenitore raggruppato nel pod. Da un controller espanso è possibile eseguire il drill-down al nodo in cui è in esecuzione per visualizzare i dati sulle prestazioni filtrati per il nodo. I pod di Istanze di Container non connessi a un controller vengono presentati per ultimi nell'elenco.
Nella colonna Nodo selezionare il valore per il controller specifico.
Le informazioni presentate quando si visualizzano i controller sono descritte nella tabella seguente.
Colonna | Descrizione |
---|---|
Name | Nome del controller. |
Status | Stato di rollup dei contenitori al termine dell'esecuzione con uno stato come OK, Terminato, Non riuscito, Arrestato o In pausa. Se il contenitore è in esecuzione, ma lo stato non è stato visualizzato correttamente oppure non è stato rilevato dall'agente e non è stata inviata alcuna risposta per più di 30 minuti, lo stato è Sconosciuto. La tabella seguente contiene altri dettagli sull'icona dello stato. |
% minima, % media, 50° %, 90° %, 95° %, % massima | Rollup della percentuale media di ogni entità per la metrica e il percentile selezionati. |
Min, Medio, 50°, 90°, 95°, Max | Rollup della media di millicore della CPU o delle prestazioni di memoria del contenitore per il percentile selezionato. Il valore medio viene misurato dal limite di CPU/memoria impostato per un pod. |
Contenitori | Numero totale di contenitori per il controller o il pod. |
Riavvii | Rollup del numero di riavvii dai contenitori. |
Tempo di attività | Rappresenta il tempo dall'avvio di un contenitore. |
Node | Solo per i contenitori e i pod. Mostra il controller in cui si trova. |
% minima tendenza, % media, 50° %, 90° %, 95° %, % massima | Grafico a barre della tendenza che presenta il valore percentile medio del controller. |
Le icone nel campo dello stato indicano lo stato online dei contenitori.
Icon | Status |
---|---|
In esecuzione | |
In attesa o In pausa | |
Ultima esecuzione segnalata ma senza risposta per oltre 30 minuti | |
Arresto completato o arresto non riuscito |
L'icona dello stato mostra un numero in base ai dati forniti dal pod. Mostra i due stati peggiori. Quando si passa il puntatore del mouse sullo stato, viene visualizzato uno stato di rollup di tutti i pod del contenitore. Se non è presente alcuno stato Pronto, come stato viene visualizzato (0).
Nel selettore selezionare Contenitori.
Qui è possibile visualizzare l'integrità delle prestazioni dei contenitori del servizio Azure Kubernetes e di Istanze di Container.
Da un contenitore è possibile eseguire il drill-down in un pod o nodo per visualizzare i dati sulle prestazioni filtrati per l'oggetto. Nella colonna Pod o Nodo selezionare il valore per il contenitore specifico.
Le informazioni presentate quando si visualizzano i contenitori sono descritte nella tabella seguente.
Colonna | Descrizione |
---|---|
Name | Nome del controller. |
Status | Stato dei contenitori, se presente. La tabella seguente contiene altri dettagli sull'icona dello stato. |
% minima, % media, 50° %, 90° %, 95° %, % massima | Rollup della percentuale media di ogni entità per la metrica e il percentile selezionati. |
Min, Medio, 50°, 90°, 95°, Max | Rollup della media di millicore della CPU o delle prestazioni di memoria del contenitore per il percentile selezionato. Il valore medio viene misurato dal limite di CPU/memoria impostato per un pod. |
Pod | Contenitore in cui è presente il pod. |
Node | Nodo in cui è presente il contenitore. |
Riavvii | Rappresenta il tempo dall'avvio di un contenitore. |
Tempo di attività | Rappresenta il tempo dall'avvio o dal riavvio di un contenitore. |
% minima tendenza, % media, 50° %, 90° %, 95° %, % massima | Grafico a barre della tendenza che presenta il valore percentuale medio delle metriche di percentile del contenitore. |
Altri processi
La voce Altri processi nella visualizzazione Nodo aiuta a riconoscere chiaramente la causa radice dell'utilizzo elevato delle risorse nel nodo. Queste informazioni consentono di distinguere l'utilizzo tra processi in contenitori e processi non in contenitori. Gli altri processi sono i processi non in contenitori che vengono eseguiti nel nodo e includono:
- Processi non in contenitori Kubernetes gestiti o autogestiti.
- Processi runtime del contenitore.
- Kubelet.
- Processi di sistema in esecuzione nel nodo.
- Altri carichi di lavoro non Kubernetes in esecuzione su hardware o macchina virtuale del nodo.
Il valore di Altri processi è Total usage from CAdvisor - Usage from containerized process
.
Status
Le icone nel campo dello stato indicano lo stato online dei pod, come descritto nella tabella seguente.
Icon | Status |
---|---|
In attesa o In pausa | |
Ultima esecuzione segnalata ma senza risposta da oltre 30 minuti | |
Arresto completato o arresto non riuscito | |
Stato Non riuscito |
Monitorare e visualizzare le configurazioni di rete
Gestione criteri di rete di Azure include metriche di Prometheus informative che è possibile usare per monitorare e comprendere meglio le configurazioni di rete. Fornisce visualizzazioni predefinite sul portale di Azure o su Grafana Labs. Per altre informazioni, vedere Monitorare e visualizzare le configurazioni di rete con Gestione criteri di rete di Azure.
Passaggi successivi
- Per informazioni su come creare avvisi per un utilizzo elevato della CPU e della memoria per supportare le procedure e i processi operativi o DevOps, vedere Creare avvisi sulle prestazioni con Informazioni dettagliate contenitore.
- Per visualizzare query predefinite ed esempi da valutare o personalizzare per avvisare, visualizzare o analizzare i cluster, vedere Query di log di esempio.
- Per informazioni sulla visualizzazione dello stato di integrità del cluster Kubernetes, vedere Monitorare l'integrità del cluster.