CodeBlanks Logo Icon CodeBlanks

kubectl logs

Pod günlüklerini kubectl logs ile görmeyi öğrenirsin.

kubectl logs

Sorun gidermenin ilk adımı log'lardır. kubectl logs container'ın stdout/stderr çıktısını gösterir; pod'u adıyla ya da sahibi üzerinden (deploy/web) seçebilirsin:

kubectl logs web-7c5b9f6d8-abcde
kubectl logs deploy/web                 # deployment'ın bir pod'u
kubectl logs -f deploy/web --since=10m  # canlı, son 10 dakika
kubectl logs api-xyz -c log-gonderici   # çok container'lı pod
kubectl logs api-xyz --previous         # çöken önceki container

Log'lar ne zaman kaybolur?

kubelet log'ları node'da tutar ve döndürür (rotate). Pod silinince ya da başka node'a taşınınca log'ları da gider. Bu yüzden üretimde log'lar merkezi bir sisteme (ileri seviyede: Fluentd, Elasticsearch, Loki) gönderilir. Kısa sorunlar için --previous bir önceki container'ın son log'unu hâlâ verir.

kubectl logs -l app=api --all-containers --prefix --tail=20
kubectl logs api-xyz --timestamps | grep -i error

Uygulama Log'ları tara

Üç komut yaz: app=api etiketli tüm pod'ların son 20 satırını önekleriyle göster; api-5d8f7c9b4-qrstu'nun önceki container log'unu göster; deploy/web'in son 10 dakikasını canlı izle.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
kubectl logs -l app=api --tail=20 --prefix
kubectl logs api-5d8f7c9b4-qrstu --previous
kubectl logs -f deploy/web --since=10m

Beklenen çıktı

[pod/api-5d8f7c9b4-qrstu/api] ERROR veritabanına bağlanılamadı: db:5432
[pod/api-5d8f7c9b4-vwxyz/api] INFO istek /saglik 200
panic: dial tcp 10.96.12.4:5432: connect: connection refused
10.244.1.1 - - "GET / HTTP/1.1" 200 615

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 kubectl logs deploy/web birden çok kopya varken ne gösterir?

  • Hata verir
  • Pod'lardan yalnızca birinin log'unu Doğru cevap
  • Tüm pod'ların log'unu
  • Deployment olaylarını

Açıklama: Tüm kopyalar için -l app=web --prefix kullanılır.

2 Tüm container'ların log'unu al.

Soru
kubectl logs api-xyz ____
Cevap
kubectl logs api-xyz --all-containers

Açıklama: --all-containers pod'daki her container'ı kapsar.

3 Eşleştir.

Kavram Anlamı
-f Canlı izle
-c Container seç
--previous Çökenin log'u
--prefix Pod adı öneki

Orta seviye bölümündeki tüm dersler