Azure Kubernetes Service (AKS) altyapısını yönetirken, bazı uygulamaların veya servislerin cluster içerisindeki istisnasız her node (düğüm) üzerinde çalışması gerekebilir. Bu tür durumlarda kullanılan temel Kubernetes objesi DaemonSet‘tir.
DaemonSet, cluster içerisinde arka plan servislerini yönetmek için kullanılan, oldukça stratejik bir objedir.
DaemonSet Nedir ve Neden Kullanılır?
DaemonSet, belirli bir pod’un cluster’daki her node üzerinde tam olarak bir kopyasının çalışmasını garanti eder. Bu objeyi, her sunucuda olması gereken bir “arka plan işçisi” gibi düşünebilirsiniz.
Başlıca Kullanım Senaryoları:
- Ağ Yönetimi: Bağlantı işlemlerini sağlayan
kube-proxypodu gibi sistem bileşenleri her node’da çalışmak durumundadır. - Log Toplama: Her node’dan log verilerini toplamak için kullanılan podlar DaemonSet ile dağıtılır.
- Metrik İzleme: Node’ların CPU, RAM ve disk metriklerini toplayan izleme ajanları için idealdir.
AKS üzerinde kube-system namespace’ine baktığınızda, Azure tarafından otomatik olarak deploy edilmiş birçok DaemonSet yapısı (azure-cns, csi-azuredisk vb.) görebilirsiniz.

[RESİM 1: Azure Portal – Kube-system üzerindeki varsayılan DaemonSet’lerin görünümü]
Uygulama: Log Toplayan Bir DaemonSet Oluşturma
Cluster’daki tüm node’ları izleyecek basit bir “node-monitor” DaemonSet’i oluşturarak süreci inceleyelim.
Aşağıdaki içeriğe sahip bir daemonset.yaml dosyası hazırlayın:
YAML
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: node-monitor
spec:
selector:
matchLabels:
app: node-monitor
template:
metadata:
labels:
app: node-monitor
spec:
containers:
- name: monitor
image: busybox
command: ["sh", "-c", "while true; do sleep 3600; done"]
Dağıtım ve Doğrulama
Hazırladığınız dosyayı cluster’a uygulayın:
Bash
kubectl apply -f daemonset.yaml

[RESİM 2: CLI – Daemonset created mesajı]
İşlem tamamlandığında Azure Portal üzerinden “Workloads” altındaki DaemonSet sekmesinden durumu kontrol edebilirsiniz.

[RESİM 3: Azure Portal – node-monitor DaemonSet’inin başarılı durumu]
DaemonSet’in Dinamik Yapısı
DaemonSet’i Deployment objesinden ayıran en büyük farklardan biri dinamik olmasıdır. AKS cluster’ınıza yeni bir node eklendiğinde (scale out), DaemonSet bu değişikliği anında fark eder. Manuel bir müdahale gerekmeden, yeni eklenen node üzerine de ilgili pod’un bir kopyasını otomatik olarak deploy eder.
Bu özellik, altyapınız genişlese bile log toplama veya izleme gibi kritik servislerinizin cluster genelinde kesintisiz çalışmasını sağlar.