Docker’da sorun giderme ve izleme
Çöken, yavaşlayan ya da kaynak tüketen konteynerlerin nedenini kayıtlardan, metriklerden ve olaylardan bulmayı öğrenirsin.
Seviye 301 · 16 ders · 15 pratik lab
Dersler
Çökme ve başlamama
- Çıkış kodları ve OOMKilled
- Yeniden başlama döngüsünü çözmek
- Kabuksuz imajda hata ayıklama
- Docker motoru kayıtları ve daemon.json
- Kısa görev: açılır açılmaz kapanan servisi ayağa kaldır
Kayıtlar ve metrikler
- Kayıt sürücüleri ve kayıt döndürme
- docker stats ve docker events
- cAdvisor ve Prometheus ile konteyner metrikleri
- Konteyner kayıtlarını merkeze göndermek
- Kısa görev: diğerlerini yavaşlatan konteyneri bul ve sınırla
Performans
- CPU ve bellek sınırlarını ayarlamak
- Disk G/Ç ve katman sorunları
- Doğru sağlık denetimi tasarlamak
- Saat kayması ve DNS önbelleği sorunları
- Kısa görev: konteynerde yavaşlayan uygulamanın darboğazını göster
Kapanış
- Bitirme görevi: gece yarısı alarmı: üç sorunlu konteyneri düzelt ve raporla
Pratik lablar
- Üç konteyner, üç çıkış kodu: Durmuş üç konteynerin çıkış kodlarını ve durum alanlarını inceleyerek her birinin neden durduğunu (bellek, bulunamayan komut, uygulama hatası) tek satırla açıkla.
- Gece ölen rapor servisi: Kuzey Lojistik’in rapor servisinin bellek sınırına takılıp öldürüldüğünü inspect ve çekirdek kayıtlarıyla kanıtla, sınırı ve uygulamanın bellek ayarını uyumlu hâle getir ve işin tamamlandığını göster.
- Bitmeyen yeniden başlama döngüsü: Volume’da kalan kilit dosyası ve yanlış izinler yüzünden sürekli yeniden başlayan servisin döngüsünü veriye zarar vermeden durdur, iki nedeni de gider ve servisin kalıcı olarak ayakta kaldığını göster.
- Açılmayan konteynerin dosyasına bak: Başlamadığı için exec yapılamayan konteynerin içindeki yapılandırma dosyasını kopyalayıp incele, hatalı satırı bul ve düzeltilmiş dosyayla konteyneri başlat.
- Kabuksuz konteynere yardımcıyla bak: İçinde kabuk bulunmayan konteynerin ağ ve süreç alanını paylaşan bir yardımcı konteyner başlat, dinlenen portları ve çalışan süreci bul ve yanlış dinlenen adresi raporla.
- Açılmayan Docker servisi: Bozuk daemon.json ve çakışan başlatma seçenekleri yüzünden açılmayan Docker servisinin hatalarını servis kayıtlarından bul, yapılandırmayı onar ve konteynerlerin geri geldiğini göster.
- Konteyner ne zaman, neden durdu?: docker events geçmişinden bir konteynerin hangi saatte hangi olayla durduğunu bul ve olay sırasını kısa bir zaman çizelgesine dök.
- Boş dönen docker logs: docker logs’un hiçbir şey göstermemesinin nedenini günlük sürücüsü ayarından bul, döndürmeli yerel sürücüye geç ve yeni kayıtların göründüğünü göster.
- Günlükleri merkeze taşı: Üç konteynerin günlüklerini servis adıyla etiketleyerek lab’daki merkezi kayıt toplayıcıya gönder, çok satırlı hata kayıtlarının bölünmeden ulaştığını ve yerelde de okunabildiğini kanıtla.
- Diğerlerini yavaşlatan konteyner: docker stats ile kaynakları tüketen konteyneri bul, onu yeniden oluşturmadan canlı olarak sınırla ve diğer servislerin yanıt süresinin düzeldiğini göster.
- Sınır yüzünden yavaşlayan API: Yanıt süresi dalgalanan API konteynerinin cgroup sayaçlarından CPU kısıtlamasına takıldığını kanıtla, sınırı ölçüme göre ayarla ve kısıtlanma sayacının artmadığını göster.
- Yazma katmanına boğulan veritabanı: Yavaşlayan uygulamanın darboğazının konteynerin yazılabilir katmanına yapılan yoğun disk yazması olduğunu ölçümle göster, veriyi volume’a taşı ve aynı yük altında süreyi karşılaştır.
- Yalan söyleyen sağlık kontrolü: Uygulama hata döndürdüğü hâlde healthy görünen konteynerin sağlık kontrolünü gerçek uç noktayı sınayacak şekilde yeniden yaz ve bozuk durumda unhealthy olduğunu göster.
- Eski adrese giden vekil: Arka uç konteyneri yeniden oluşturulduktan sonra vekilin eski IP’ye gitmeye devam ettiğini göster, isim çözümlemenin yenilenmesini sağlayacak ayarı yap ve arka ucu yeniden oluşturarak doğrula.
- Durmadan öldürülen yavaş başlayan servis: Başlaması uzun süren servisin sağlık kontrolü yüzünden tekrar tekrar öldürüldüğünü kanıtla, başlangıç süresini ölç ve aralık, zaman aşımı ve başlangıç süresi değerlerini buna göre ayarla.
Kurs hakkında
Çöken, yavaşlayan ya da kaynak tüketen konteynerlerin nedenini kayıtlardan, metriklerden ve olaylardan bulmayı öğrenirsin.
Ne öğreneceksin
- Çökme ve başlamama
- Kayıtlar ve metrikler
- Performans
- Kapanış
Ön koşullar
Aynı yolun 101 ve 201 düzeyindeki konularına hâkim olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde ve ona bağlı özel bir lab ağında geçer. Kurulum gerekmez.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 301 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.