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.

Screenshot that shows an Azure Monitor multi-cluster dashboard example.

È 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.

Screenshot that shows an Environment selector example.

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.

Screenshot that shows example performance charts on the Cluster tab.

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.

Screenshot that shows an example of the Kubernetes Node hierarchy in the performance view.

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.

Screenshot that shows an example Node hierarchy with Windows Server nodes listed.

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.

Screenshot that shows an example Node hierarchy with Container Instances listed.

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.

Screenshot that shows the drill-down from node to controller in the performance view.

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.

Screenshot that shows a Container nodes performance view.

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.

Screenshot that shows a percentile selection for data filtering.

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.

Screenshot that shows a Trend bar chart hover-over example.

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.

Screenshot that shows a rollup of containers-per-node example.

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.

Screenshot that shows selecting Controllers.]

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.

Screenshot that shows a \<Name> controllers performance view.

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.

Screenshot that shows an example Controllers hierarchy with Container Instances pods listed.

Selezionare il valore nella colonna Node per il controller specifico.

Screenshot that shows an example drill-down from controller to node in the performance view.

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
Ready running status icon.
Waiting or Paused status icon. In attesa o In pausa
Last reported running status icon. Ultima esecuzione segnalata ma non ha risposto per più di 30 minuti
Successful status icon. 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.

Screenshot that shows selecting Containers.

Qui è possibile visualizzare l'integrità delle prestazioni del servizio Azure Kubernetes e dei contenitori di Istanze di Container.

Screenshot that shows a \<Name> containers performance view.

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.

Screenshot that shows an example drill-down from node to containers in the performance view.

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
Ready running status icon.
Waiting or Paused status icon. In attesa o In pausa
Last reported running status icon. Ultima esecuzione segnalata ma senza risposta da oltre 30 minuti
Terminated status icon. Arresto completato o arresto non riuscito
Failed status icon. 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