Utilizzare AKS desktop Insights (anteprima) per risolvere i problemi di un'applicazione

Il desktop di AKS include una suite di troubleshooting integrata denominata Insights, basata su Inspektor Gadget, uno strumento di debug open source basato su eBPF (extended Berkeley Packet Filter). Senza modificare il codice o riavviare alcun elemento, consente di comprendere il traffico di rete tra pod, tracciare gli errori DNS ed esplorare i processi in esecuzione per individuare attività impreviste o pesanti da risorse, attraverso un'interfaccia utente intuitiva con pochi clic.

Questo articolo illustra come abilitare Insights e usarlo per diagnosticare i problemi comuni delle applicazioni nel cluster del servizio Azure Kubernetes.

Importante

Le funzionalità di anteprima di AKS sono disponibili su base self-service, su scelta. Le anteprime vengono fornite "così come sono" e "come disponibili" e sono escluse dai contratti di servizio e dalla garanzia limitata. Le anteprime del servizio Azure Kubernetes sono parzialmente coperte dal supporto clienti con la massima diligenza possibile. Di conseguenza, queste funzionalità non sono destinate all'uso in produzione. Per altre informazioni, vedere gli articoli di supporto seguenti:

Prerequisiti

  • AKS desktop è installato ed è connesso al tuo cluster AKS. Vedere Configurare un cluster del servizio Azure Kubernetes per il desktop del servizio Azure Kubernetes o Distribuire applicazioni con servizio Azure Kubernetes automatico con il desktop del servizio Azure Kubernetes.
  • Autorizzazioni di amministratore del cluster o equivalenti autorizzazioni di controllo degli accessi in base al ruolo nel cluster AKS di destinazione. L'installazione di Inspektor Gadget richiede la creazione di un ClusterRoleoggetto , ClusterRoleBindinge un oggetto con privilegi DaemonSet.
  • I nodi del cluster devono eseguire Linux con versione del kernel ≥ 5.4. I pool di nodi Windows non sono supportati.
  • Se il cluster utilizza i Criteri di Azure o OPA Gatekeeper con sicurezza dei pod con restrizioni, aggiungere un'esenzione per lo spazio dei nomi gadget per consentire i pod privilegiati.
  • Il cluster di destinazione deve essere un cluster AKS Standard.

Abilitare informazioni dettagliate nel desktop del Servizio Azure Kubernetes

  1. Avviare l'applicazione desktop del servizio Azure Kubernetes e assicurarsi di aver eseguito l'accesso e la connessione al cluster del servizio Azure Kubernetes.

  2. Nel riquadro di spostamento a sinistra selezionare Impostazioni.

  3. Dal menu Impostazioni selezionare Plug-in.

  4. Individuare il plug-in Insights nell'elenco e selezionare l'interruttore Abilita .

    Screenshot dell'abilitazione del plugin Insights nel desktop di AKS.

Accedere a Insights per il progetto

Nel riquadro di spostamento a sinistra selezionare il progetto con cui si vuole usare Insights. La scheda Informazioni dettagliate sarà ora visibile nella visualizzazione Progetto.

Screenshot della scheda Informazioni dettagliate nel desktop del Servizio Azure Kubernetes.

Distribuire Inspektor Gadget nel cluster

Nella scheda Insights viene richiesto di distribuire Inspektor Gadget nel cluster, se non è già installato.

  1. Seleziona Esegui Inspektor Gadget. Il desktop AKS distribuisce il DaemonSet di Inspektor Gadget nel namespace gadget nel cluster.
  2. Attendere il completamento della distribuzione. Un indicatore di stato conferma quando Inspektor Gadget è pronto.

Visualizzare i dati di Insights

Dopo aver distribuito Inspektor Gadget, la scheda 'Insights' si arricchisce di dati di osservabilità in tempo reale provenienti dal cluster. Vedere Operazioni che è possibile eseguire con Insights per il set completo di funzionalità.

