คอนเทนเนอร์· ~13 นาที
เลือก node ให้ Pod: nodeSelector และ Affinity
บังคับ/แนะนำว่า Pod ควรไปอยู่ node แบบไหน
เหมือนจัดที่นั่งงานเลี้ยง: nodeSelector = กฎง่าย ๆ "ต้องนั่งโซนที่มีป้าย VIP" · affinity = กฎละเอียด "อยากนั่งใกล้ทีมเดียวกัน (affinity) แต่แยกจากคู่แข่ง (anti-affinity)"
ปกติ scheduler เลือก node ให้เอง แต่บางครั้งเราต้องชี้นำ เช่น "Pod นี้ต้องรันบน node ที่มี GPU" หรือ "กระจาย replica ไปคนละ node เพื่อ HA"
- nodeSelector — จับคู่ label ของ node ง่าย ๆ (เช่น
disktype: ssd) แบบบังคับ - nodeAffinity — เหมือน nodeSelector แต่ยืดหยุ่นกว่า มีทั้งแบบบังคับ (required) และแบบแนะนำ (preferred)
- podAffinity — อยากให้ Pod อยู่ใกล้ Pod อื่น (เช่น cache อยู่ node เดียวกับ app)
- podAntiAffinity — อยากให้ Pod แยกจากกัน (เช่น กระจาย 3 replica คนละ node เพื่อทน node ล่ม)
สรุป Key Takeaways
- nodeSelector = จับ label node ง่าย ๆ · nodeAffinity = ยืดหยุ่นกว่า (required/preferred)
- podAffinity = อยู่ใกล้กัน · podAntiAffinity = แยกจากกัน (ใช้ทำ HA)
- กระจาย replica ข้าม node/zone ด้วย anti-affinity หรือ topologySpreadConstraints
อ่านจบแล้วอย่าลืมทำเครื่องหมาย

