Node selector
- Docker & Kubernetes kursu
- İleri seviye
- Ders 21/70
- 4 dk
DaemonSet'te nodeSelector kullanmayı öğrenirsin.
Node selector
DaemonSet'i yalnızca bazı node'larda çalıştırmak için şablona nodeSelector yazılır; yalnızca o etiketleri taşıyan node'lar uygun sayılır:
kubectl label node worker-2 disk=ssd
spec:
nodeSelector:
disk: ssd
containers:
- name: ssd-izleyici
image: ssd-izleyici:1.0Daha esnek koşullar (ör. "gpu=a100 ya da gpu=h100") için affinity.nodeAffinity kullanılır.
Taint ve toleration
Bazı node'lar taint ile işaretlenir ve toleration'ı olmayan pod'ları iter (ör. control-plane node'u). Log toplayıcı gibi her node'da olması gereken DaemonSet'ler bu taint'lere toleration ekler:
$ kubectl describe node control-plane | grep Taints
Taints: node-role.kubernetes.io/control-plane:NoSchedule
spec:
tolerations:
- key: node-role.kubernetes.io/control-plane
operator: Exists
effect: NoScheduleUygulama Seçili node'larda çalıştır
İki adım: worker-2 node'una disk=ssd etiketini ekleyen komutu yaz; ardından DaemonSet şablonunun spec bölümünü yaz (spec: ile başlayarak): nodeSelector altında disk: ssd; container adı ssd-izleyici, image ssd-izleyici:1.0.
Başlangıç kodu
# buraya yazÖrnek çözüm
kubectl label node worker-2 disk=ssd
spec:
nodeSelector:
disk: ssd
containers:
- name: ssd-izleyici
image: ssd-izleyici:1.0Beklenen çıktı
node/worker-2 labeled daemonset.apps/ssd-izleyici created NAME DESIRED CURRENT READY NODE SELECTOR ssd-izleyici 1 1 1 disk=ssd
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir node'dan disk=ssd etiketi kaldırılırsa o node'daki DaemonSet pod'una ne olur?
- Yeniden başlar
- Pod kaldırılır Doğru cevap
- Çalışmaya devam eder
- Başka node'a taşınır
Açıklama: DaemonSet uygun node kümesini sürekli izler.
2 Pod'u yalnızca etiketli node'lara yerleştir.
spec:
____:
disk: ssd
spec:
nodeSelector:
disk: ssd
Açıklama: nodeSelector node etiketleriyle eşleşir.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
nodeSelector |
Etiketli node'lar |
nodeAffinity |
Esnek node koşulu |
taint |
Node pod'u iter |
toleration |
Taint'e izin |