คอนเทนเนอร์· ~12 นาที
Taints และ Tolerations — กัน Pod ออกจาก node
ทำเครื่องหมาย node ให้รับเฉพาะ Pod ที่ได้รับอนุญาต
Taint เหมือนป้าย "ห้ามเข้า เว้นแต่มีบัตรผ่าน" ที่ติดบน node · Toleration คือบัตรผ่านที่ Pod ถือมา · Pod ที่ไม่มีบัตรตรงกับป้ายจะไม่ถูกวางบน node นั้น
Affinity คือ Pod "เลือก" node · Taint/Toleration ทำกลับกัน — node "ผลัก" Pod ออก เว้นแต่ Pod จะ tolerate ได้ · ใช้กันงานทั่วไปออกจาก node พิเศษ
node ที่ taint รับเฉพาะ Pod ที่มี toleration ตรงกัน
node ธรรมดา
Pod ทั่วไป
Pod ทั่วไป
node: taint gpu=true 🚫
Pod ML🎫 toleration gpu
Pod ทั่วไปถูกผลักไป node ซ้าย# ติด taint: node นี้รับเฉพาะ Pod ที่ tolerate gpu=true
kubectl taint nodes node-1 gpu=true:NoSchedule
# Pod ที่จะขึ้น node นี้ได้ต้องมี toleration:
# tolerations:
# - key: "gpu"
# operator: "Equal"
# value: "true"
# effect: "NoSchedule"สรุป Key Takeaways
- Taint = node ผลัก Pod ออก · Toleration = บัตรผ่านที่ Pod ถือ
- ตรงข้ามกับ affinity (Pod เลือก node) — taint คือ node กัน Pod
- effect: NoSchedule/PreferNoSchedule/NoExecute · มักคู่กับ affinity สงวน node พิเศษ
อ่านจบแล้วอย่าลืมทำเครื่องหมาย

