ข้ามไปเนื้อหาหลัก
คอนเทนเนอร์· ~14 นาที

ส่วนประกอบของ Control Plane

API server, etcd, Scheduler, Controller Manager ทำหน้าที่อะไร

เปรียบเทียบให้เห็นภาพ

ถ้า control plane คือสำนักงานใหญ่ แต่ละแผนกมีหน้าที่ต่างกัน: API server = แผนกต้อนรับ (ทุกคำขอเข้าทางนี้), etcd = ห้องเก็บเอกสารกลาง, Scheduler = ฝ่ายจัดที่นั่ง, Controller Manager = หัวหน้าที่คอยตรวจว่าทุกอย่างเป็นไปตามแผน

ทุกคำสั่งผ่าน API server → เขียนลง etcd → component อื่นทำงานต่อ

kubectl
API serverประตูเดียว
etcdบันทึกสถานะ
component อ่านจาก API server
Schedulerเลือก node ให้ Pod
Controller Managerเทียบ desired vs current
cloud-controllerต่อบริการ cloud (EKS/GKE)
องค์ประกอบ control plane และเส้นทางคำสั่งจากผู้ใช้

kube-apiserver — ประตูหน้าเดียวของคลัสเตอร์

ทุกคำสั่ง (จาก kubectl, จาก component อื่น, จาก dashboard) ต้องผ่าน API server มันตรวจสิทธิ์ ตรวจความถูกต้อง แล้วบันทึกลง etcd · เป็นจุดศูนย์กลางที่ทุกอย่างคุยด้วย

etcd — ความจำของคลัสเตอร์

etcd คือฐานข้อมูลแบบ key-value ที่เก็บ สถานะทั้งหมดของคลัสเตอร์ (มี Pod อะไร ตั้งค่าไว้ยังไง อยู่ที่ไหน) · ถ้า etcd หาย = คลัสเตอร์เสียความจำทั้งหมด จึงต้อง backup อย่างดี

kube-scheduler — ฝ่ายจัดที่นั่ง

Scheduler ดูว่ามี Pod ใหม่ที่ยังไม่มีบ้าน แล้วเลือกว่าจะวางลง node ไหน โดยพิจารณาทรัพยากรที่ว่าง (CPU/RAM) และกฎต่าง ๆ · มันแค่ "ตัดสินใจ" ว่าจะไปเครื่องไหน ไม่ได้เป็นคนรันเอง

kube-controller-manager — ผู้เฝ้าให้ตรงแผน

รวมชุด controller ที่แต่ละตัววนเทียบ desired vs current ตลอดเวลา เช่น สั่งไว้ว่าต้องมี 3 Pod แต่เหลือ 2 (ตัวหนึ่งล่ม) controller จะสั่งสร้างเพิ่มให้ครบ 3 — นี่คือกลไก self-healing ที่ทำงานจริง

สรุป Key Takeaways

  • API server = ประตูเดียวที่ทุกคำขอผ่าน (auth + validate + เขียนลง etcd)
  • etcd = ที่เก็บสถานะทั้งหมดของคลัสเตอร์ ต้อง backup
  • Scheduler = ตัดสินใจว่า Pod ใหม่ไปอยู่ node ไหน
  • Controller Manager = วนเทียบ desired vs current แล้วแก้ให้ตรง (self-healing)
อ่านจบแล้วอย่าลืมทำเครื่องหมาย