จาก Pod เดี่ยว สู่ ReplicaSet
ทำไมต้องมีตัวเฝ้าให้ Pod ครบจำนวนเสมอ
ReplicaSet: คือ ตัวควบคุม (Controller) ชนิดหนึ่งที่ทำหน้าที่ดูแลให้จำนวน Pod มีตามจำนวนที่ระบุ (Replicas) เสมอ
Pod เดี่ยว เหมือนพนักงานคนเดียว — ลาป่วยเมื่อไหร่ ร้านก็ปิด · ReplicaSet เหมือนหัวหน้ากะที่ได้รับคำสั่งว่า "ต้องมีพนักงานหน้าร้าน 3 คนเสมอ" — ใครหายไป รีบเรียกคนใหม่มาแทนทันทีให้ครบ 3
จากบทก่อนเรารู้ว่า Pod เดี่ยวถ้าล่มจะไม่มีใครสร้างใหม่ · ReplicaSet แก้ปัญหานี้ด้วยหน้าที่เดียวที่ชัดเจน: รักษาจำนวน Pod (replicas) ให้ตรงตามที่สั่งเสมอ
เราแก้ที่ Deployment ชั้นบน · ชั้นล่างจัดการให้เอง
ReplicaSet ทำงานยังไง
- ดูว่าตอนนี้มี Pod ที่ตรงกับ label selector อยู่กี่ตัว
- ถ้าน้อยกว่า replicas → สร้าง Pod เพิ่ม · ถ้ามากกว่า → ลบ Pod ส่วนเกิน
- ทำแบบนี้วนตลอดเวลา (reconciliation loop) = self-healing ระดับ Pod
สรุป Key Takeaways
- ReplicaSet มีหน้าที่เดียว: รักษาจำนวน Pod ให้ตรง replicas เสมอ (self-healing ระดับ Pod)
- มันจับคู่ Pod ด้วย label selector ไม่ใช่เป็นเจ้าของโดยตรง
- งานจริงใช้ Deployment คุม ReplicaSet อีกชั้น ไม่สร้าง ReplicaSet เอง
คำถามที่พบบ่อย
สร้าง pod เดี่ยวๆ ทำไมถึงไม่พอ ต้องมี ReplicaSet
Pod เดี่ยวตายแล้วจบ — ไม่มีใครสร้างแทน (self-healing ไม่ทำงาน) ReplicaSet คือผู้จัดการที่สัญญาว่า "ต้องมี pod แบบนี้รันอยู่ N ตัวเสมอ" ตายก็สร้างใหม่ เกินก็ลบทิ้ง — ในทางปฏิบัติเราไม่สร้างทั้ง pod เดี่ยวและ ReplicaSet ตรงๆ แต่ใช้ Deployment ที่ครอบอีกชั้น
ReplicaSet รู้ได้ยังไงว่า pod ไหนเป็นของมัน
ผ่าน label selector — RS นับ pod ที่ label ตรงกับ selector ของมัน ไม่สนว่าใครสร้าง — ผลข้างเคียงที่ควรรู้: ถ้าสร้าง pod เปล่าที่ label ตรงกับ RS ที่มีอยู่ RS จะนับรวมและอาจลบ pod อื่นให้เหลือตามจำนวน

