Ücretsiz ders · CKA Hazırlık Programı · Modül 6: Sorun giderme
CrashLoopBackOff, ImagePull ve Pending Durumlarını Log Gibi Okumak
Üç durum, üç sondaj, sıfır gizem. CrashLoop uygulamanın ölmesidir, ImagePull imajın gelmemesidir, Pending zamanlayıcının reddidir: her biri kanıtını ve düzeltmesini adlandırır.
12 dk okuma
Kazanımlar
- CrashLoopBackOff arızasını önceki log artı çıkış kodlarından teşhis etmek
- ImagePullBackOff arızasını kayıt, sır, etiket ve ağ nedenlerinde düzeltmek
- Bekleyen her podu zamanlama, birim veya imaj kapılarına kadar izlemek
- Hangi durumun uygulamaya, hangisinin platforma ait olduğunu bakışta söylemek
Neden önemli
Bu üç durum karşılaşacağın pod arızalarının çoğunu kapsar; sınav cömert dağıtır, çünkü okumayı ölçer, ezberi değil. Her birinin tek kanıt komutu ve kısa düzeltme listesi vardır; tereddüt üç keskin sorunu tek bulanık sorun saymaktan gelir.
Kavramlar
CrashLoopBackOff kapsayıcının başlayıp öldüğü, denemeler arası bekleme süreleri uzayan demektir. Kanıt: kubectl logs <pod> --previous ölen nedeni adlandırır (istisna, eksik ortam, bozuk yapılandırma, olaylarda OOMKilled çıkış 137). Düzeltmeler uygulamada veya yapılandırmasındadır: nedeni onar, yeniden başlatma sayısını değil. Bekleme süresini hastalıkla asla karıştırma.
ImagePullBackOff imajın hiç gelmediği demektir. Sırayla nedenler: yanlış ad veya etiket, imajÇekmeSırları olmadan özel kayıt, kayda ulaşılamaması, çekmeleri engelleyen düğüm disk baskısı. Kanıt: olay adlandırır (401, bulunamadı, zaman aşımı). Adlandırılan nedeni düzelt; kubelet engel kalkınca tek başına yeniden dener.
Pending zamanlanmamış veya kapılı demektir. Nedenler: uyan düğüm yok (kaynaklar, benzeşim, lekeler), KBT bağlı değil, init kapsayıcı takılı, imaj çekme sürüyor. Kanıt: kubectl describe pod olayları koşulu adlandırır (Yetersiz cpu, bağlı olmayan birimler, ErrImagePull). Koşula göre düzelt: kaynakları ölçekle, seçicileri düzelt, depolamayı bağla, imajı onar.
Uygulamalı örnek
Üç hasta pod, üç bir dakikalık teşhis:
# CrashLoop: önceki log otopsidir
kubectl logs api-xxx --previous | tail -20
# KeyError: PAY_API_V2 -> eksik ortam, dağıtımı düzelt
# ImagePull: olay teşhistir
kubectl describe pod worker-yyy | grep -A3 Events
# "reg:5000/w:v9" imajı çekilemedi: yetkisiz -> imagePullSecrets
# Pending: koşul teşhistir
kubectl describe pod cache-zzz | grep -A3 Events
# 0/3 düğüm uygun: 3 Yetersiz bellek -> isteği küçült veya düğümü büyütHer sondaj kanıt komutunda biter. Düzeltme kanıtla eşleşir, yalnız durumla asla.
Sınav notları
Çıkış 137 aksi kanıtlanana kadar OOMKilled demektir: koddan önce belleğe bak. ImagePullSecretler servis hesaplarına veya pod bildirimlerine bağlanır; sır adlarındaki yazım hataları yanlış parolayla aynı düşer. Ve dakikalarca olaysız Pending zamanlayıcının hiç görmediği demektir: önce podun doğru ad alanında gerçekten var olduğunu denetle.
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 hasta pod oluştur (biri CrashLoop, biri ImagePull, biri Pending); inandırıcı kanıt çıktıları uydur; sonra her birinin teşhis artı düzeltmesini sınav notlayacak gibi yaz: kanıt alıntılı, neden adlandırılmış, düzeltme en az.
Geçme kriterleri
Üç durumda alıntılı kanıt taşır; teşhisler tam neden sınıfını adlandırır; düzeltmeler eşleşen en azdır (yapılandırma, sır, kaynaklar), saçma yeniden başlatma yok.