0Pricing
DevOps Bootcamp · Lezione

Logging con kubectl logs

Acceda ai log dei container e li analizzi direttamente dal cluster Kubernetes utilizzando kubectl.

Logging con kubectl logs è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.

Perché i log sono importanti in Kubernetes

In Kubernetes, capire che cosa fanno le applicazioni è fondamentale. I log sono come il diario dell'applicazione: registrano eventi, errori e aggiornamenti sullo stato.

Sono essenziali per:

  • Debug: individuare con precisione i problemi quando qualcosa non funziona.
  • Monitoraggio: tenere sotto controllo lo stato e le prestazioni dell'applicazione.
  • Audit: tenere traccia delle azioni e delle modifiche nel tempo.

Spiegazione dei log dei container

Quando un'applicazione containerizzata è in esecuzione, in genere scrive l'output nei flussi standard output (stdout) e standard error (stderr). Kubernetes raccoglie questi flussi per ogni container.

Questi flussi sono quindi disponibili tramite l'API di Kubernetes, consentendovi di accedervi facilmente senza dover usare SSH sui nodi o sui singoli container.

Introduzione a kubectl logs

Il comando kubectl logs è lo strumento principale per accedere ai log dei container in esecuzione nei vostri Pod Kubernetes. È semplice da usare e offre diverse opzioni avanzate.

Il caso d'uso più semplice consiste nello specificare il nome del Pod che desiderate esaminare.

Creare un Pod che genera log

Per vedere kubectl logs in azione, immaginiamo di aver distribuito un semplice Pod che scrive continuamente messaggi nell'output standard. In questo modo simuleremo un'applicazione reale che genera log.

Ecco il file YAML di un Pod di questo tipo (dovreste applicarlo utilizzando kubectl apply -f):

apiVersion: v1
kind: Pod
metadata:
  name: busybox-logger
spec:
  containers:
  - name: busybox-container
    image: busybox
    command: ['sh', '-c', 'while true; do echo "$(date) - Hello from BusyBox"; sleep 5; done']
  restartPolicy: Always

Visualizzare i log di base di un Pod

Quando il Pod busybox-logger è in esecuzione (verifichi con kubectl get pods), può recuperare i relativi log usando il comando di base kubectl logs.

In questo modo verranno visualizzate tutte le voci di log registrate fino a quel momento.

kubectl logs busybox-logger

Trasmettere i log in tempo reale

Per il debugging in tempo reale, spesso è necessario vedere i log man mano che vengono generati, in modo simile a tail -f su Linux. Il flag -f o --follow svolge esattamente questa funzione.

Trasmette continuamente le nuove voci di log dal container.

kubectl logs -f busybox-logger

Log dei container precedenti

Se un container all'interno del Suo Pod va in crash e viene riavviato, per impostazione predefinita kubectl logs mostra i log dell'istanza *attualmente* in esecuzione.

Per visualizzare i log di un'istanza *precedente* e terminata di un container, usi il flag --previous o -p. È uno strumento prezioso per eseguire il debugging e capire perché un container potrebbe aver avuto un errore.

kubectl logs -p busybox-logger

Log di container specifici

Alcuni Pod possono eseguire più container (ad esempio, un'applicazione principale e un sidecar per il logging o il monitoraggio). Se il Suo Pod contiene più di un container, deve specificare i log del container che desidera visualizzare usando il flag -c o --container.

kubectl logs my-multi-container-pod -c my-sidecar-container

Filtrare e limitare l'output dei log

A volte è necessario solo una parte specifica dei log o soltanto le voci più recenti. Può combinare kubectl logs con i comandi Linux standard oppure usare i flag integrati:

  • Filtrare con grep: reindirizzi l'output a grep per trovare parole chiave specifiche.
  • Limitare le righe con --tail: visualizzi solo le ultime N righe dei log.
kubectl logs busybox-logger | grep "Hello"
kubectl logs busybox-logger --tail=5

Sfida sui comandi per i log

Ha un Pod denominato my-app-pod con due container: frontend e backend. Il container backend è recentemente andato in crash ed è stato riavviato. Desidera visualizzare i log dell'istanza precedente del container backend.

Riepilogo di log e debugging

Congratulazioni! Ha appreso gli aspetti essenziali dell'accesso e dell'analisi dei log dei container usando kubectl logs. Questo potente comando è indispensabile per comprendere e risolvere i problemi delle applicazioni in esecuzione su Kubernetes.

Comandi principali da ricordare:

  • kubectl logs <pod-name>: recupero di base dei log.
  • kubectl logs -f <pod-name>: trasmissione dei log in tempo reale.
  • kubectl logs -p <pod-name>: visualizzazione dei log di un'istanza precedente del container.
  • kubectl logs -c <container> <pod-name>: visualizzazione dei log di un container specifico.

Domande Frequenti

La lezione «Logging con kubectl logs» è gratuita?

Sì — il testo completo di «Logging con kubectl logs» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.

Cosa imparerò in «Logging con kubectl logs»?

Acceda ai log dei container e li analizzi direttamente dal cluster Kubernetes utilizzando kubectl. Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare DevOps Bootcamp?

Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Logging con kubectl logs»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?

Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Logging con kubectl logs
  2. Metriche con Prometheus e Grafana
  3. Controlli di salute: probe di liveness e readiness
  4. Tracing distribuito ed eventi
← Torna a DevOps Bootcamp