Foto di Marta Sher da Shutterstock
Nella gestione applicativa moderna, Kubernetes è alla base dell'orchestrazione dei container. Ne automatizza deployment, scaling e gestione, rivoluzionando i processi di delivery del software. La crescente complessità e l'aumento di scala, però, rendono sempre più difficile gestire il troubleshooting e mantenere ecosistemi così dinamici.
Il troubleshooting di Kubernetes è complesso per diversi motivi. L'architettura di un cluster Kubernetes si compone di numerosi elementi che operano insieme: pod, servizi, configurazioni e networking. Questi componenti interagiscono spesso in modo imprevedibile, rendendo difficile risalire alla causa principale di un problema.
Anche i workloads di Kubernetes evolvono di continuo per rispondere a esigenze in costante mutamento, generando problemi transitori difficili da diagnosticare in tempo reale. I metodi tradizionali di troubleshooting prevedono analisi manuali di log, metriche e configurazioni nei vari componenti: un processo lungo e soggetto a errori.
È qui che entrano in gioco i playbook interattivi di Google Kubernetes Engine (GKE). Con i playbook interattivi, GKE mette a disposizione una guida strutturata e step-by-step per i problemi più comuni, aiutando a risolvere rapidamente le criticità e a migliorare il Mean Time to Resolution (MTTR).
I playbook sono disponibili nelle dashboard di monitoraggio di GCP e vengono aggiunti automaticamente al primo deployment di un workload nel cluster. Di seguito l'elenco dei playbook interattivi disponibili; per gli annunci sui nuovi playbook può consultare le release notes di GKE.

Screenshot da GCP Monitoring -> Dashboards
Il playbook interattivo si basa sui dati di Cloud Monitoring e Cloud Logging: verifichi quindi di non aver disabilitato la raccolta dei log per i workloads nel cluster GKE standard (nei cluster autopilot è abilitata di default).
Il playbook interattivo in azione
- Effettui il deployment nel cluster di un workload difettoso che non riesce ad avviarsi a causa di problemi di configurazione.
kubectl run sample-app --image simbu1290/gke-faulty-app:latest
- Verifichi lo stato del workload nella console.

Stato del workload
- Clicchi sullo stato
CrashLoopBackOffdella sample app: si aprirà una schermata con ulteriori dettagli. Nella sezione delle raccomandazioni troverà il playbook interattivo relativo all'errore.

- Clicchi su
View Interactive Playbookper accedere alla dashboard del playbook in GCP Monitoring. Qui troverà ulteriori dettagli sull'errore e i passaggi successivi per individuare la possibile causa principale.

Panoramica del playbook interattivo

Errore della sample app che compromette l'avvio del container
Grazie alle opzioni out-of-memory e liveness probe disponibili nella dashboard, può individuare rapidamente anche le altre possibili cause di errore. La sezione Correlate Change Events consente di verificare in pochi istanti se modifiche recenti al deployment possano aver inciso sul workload. Potrà poi confrontare le differenze tra la versione attuale e quella precedente per risalire alla causa del problema.
La dashboard è personalizzabile: può aggiungere o rimuovere componenti in base alle proprie esigenze. Se utilizza il sistema di alerting di GCP, può creare avvisi dalla sezione Future Mitigation Tips.

Esempio di configurazione di una policy di alert via email
I dettagli del workload interessato e il link alla dashboard interattiva sono inclusi nella notifica di alert: in questo modo potrà avviare il troubleshooting con la massima rapidità.

Esempio di notifica di alert via email
In sintesi, con l'introduzione dei playbook interattivi consigliati il team di GKE punta a semplificare il troubleshooting dei problemi più comuni e, in ultima analisi, a massimizzare la produttività. Pur offrendo una guida strutturata di grande valore, i playbook interattivi di GKE non sostituiscono il confronto con una persona reale dotata di competenze specialistiche, che in alcuni scenari resta indispensabile.