Ana içeriğe geç

Kubernetes DNS Hizmeti Nedir?

Bu rehberde ne öğreneceksiniz?​

Bu rehber, Kubernetes kümelerinde yerleşik DNS hizmetinin nasıl çalıştığını açıklar.
Servis keşfi, otomatik DNS kayıtları ve CoreDNS ile kube-dns farkları sade biçimde anlatılır.


Teknik Özet​

Ana Konu:
Kubernetes DNS hizmeti ve servis keşfi mekanizması.

Çözülen Problem:
Pod IP’leri değişse bile servislerin birbirini isimle bulabilmesi.

İzlenen Yol:
DNS mantığı → Kayıt formatları → Kısa ad çözümleme → CoreDNS mimarisi.


Kubernetes DNS Hizmeti Ne Sağlar?​

Kubernetes, küme içinde otomatik bir DNS servisi kurar.
Bu servis, uygulamaların birbirine isimle erişmesini sağlar.

Pod’lar silinse veya taşınsa bile bağlantılar bozulmaz.
Servis isimleri her zaman geçerlidir.


Kubernetes DNS Nasıl Çalışır?​

Kümede kube-dns adlı bir servis oluşturulur.
Bu servis, Kubernetes API olaylarını dinler.

nameserver 10.32.0.10
search namespace.svc.cluster.local svc.cluster.local cluster.local
options ndots:5
  • Bu yapı, Pod içindeki DNS çözümleme davranışını belirler.

Otomatik Oluşturulan Kubernetes DNS Kayıtları​

  • Kubernetes, servis ve Pod’lar için belirli DNS kayıtları üretir.
Kaynak TürüDNS Kayıt TürüDNS Kayıt FormatıÖrnek
ServisAservis.namespace.svc.cluster.localapi.dev.svc.cluster.local
PodAip-tireli.namespace.pod.cluster.local10-32-0-125.dev.pod.cluster.local
ServisSRV_port._protokol.servis.namespace.svc.cluster.local_http._tcp.web.prod.svc.cluster.local
  • Bu yapı, servis keşfini DNS tabanlı hale getirir.

Kısa Hostname Kullanımı​

  1. resolv.conf içindeki arama alanları sayesinde tam DNS adı gerekmez.

Aynı namespace:


baska-servis

Farklı namespace:


baska-servis.baska-namespace

  1. Pod hedefleniyorsa:

ip-tireli.namespace.pod
  • .pod uzantısı otomatik tamamlanmaz.

Kubernetes DNS Uygulamaları​

1. kube-dns (Eski Sistem) Kubernetes 1.11 öncesinde kullanıldı.

  • Üç konteynerden oluşur:

kube-dns (SkyDNS): DNS çözümleme​

dnsmasq: Önbellekleme

sidecar: Sağlık ve metrikler

  • Güvenlik ve ölçek sorunları yaşandı.

CoreDNS (Güncel Sistem)​

Kubernetes 1.11 sonrası varsayılandır.

  • Tek süreç, tek konteyner mimarisi kullanır.

Avantajları:

  1. Daha güvenli

  2. Daha hızlı

  3. Daha az kaynak tüketimi

  4. Gerçek Pod doğrulaması yapar

  5. Var olmayan Pod IP’leri artık çözülmez.


Gelişmiş DNS Yapılandırması (dnsConfig)​

  • Pod bazında özel DNS ayarları yapılabilir.

apiVersion: v1
kind: Pod
metadata:
name: ozel-dns
namespace: rabisu-dev
spec:
containers:
- name: ornek
image: nginx
dnsPolicy: None
dnsConfig:
nameservers:
- 203.0.113.44
searches:
- ozel.dns.local
  • Bu yapı, Pod’un resolv.conf dosyasını doğrudan değiştirir.

Sıkça Sorulan Sorular (SSS)​

1. Servis keşfi neden kritiktir? IP değişimlerini gizler ve mikroservis iletişimini stabil tutar.

2. CoreDNS neden kube-dns’in yerini aldı? Güvenlik, performans ve ölçeklenebilirlik için.

3. DNS olmadan Kubernetes çalışır mı? Çalışır, ancak servis iletişimi zorlaşır.

4. dnsConfig ne zaman kullanılmalı? Özel veya harici DNS sunucusu gerektiğinde.


Sonuç​

Kubernetes DNS servisi, küme içi iletişimin temelidir. CoreDNS ile bu yapı artık daha güvenli ve daha hızlıdır.

Bu mimariyi Rabisu Bulut Kubernetes altyapısında hemen deneyebilirsiniz.