Ücretsiz ders · CKA Hazırlık Programı · Modül 4: Servisler ve ağ
DNS ve Bağlantı Arızalarını Teşhis Etmek
Bağlantı reddedildi, zaman aşımı ve NXDOMAIN uygulamadan aynı görünür. Bu ders katman katman ayırır: pod DNS yapılandırması, CoreDNS sağlığı, servis tesisatı, politika engelleri.
12 dk okuma
Kazanımlar
- Pod resolv.conf dosyasından CoreDNS üzerinden yanıta kadar adı izlemek
- DNS ile ağ arızasını ayırmak için nslookup artı dig artı ham IP sınamaları kullanmak
- Katmanı bulmak için CoreDNS log ve uç noktalarını okumak
- Üç klasik nedeni düzeltmek: seçici uyumsuzluğu, politika engeli, ölü DNS
Neden önemli
Ağ soruları sınavın sevdiği labirenttir; her katman aynı belirtiyi üretebilir: uygulama arka uca ulaşamaz. Sabit sondaj sırası (DNS yapılandırması, DNS servisi, uç noktalar, politika, rota) labirenti kontrol listesine çevirir; seçici yanlışken yönlendirme ayıklama israfını engeller.
Kavramlar
Podlar CoreDNS üzerinden küme IP adresinden (kube-dns Servisi, genelde 10.96.0.10) ve resolv.conf arama alanlarıyla çözer: kısa adlar <servis>.<adalanı>.svc.cluster.local genişler. Pod içinde nslookup <servis> veya dig taşıyan hata ayıklama poduyla sına. Olması gereken ad için NXDOMAIN CoreDNS derdi veya yanlış ad alanı demektir; çözülen ama zaman aşımına uğrayan IP tesisat veya politika demektir.
CoreDNS kendisi uç noktalı Dağıtımdır: kubectl get endpoints -n kube-system kube-dns adres listelemeli; logları reddedilen sorguları ve döngü hatalarını açıkça gösterir. DNS sonrası sondaj uç noktalardır (seçici eşleşmesi), sonra politika (bir poddan zaman aşımı ama diğerinden başarı), en son düğüm düzeyi yönlendirme. Pod IP adresine ham curl DNSyi tümden atlar, sorunu tek komutla böler.
Uygulamalı örnek
Önyüz api:8080 adresine ulaşamaz, sabit sondaj sırayla:
# 1. istemci pod içinde DNS yapılandırması
kubectl exec frontend-xxx -- cat /etc/resolv.conf
# nameserver 10.96.0.10, search ...svc.cluster.local
# 2. çözümün kendisi
kubectl exec frontend-xxx -- nslookup api
# NXDOMAIN mi? -> CoreDNS: kubectl -n kube-system logs -l k8s-app=kube-dns
# 10.x çözüldü mü? -> 3. uç noktalar
kubectl get endpoints api # boş mu? seçiciyi düzelt
# 4. doğrudan pod IP DNS ve servisi atlar
kubectl exec frontend-xxx -- curl -m 5 http://<pod-ip>:8080/
# IP ile olur ama adla olmaz mı? DNS. IP ile de olmaz mı? politika veya uygulama.
# 5. politika ayrımı: başka yerdeki ikinci poddan aynı curlHer adım bir katmanı kalıcı eler. Sondaj ilk başarısız adımda biter; düzeltme o katmanda yaşar, daha derinde asla.
Sınav notları
Kısa adlar yalnız podun kendi ad alanında çözülür: ad alanları arası api.diger-ad veya tam ad ister. Sıfıra ölçeklenmiş CoreDNS hiçbir şeye yanıt vermez: her arama aynı anda ölünce kopyalarına bak. Ve eski bağlantı izleri veya kube-proxy hıçkırıkları Servis düzenlemeleri sonrası uygulama arızasını taklit eder: bir şeyi yeniden başlatmadan önce uç noktaları yeniden 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 önyüz-API yolunu üç ayrı yoldan boz (yanlış seçici, hepsini reddet politikası, sıfıra ölçeklenmiş CoreDNS); her birinde yakalayan adımın sondaj çıktısını ve tek satırlık düzeltmeyi göster.
Geçme kriterleri
Üç kırılma da doğru sondaj adımında alıntılı çıktıyla yakalanmış; düzeltmeler seçici düzeltme, politika istisnası ve CoreDNS geri ölçeklemedir.