Monitorare le prestazioni del cluster Kubernetes con informazioni dettagliate sul contenitore
Usare cartelle di lavoro, grafici delle prestazioni e stato di integrità in Informazioni dettagliate contenitore per monitorare il carico di lavoro dei cluster Kubernetes ospitati in servizio Azure Kubernetes (AKS), Azure Stack o un altro ambiente.
Questo articolo illustra le due prospettive e il modo in cui Monitoraggio di Azure consente di valutare, analizzare e risolvere rapidamente i problemi rilevati.
Workbooks
Le cartelle di lavoro combinano testo, query di log, metriche e parametri in report interattivi avanzati che è possibile usare per analizzare le prestazioni del cluster. Per una descrizione delle cartelle di lavoro disponibili per informazioni dettagliate sui contenitori e su come accedervi, vedere Cartelle di lavoro in Informazioni dettagliate sui contenitori.
Visualizzazione multicluster da Monitoraggio di Azure
Monitoraggio di Azure offre una visualizzazione multi-cluster che mostra lo stato di integrità di tutti i cluster Kubernetes monitorati distribuiti tra gruppi di risorse nelle sottoscrizioni. Mostra anche i cluster individuati in tutti gli ambienti che non vengono monitorati dalla soluzione. Con questa visualizzazione, è possibile comprendere immediatamente l'integrità del cluster e quindi eseguire il drill-down alla pagina delle prestazioni del nodo e del controller oppure passare a visualizzare i grafici delle prestazioni per il cluster. Per i cluster del servizio Azure Kubernetes individuati e identificati come non monitorati, è possibile abilitare il monitoraggio dalla visualizzazione.
Per accedere alla visualizzazione multi-cluster, selezionare Monitoraggio nel riquadro sinistro nella portale di Azure. Nella sezione Informazioni dettagliate selezionare Contenitori.
È possibile definire l'ambito dei risultati presentati nella griglia per visualizzare i cluster che sono:
- Azure: cluster del motore del servizio Azure Kubernetes e del servizio Azure Kubernetes ospitati in servizio Azure Kubernetes.
- Azure Stack (anteprima): cluster del motore del servizio Azure Kubernetes ospitati in Azure Stack.
- Non Azure (anteprima): cluster Kubernetes ospitati in locale.
- Tutto: visualizzare tutti i cluster Kubernetes ospitati in Azure, Azure Stack e ambienti locali di cui è stato eseguito l'onboarding in Informazioni dettagliate sui contenitori.
Per visualizzare i cluster da un ambiente specifico, selezionarlo in Ambiente nell'angolo superiore sinistro.
Nella scheda Cluster monitorati si apprenderà quanto segue:
- Il numero di cluster in uno stato critico o non integro rispetto al numero di report integri o non integri (detto stato Sconosciuto).
- Indica se tutte le distribuzioni del motore di Azure Kubernetes (motore del servizio Azure Kubernetes) sono 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 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 segnalato negli ultimi 30 minuti |
Pod sistema | Healthy Avviso Critico Sconosciuto |
100% N/D 100% Non segnalato negli ultimi 30 minuti |
Node | Healthy Avviso Critico Sconosciuto |
>85% 60 - 84% <60% Non segnalato negli ultimi 30 minuti |
Dall'elenco dei cluster è possibile eseguire il drill-down nella pagina Cluster selezionando il nome del cluster. Passare quindi alla pagina Prestazioni nodi selezionando il rollup dei nodi nella colonna Nodi per quel cluster specifico. In alternativa, è possibile eseguire il drill-down nella pagina Controller prestazioni selezionando il rollup della colonna Pod utente o Pod di sistema.
Visualizzare le prestazioni direttamente da un cluster
L'accesso a Informazioni dettagliate sui contenitori è disponibile direttamente da un cluster del servizio Azure Kubernetes selezionando Cluster Insights> nel riquadro sinistro o quando è stato selezionato un cluster dalla visualizzazione multi-cluster. Le informazioni sul cluster sono organizzate in 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 quando selezionato dalla visualizzazione multi-cluster.
Viene visualizzata la pagina predefinita e vengono visualizzati quattro grafici delle prestazioni a linee che mostrano le metriche delle prestazioni chiave del cluster.
I grafici delle prestazioni visualizzano quattro metriche delle prestazioni:
- Utilizzo CPU del nodo %: prospettiva aggregata dell'utilizzo della CPU per l'intero cluster. Per filtrare i risultati per l'intervallo di tempo, selezionare Avg, Min, 50th, 90th, 95th o Max nel selettore percentile sopra il grafico. I filtri possono essere usati singolarmente o combinati.
- Utilizzo della memoria del nodo %: prospettiva aggregata dell'utilizzo della memoria per l'intero cluster. Per filtrare i risultati per l'intervallo di tempo, selezionare Avg, Min, 50th, 90th, 95th o Max nel selettore percentile sopra il grafico. I filtri possono essere usati singolarmente o combinati.
- Node count (Numero di nodi): il numero e lo stato dei nodi in Kubernetes. Gli stati dei nodi del cluster rappresentati sono Total, Ready e Not Ready. Possono essere filtrati singolarmente o combinati nel selettore sopra il grafico.
- Numero di pod attivi: numero di pod e stato di Kubernetes. Gli stati dei pod rappresentati sono Total, Pending, Running, Unknown, Succeeded o Failed. Possono essere filtrati singolarmente o combinati nel selettore sopra il grafico.
Usare i tasti di direzione sinistra e destra per scorrere ogni punto dati del grafico. Usare i tasti freccia Su e Giù per scorrere le linee percentili. Selezionare l'icona a forma di puntina nell'angolo superiore destro di uno dei grafici per aggiungere il grafico selezionato all'ultimo dashboard di Azure visualizzato. Dal dashboard è possibile ridimensionare e riposizionare il grafico. La selezione del grafico dal dashboard reindirizza le informazioni dettagliate del contenitore e carica l'ambito e la visualizzazione corretti.
Informazioni dettagliate sui contenitori supporta anche Esplora metriche di Monitoraggio di Azure, in cui è possibile creare grafici dei tracciati 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 sulle metriche.
Visualizzare le metriche dei contenitori in Esplora metriche
In Esplora metriche è possibile visualizzare le metriche di utilizzo aggregato dei nodi e dei pod da Informazioni dettagliate sui contenitori. La tabella seguente riepiloga i dettagli 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). Usato per determinare l'utilizzo dei core in un contenitore in cui molte applicazioni potrebbero usare un core. | |
cpuUsagePercentage | Utilizzo medio aggregato della CPU misurato in percentuale nel cluster. | |
memoryRssBytes | Memoria RSS del contenitore usata in byte. | |
memoryRssPercentage | Memoria RSS del contenitore usata in percentuale. | |
memoryWorkingSetBytes | Memoria del working set di contenitori usata. | |
memoryWorkingSetPercentage | Memoria del working set di contenitori usata in percentuale. | |
nodesCount | Numero di nodi da Kubernetes. | |
insights.container/pods | ||
PodCount | Numero di pod da Kubernetes. |
È possibile suddividere una metrica per visualizzarla in base alla dimensione e visualizzare il modo in cui vengono confrontati tra loro segmenti diversi. Per un nodo, è possibile segmentare il grafico in base alla dimensione host . Da un pod è possibile segmentarlo in base alle dimensioni seguenti:
- Controller
- Spazio dei nomi Kubernetes
- Node
- Fase
Analizzare nodi, controller e integrità dei contenitori
Quando si passa alle schede Nodi, Controller e Contenitori , viene visualizzato automaticamente un riquadro delle proprietà sul lato destro della pagina. Mostra le proprietà dell'elemento selezionato, che include le etichette definite per organizzare gli oggetti Kubernetes. Quando si seleziona un nodo Linux, la sezione Capacità disco locale mostra 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 visualizzare questi dati, vedere Configurare i dati attivi.
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 di log di Kubernetes archiviati nell'area di lavoro in base alle ricerche log predefinite, selezionare Visualizza log del contenitore dall'elenco a discesa Visualizza in analisi . Per altre informazioni, vedere Come eseguire query sui log da Informazioni dettagliate sui contenitori.
Usare l'opzione + Aggiungi filtro nella parte superiore della pagina per filtrare i risultati per la visualizzazione in base a Servizio, Nodo, Spazio dei nomi o Pool di nodi. Dopo aver selezionato l'ambito del filtro, selezionare uno dei valori visualizzati nel campo Seleziona valori . Dopo aver 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 sopra il primo per restringere ulteriormente i risultati. Ad esempio, se si specifica un filtro in base a Node, è possibile selezionare solo Servizio o Spazio dei nomi per il secondo filtro.
La specifica di un filtro in una scheda continua a essere applicata quando si seleziona un'altra. Viene eliminato dopo aver selezionato il simbolo x accanto al filtro specificato.
Passare alla scheda Nodi e alla gerarchia di righe segue il modello a oggetti Kubernetes, che inizia con un nodo nel cluster. Espandere il nodo per visualizzare uno o più pod in esecuzione nel nodo. Se più contenitori sono raggruppati in un pod, vengono visualizzati come ultima riga nella gerarchia. È anche possibile visualizzare il numero di carichi di lavoro non correlati ai pod in esecuzione nell'host se l'host ha un utilizzo elevato di processore o memoria.
I contenitori di Windows Server che eseguono il sistema operativo Windows Server 2019 vengono visualizzati dopo tutti i nodi basati su Linux nell'elenco. Quando si espande un nodo Windows Server, è possibile visualizzare uno o più pod e contenitori eseguiti nel nodo. Dopo aver selezionato un nodo, il riquadro delle proprietà mostra le informazioni sulla versione.
Istanze di Azure Container nodi virtuali che eseguono il sistema operativo Linux vengono visualizzati dopo l'ultimo nodo del cluster del servizio Azure Kubernetes nell'elenco. Quando si espande un nodo virtuale Istanze di Container, è possibile visualizzare uno o più Istanze di Container pod e contenitori eseguiti nel nodo. Le metriche non vengono raccolte e segnalate per i nodi, solo per i pod.
Da un nodo espanso è possibile eseguire il drill-down dal pod o dal contenitore in esecuzione nel nodo al controller per visualizzare i dati sulle prestazioni filtrati per tale controller. Selezionare il valore nella colonna Controller per il nodo specifico.
Selezionare controller o contenitori nella parte superiore della pagina per esaminare lo stato e l'utilizzo delle risorse per tali oggetti. Per esaminare l'utilizzo della memoria, nell'elenco a discesa Metrica selezionare Memoria RSS o Memory working set. L'opzione Memoria RSS è supportata solo per Kubernetes versione 1.8 e successive. In caso contrario, si visualizzano i valori di Min % come NaN %, ovvero un valore di tipo di dati numerico che rappresenta un valore non definito o non rappresentabile.
Il working set di memoria mostra sia la memoria residente che la memoria virtuale (cache) inclusa ed è un totale di ciò che l'applicazione usa. Memoria RSS mostra solo la memoria principale, che non è altro che la memoria residente. Questa metrica mostra la capacità effettiva della memoria disponibile. Qual è la differenza tra memoria residente e memoria virtuale?
- Memoria residente o memoria principale è la quantità effettiva di memoria del computer disponibile per i nodi del cluster.
- La memoria virtuale è riservata allo spazio su disco rigido (cache) usato dal sistema operativo per scambiare i dati dalla memoria al disco quando è sotto pressione di memoria e quindi recuperarlo in memoria quando necessario.
Per impostazione predefinita, i dati sulle prestazioni si basano sulle ultime sei ore, ma è possibile modificare la finestra usando l'opzione TimeRange in alto a sinistra. È anche possibile filtrare i risultati nell'intervallo di tempo selezionando Min, Avg, 50th, 90th, 95th e Max nel selettore percentile.
Quando si passa il puntatore del mouse sul grafico a barre sotto la colonna Trend , ogni barra mostra l'utilizzo della CPU o della memoria, a seconda della metrica selezionata, entro un periodo di campionamento di 15 minuti. Dopo aver selezionato il grafico di tendenza tramite una tastiera, usare il tasto ALT+Pagina su o ALT+Pagina giù per scorrere singolarmente ogni barra. Si ottengono gli stessi dettagli che si farebbe se si passasse il mouse 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 identificare rapidamente se si dispone di un bilanciamento corretto dei contenitori tra i nodi del cluster.
Le informazioni presentate quando si visualizza la scheda Nodi sono descritte nella tabella seguente.
Colonna | Descrizione |
---|---|
Name | Nome dell'host. |
Status | Visualizzazione Kubernetes dello stato del nodo. |
Min %, Avg %, 50th %, 90th %, 95th %, Max % | Percentuale media dei nodi in base al percentile durante l'intervallo di tempo selezionato. |
Min, Avg, 50th, 90th, 95th, Max | Valore effettivo dei nodi medio in base al percentile durante la durata del tempo selezionata. 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 risiede. Non tutti i pod sono presenti in un controller. È quindi possibile che per alcuni sia visualizzato N/A per indicare che non sono disponibili. |
Trend Min %, Avg %, 50th %, 90th %, 95th %, Max % | Grafico a barre della tendenza che presenta il valore percentuale medio delle metriche di percentile del controller. |
È possibile notare un carico di lavoro dopo l'espansione di un nodo denominato Altro processo. Rappresenta processi non in contenitori eseguiti nel nodo e include:
- Processi Kubernetes autogestiti o gestiti non in contenitori.
- Processi in fase di esecuzione del contenitore.
- Kubelet.
- Processi di sistema in esecuzione nel nodo.
- Altri carichi di lavoro non Kubernetes in esecuzione nell'hardware del nodo o in una macchina virtuale.
Viene calcolato in base all'utilizzo totale dall'utilizzo di CAdvisor - dal processo in contenitori.
Nel selettore selezionare Controller.
Qui è possibile visualizzare l'integrità delle prestazioni dei controller e Istanze di Container controller dei nodi virtuali o pod dei nodi virtuali non connessi a un controller.
La gerarchia di righe inizia con un controller. Quando si espande un controller, si visualizzano 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 su cui è in esecuzione per visualizzare i dati sulle prestazioni filtrati per tale nodo. Istanze di Container pod non connessi a un controller sono elencati per ultimo nell'elenco.
Selezionare il valore nella colonna Node per il controller specifico.
Le informazioni visualizzate 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 lo stato OK, Terminato, Non riuscito, Arrestato o Sospeso. Se il contenitore è in esecuzione ma lo stato non è stato visualizzato correttamente o non è stato prelevato dall'agente e non ha risposto per più di 30 minuti, lo stato è Sconosciuto. Altre informazioni sull'icona di stato sono disponibili nella tabella seguente. |
Min %, Avg %, 50th %, 90th %, 95th %, Max % | Rollup della percentuale media di ogni entità per la metrica e il percentile selezionati. |
Min, Avg, 50th, 90th, 95th, 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 risiede. |
Trend Min %, Avg %, 50th %, 90th %, 95th %, Max % | Grafico a barre della tendenza che presenta il valore percentile medio del controller. |
Le icone nel campo stato indicano lo stato online dei contenitori.
Icon | Status |
---|---|
In attesa o In pausa | |
Ultima esecuzione segnalata ma non ha risposto per più di 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 lo stato di rollup di tutti i pod nel contenitore. Se non è presente alcuno stato Pronto, come stato viene visualizzato (0).
Nel selettore selezionare Contenitori.
Qui è possibile visualizzare l'integrità delle prestazioni del servizio Azure Kubernetes e dei contenitori 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. Selezionare il valore nella colonna Pod o Node per il contenitore specifico.
Le informazioni visualizzate quando si visualizzano i contenitori sono descritte nella tabella seguente.
Colonna | Descrizione |
---|---|
Name | Nome del controller. |
Status | Stato dei contenitori, se presente. Altre informazioni sull'icona di stato sono disponibili nella tabella successiva. |
Min %, Avg %, 50th %, 90th %, 95th %, Max % | Rollup della percentuale media di ogni entità per la metrica e il percentile selezionati. |
Min, Avg, 50th, 90th, 95th, 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. |
Trend Min %, Avg %, 50th %, 90th %, 95th %, Max % | Grafico a barre della tendenza che presenta il valore percentuale medio delle metriche di percentile del contenitore. |
Le icone nel campo stato indicano gli stati 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
Azure Network Policy Manager include metriche prometheus informative che è possibile usare per monitorare e comprendere meglio le configurazioni di rete. Fornisce visualizzazioni predefinite in portale di Azure o Grafana Labs. Per altre informazioni, vedere Monitorare e visualizzare le configurazioni di rete con npm di Azure.
Domande frequenti
Questa sezione fornisce le risposte alle domande comuni.
Cosa rappresenta "Altri processi" nella visualizzazione Node?
Altri processi aiuta a stabilire in modo chiaro 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.
Che cosa sono questi altri processi?
Sono processi non vincolati eseguiti nel nodo.
Come si calcola l’utilizzo?
Altri processi = Utilizzo totale da Utilizzo CAdvisor - dal processo in contenitori
Gli altri processi includono:
- Processi Kubernetes autogestiti o non gestiti.
- Processi in fase di esecuzione del contenitore.
- Kubelet.
- Processi di sistema in esecuzione nel nodo.
- Altri carichi di lavoro non Kubernetes in esecuzione nell'hardware del nodo o in una macchina virtuale.
Passaggi successivi
- Vedere Creare avvisi sulle prestazioni con Informazioni dettagliate sui contenitori per informazioni su come creare avvisi per un utilizzo elevato della CPU e della memoria per supportare i processi e le procedure operativi di DevOps.
- Vedere Esempi di query di log per visualizzare query ed esempi predefiniti per valutare o personalizzare avvisi, visualizzare o analizzare i cluster.
- Vedere Monitorare l'integrità del cluster per informazioni sulla visualizzazione dello stato di integrità del cluster Kubernetes.