Screenshot della schermata panoramica di Informazioni dettagliate nel desktop del Servizio Azure Kubernetes.

Operazioni che è possibile eseguire con Insights

Risoluzione dei problemi relativi alle prestazioni con i processi

La visualizzazione Processi mostra ogni processo in esecuzione tra i pod del cluster in tempo reale, insieme all'utilizzo di CPU, memoria e I/O su disco. Usarlo per:

  • Identificare i pod che utilizzano una CPU o una memoria eccessiva.
  • Individuare un'attività di I/O a blocchi anomala, ad esempio letture o scritture su disco insolitamente elevate che possono indicare un'app non configurata correttamente, un sistema di scrittura dei log in esecuzione o un collo di bottiglia dell'archiviazione.
  • Rilevare processi imprevisti che non devono essere in esecuzione in un contenitore.

Screenshot della vista Processi (Informazioni dettagliate) nel desktop di Servizio Azure Kubernetes, che mostra metriche per pod di CPU, memoria e I/O.

Visibilità di rete con il protocollo TCP (Trace Transmission Control Protocol)

La traccia TCP acquisisce eventi di connessione TCP in tempo reale a livello di kernel usando eBPF, senza proxy o sidecar. Usarlo per:

  • Vedere quali pod stanno aprendo connessioni in uscita e a quali indirizzi IP e porte di destinazione.
  • Rilevare connessioni impreviste o non autorizzate che potrebbero indicare un problema di configurazione o sicurezza non corretto.
  • Correlare le anomalie di rete con pod o carichi di lavoro specifici.

Screenshot della vista Informazioni dettagliate Trace TCP nel desktop del Servizio Azure Kubernetes che mostra le connessioni TCP in tempo reale da pod a pod ed esterne.

Annotazioni

È necessario arrestare la traccia al termine, selezionare il pulsante di arresto rosso in alto a destra della traccia.

Risolvere i problemi relativi al DNS con Trace DNS

Trace DNS registra tutte le richieste e le risposte DNS effettuate dai pod nel tuo cluster. Usarlo per:

  • Identificare le query DNS che non vanno a buon fine nella risoluzione, una causa comune di errori nella connettività da pod a servizio.
  • Misurare la latenza DNS per determinare se CoreDNS (server DNS nel cluster) o un resolver DNS upstream è lento.
  • Controllare l'integrità di CoreDNS e se la risoluzione DNS esterna funziona correttamente.

Screenshot della vista Trace DNS nell'ambiente desktop di Servizio Azure Kubernetes che mostra query DNS, risposte e latenza per pod.

Annotazioni

È necessario arrestare la traccia al termine, selezionare il pulsante di arresto rosso in alto a destra della traccia.

Disinstallare Inspektor Gadget

Rimuovere Inspektor Gadget dal cluster eliminando lo gadget spazio dei nomi . In questo modo vengono rimossi tutti i dati e le funzionalità di Insights, quindi eseguire questa operazione solo quando non sono più necessarie funzionalità di Insights.

kubectl delete ns gadget

Avviso

Questo comando rimuove tutte le risorse nello spazio nomi gadget, non solo quelle create da Inspektor Gadget.

Risoluzione dei problemi relativi a Insights

La tabella seguente illustra i problemi comuni che possono verificarsi quando si usano Informazioni dettagliate insieme alle relative soluzioni:

Problema Risoluzione
La scheda Insights non è visibile Verificare che il plug-in Insights sia abilitato. Passare a Impostazioni>Plug-in e attivare/disattivare Informazioni dettagliate .
La distribuzione di Inspektor Gadget ha esito negativo Verificare di disporre di autorizzazioni RBAC sufficienti per creare DaemonSets e ClusterRoles nel cluster.
Non viene visualizzato alcun dato dopo la distribuzione Verificare che i nodi del cluster eseguano un kernel Linux supportato (≥ 5.4). Verificare i log dei pod di Inspektor Gadget per la presenza di errori.