Kubernetes DaemonSet Nedir? Ne İşe Yarar? (Basit ve Net Anlatım)
Kubernetes’te DaemonSet, her node’da (sunucuda) belirli bir Pod’un çalışmasını garanti eden bir nesnedir. Yani küme (cluster) içinde kaç tane node varsa, bu Pod o node’ların her birinde bir tane olacak şekilde otomatik dağıtılır.
Kısaca: Her node’a bir tane pod otomatik kurmak istiyorsan DaemonSet kullanırsın.
📌 Ne İşe Yarar?
DaemonSet’in amacı, sistem genelinde altyapı hizmetlerini yaymak veya her node’dan veri toplamak gibi görevleri yerine getirmektir.
🎯 Ne Zaman Kullanılır?
• Log toplama agent’ları (örneğin: Fluentd, Filebeat)
• Monitoring agent’ları (örneğin: Prometheus Node Exporter)
• Her node’a özel sistem bileşenleri (örneğin: ağ yöneticisi, storage plugin)
🧪 Basit Bir DaemonSet Örneği
Aşağıdaki örnekte her node’da busybox imajını kullanan bir Pod çalıştırıyoruz. Bu Pod, sürekli olarak “Merhaba DaemonSet!” mesajı basıyor.
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: ornek-daemonset
labels:
app: ornek
spec:
selector:
matchLabels:
name: ornek
template:
metadata:
labels:
name: ornek
spec:
containers:
- name: busybox
image: busybox
command: ["/bin/sh", "-c", "while true; do echo Merhaba DaemonSet!; sleep 10; done"]
Kubernetes DaemonSet mantığı şudur:
“Cluster’da hangi node varsa, orada bu pod mutlaka çalışsın.”
Cluster’da 4 node varsa,
• Her node’da 1 adet ornek label’lı pod oluşturulacak,
• Bu pod’ların hepsi aynı image (busybox) ile ayağa kalkacak,
• Hepsi aynı komutu çalıştıracak: while true; do echo Merhaba DaemonSet!; sleep 10; done
✅ Komutlarla Uygulama
kubectl apply -f daemonset.yaml
kubectl get pods -o wide
Bu komutlar sayesinde Pod’ların tüm node’lara dağıldığını görebilirsin.
🧠 Özetle
• DaemonSet, her node’a bir Pod dağıtır.
• Sistem seviyesinde çalışan servisler için kullanılır.
• Node eklersen, yeni node’a da otomatik yayılır.
Hazırsan örneği birlikte çalıştırabiliriz, sadece söylemen yeterli.