Middle
Kubernetes'te Deployment ve DaemonSet arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Deployment, Pod'ların bir kümesinin kopyalarını yönetir, gereken sayıyı sağlar ve otomatik ölçeklendirme yapar. Çoğu stateless uygulama ile iyi çalışır.
DaemonSet, kümedeki her düğümde (veya seçiciye göre belirli bir alt kümede) bir Pod kopyasının çalışmasını garanti eder. Arka plan görevleri, log toplama veya izleme gibi işler için kullanılır.
İşte temel farklar:
| Özellik | Deployment | DaemonSet |
|---|---|---|
| Amaç | Belirli sayıda Pod replikasını korumak | Her düğümde (veya alt kümede) bir Pod çalıştırmak |
| Pod sayısı | replicas parametresiyle kontrol edilir |
Düğüm sayısına göre belirlenir |
| Ölçeklendirme | Yatay, talebe göre | Düğüm ekleme/çıkarma ile ilgili |
| Kullanım örnekleri | Web sunucuları, mikroservisler | Log toplayıcılar, izleme ajanları, ağ demonları |
| Güncelleme | Kademeli (döner güncelleme) veya değiştirme | Gerekirse düğümlerde otomatik güncellenir |
Deployment için örnek manifest:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3 # 3 kopya Pod çalıştır
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
DaemonSet için örnek manifest:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: fluentbit-daemonset
spec:
selector:
matchLabels:
name: fluentbit # Pod seçici etiketi
template:
metadata:
labels:
name: fluentbit
spec:
containers:
- name: fluentbit
image: fluent/fluent-bit:1.8 # Log toplayıcı imajı
# Log dosyalarına erişim gibi ek ayarlar
tolerations:
# Master düğümlerde çalışmak için genellikle gerekir
- key: node-role.kubernetes.io/master
effect: NoSchedule