Ce face kubectl logs
Comanda kubectl logs citește tot ce a scris procesul din container la stdout și stderr. Poți indica direct numele unui pod (kubectl logs api-6f9b8d7c4-x7k2p) sau un controler precum deploy/api ori un selector -l app=api.
Dacă un pod este în CrashLoopBackOff, containerul curent abia a repornit și poate nu a apucat să scrie nimic; opțiunea -p / --previous îți arată logurile instanței anterioare care a crăpat și este aproape întotdeauna cheia depanării.
Dacă pod-ul are mai multe containere (de exemplu aplicația + un sidecar Envoy/Istio sau un initContainer), alegi containerul cu -c NUME sau le vezi pe toate cu --all-containers=true.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
-f, --follow |
Urmărește logurile în timp real (ca tail -f). |
-p, --previous |
Logurile containerului oprit anterior (esențial la CrashLoopBackOff). |
-c, --container=NUME |
Alege containerul (sau initContainer-ul) dintr-un pod multi-container. |
--all-containers=true |
Concatenează logurile tuturor containerelor din pod. |
--tail=N |
Afișează doar ultimele N linii din fiecare container. |
--since=DURATĂ |
Doar logurile mai noi de durata dată (ex. 5m, 1h, 30s). |
--timestamps |
Prefixează fiecare linie cu timestamp-ul RFC3339 de la runtime. |
-l, --selector=CH=VAL |
Agregă logurile tuturor pod-urilor care au eticheta respectivă, iar --prefix=true adaugă numele pod-ului în față. |
Exemple
Exemplul 1: Ultimele 50 de linii urmărite live pe un Deployment
kubectl logs deploy/api --tail=50 -f
Ieșire în terminal
Found 3 pods, using pod/api-6f9b8d7c4-lm2vd
2026-04-20T09:10:02Z INFO Server listening on :8080
2026-04-20T09:10:14Z INFO GET /healthz 200 1.2ms
2026-04-20T09:10:19Z INFO POST /v1/orders 201 18.4ms
Exemplul 2: Investigarea unui container care a crăpat (CrashLoopBackOff)
Opțiunea --previous afișează ieșirea procesului care s-a terminat cu eroare.
kubectl logs worker-5d4f7b9c8-q2n8r --previous
Ieșire în terminal
2026-04-20T09:05:11Z INFO Starting queue consumer...
2026-04-20T09:05:14Z FATAL dial tcp 10.96.44.12:6379: connect: connection refused
Exemplul 3: Logurile din toate replicile unei aplicații în ultimele 10 minute
Cu --prefix vedem din ce pod și ce container provine fiecare linie.
kubectl logs -l app=api --all-containers=true --prefix=true --since=10m
Ieșire în terminal
[pod/api-6f9b8d7c4-lm2vd/api] 2026-04-20T09:11:01Z INFO GET /v1/items 200
[pod/api-6f9b8d7c4-x7k2p/api] 2026-04-20T09:11:03Z WARN Slow query (412ms)
Greșeli frecvente
- Aplicația scrie logurile într-un fișier din container (de ex.
/var/log/app.log) în loc destdout/stderr:kubectl logsva fi gol. - La
kubectl logs -l app=apiexistă o limită implicită de 5 stream-uri concurente; dacă ai mai multe pod-uri, crește-o cu--max-log-requests=20.
Comenzi înrudite
kubectl describe: Afișează detaliile complete ale unei resurse, inclusiv evenimentele recente asociate.kubectl events: Listează și urmărește evenimentele din cluster ordonate cronologic, cu filtrare după obiect sau severitate.kubectl exec: Execută o comandă sau deschide un shell interactiv într-un container care rulează.kubectl debug: Atașează un container efemer de depanare unui pod existent, îi face o copie sau deschide o sesiune pe un nod.