Ücretsiz ders · CKAD Hazırlık Programı · Modül 4: Gözlemlenebilirlik ve bakım
Exec, Log, Describe ve Olaylarla Hata Ayıklamak
Her hasta pod için tek sondaj: içeriden görmek için exec, tanıklık için log, bildirilen ile gerçek için describe, platformun hesabı için olaylar. Her seferinde bu sıra.
12 dk okuma
Kazanımlar
- Her hasta iş yükünde dört komutlu sondajı sırayla koşturmak
- Çalışan kapsayıcıya girip DNS, ortam ve dosyaları içeriden sınamak
- Describe artı olaylarla uygulama arızasını platform arızasından ayırmak
- Doğru komutla poddan düğüme, düğümden kontrol düzlemine yükseltmek
Neden önemli
Sırasız ayıklama aynı katmanları tekrar gezer, söyleyeni kaçırır. Dört komut hiç çakışmayan dört bakışı kapsar: kapsayıcı içi, uygulamanın çıktısı, nesnenin bildirimi artı durumu ve kümenin olay akışı. CKAD sorun giderme görevleri farklı belirtili dört komut problemleridir.
Kavramlar
kubectl exec -it <pod> -- <komut> kapsayıcının ad alanlarında koşar: DNSyi nslookup ile sına, ortamı printenv ile oku, uygulamanın eksik dediği dosyaları denetle, uygulamanın ulaşamadığı bağımlılığa curl at. İmajda kabuk yoksa geçici ayıklama kapsayıcıları (kubectl debug) hiçbir şeyi yeniden kurmadan alet takar.
kubectl logs (önceki artı önceki dersteki filo bayrakları) tanıklık adımıdır. kubectl describe niyetle gerçeği karşılaştırır: istenen ile gerçek kaynaklar, bağlı ile eksik birimler, prob tanımları ile arıza sayıları, düğüm ataması ile düğüm durumları. Olaylar zaman damgalarıyla döngüyü kapatır: çekmeler, zamanlama kararları, öldürmeler, çıkarmalar.
Yükseltme yığını izler. Pod hasta ama düğüm sağlamsa uygulama veya pod bildirimi demektir. Bir düğümdeki tüm podlar hastaysa düğüm (durumlar, baskı, kubelet). Her şey hastaysa kontrol düzlemi veya ağ dokusu. Her düzeyde yukarı çıkmadan önce tek kanıtlayıcı komut vardır.
Uygulamalı örnek
Kasa podları arızalı, sondaj sırayla, atlama yok:
kubectl exec deploy/checkout -- printenv | grep -i db_ # yapılandırma mevcut mu?
kubectl exec deploy/checkout -- nslookup ledger # içeriden DNS mi?
kubectl logs -l app=checkout --since=15m | grep -iE 'error|exception|timeout'
kubectl describe pod -l app=checkout | grep -A5 Events
kubectl get events --sort-by=.lastTimestamp | tail -20
# uygulama nedeni mi? uygulamayı düzelt. platform nedeni mi? düğüm sonraki:
kubectl describe node <dugum> | grep -A10 ConditionsSondaj kanıtın yoğunlaştığı yerde biter: eksik ortam yapılandırma demektir, NXDOMAIN DNS demektir, paylaşılan istisna kod demektir, FailedMount birim demektir, düğüm baskısı düğüm demektir. Kanıtın suçlamadığı katmanı asla düzeltme.
Sınav notları
Çok kapsayıcılı podlarda exec ve loglara -c gerekir, yoksa yanlış kapsayıcıyı sorgularsın. Kabuksuz damıtık kapsayıcıları geçici imajlı kubectl debug kurtarır. Ve describe çıktısı uzundur: baştan sona okumak yerine Olaylar, Durumlar ve arızalı prob için grep borula.
Mini kontrol
4 soruluk öz kontrol. Yanıtların cihazında kalır, saklanmaz ve gönderilmez. Yalnızca geçen skor (ör. 4 soruda 3) kaydedilir ve yalnızca ders ilerlemesinin kilidini açmak için: bir dersin tamamlanmış sayılması için en az 3 doğru gerekir. Hiçbir sertifika değerlendirmesine sayılmaz.
Ders geri bildirimi
Henüz yayında geri bildirim yok.
Geri bildirim yazmak için giriş yap ve dersi tamamla.
Kaynaklar
Alıştırma
Kurgusal kuyruk çalışanı yeniden başlamadan işlemeyi durdurur. Dört komutlu sondajı kâğıt üzerinde koştur: her komutu yaz, zehirli iletiye karşı düğümde dolu diske ne göstereceğini yaz ve hangi bulgunun seni düğüm düzeyine gönderdiğini söyle.
Geçme kriterleri
Dört komut da iki durumlu çıktılarıyla mevcut; zehirli ileti log/exec düzeyinde yakalanmış, disk baskısı düğüm durumlarıyla kanıtlı komutla yükseltilmiş.