รู้จักกับ Master Node และ Worker Node ในโลกของ Kubernetes

ในระบบ Kubernetes นั้น Master Node และ Worker Node คือส่วนประกอบหลักที่ทำงานร่วมกันเพื่อจัดการและรันแอปพลิเคชันแบบ Container ครับ โดยมีบทบาทหน้าที่แตกต่างกันอย่างชัดเจน

Master Node

Master Node (หรือที่เรียกว่า Control Plane) เปรียบเสมือน "สมอง" หรือ "ผู้ควบคุม" ของคลัสเตอร์ ทำหน้าที่เป็นศูนย์กลางในการจัดการและควบคุมสถานะทั้งหมดของระบบ โดยไม่ได้รัน Container ของแอปพลิเคชันโดยตรง แต่จะทำหน้าที่บริหารจัดการ Workers Node ให้ทำงานตามที่ต้องการ

ส่วนประกอบหลัก:

  • kube-apiserver: เป็น API Server หลักของ Kubernetes ใช้สำหรับจัดการคำสั่งและรับคำสั่งจากผู้ใช้หรือส่วนประกอบอื่น ๆ
  • etcd: เป็นฐานข้อมูลแบบ Key-Value ที่ใช้เก็บข้อมูลสถานะปัจจุบันและข้อมูลการตั้งค่าทั้งหมดของคลัสเตอร์
  • kube-scheduler: ทำหน้าที่จัดสรร (Schedule) Container ไปยัง Worker Node ที่เหมาะสมที่สุด
  • kube-controller-manager: เป็นผู้ดูแลสถานะของระบบ ทำงานแบบวนลูปเพื่อให้สถานะของคลัสเตอร์เป็นไปตามที่ผู้ใช้กำหนด (Desired State)
  • cloud-controller-manager (ถ้ามี): ทำหน้าที่จัดการทรัพยากรที่เกี่ยวข้องกับ Cloud Provider

ในระบบ Kubernetes นั้น Master Node และ Worker Node คือส่วนประกอบหลักที่ทำงานร่วมกันเพื่อจัดการและรันแอปพลิเคชันแบบ Container ครับ โดยมีบทบาทหน้าที่แตกต่างกันอย่างชัดเจน

Worker Node

Worker Node (หรือที่เรียกว่า Kubelet) เปรียบเสมือน "คนงาน" หรือ "เครื่องจักร" ที่ทำหน้าที่ รัน Container ของแอปพลิเคชันจริง ๆ โดยรับคำสั่งจาก Master Node

ส่วนประกอบหลัก

  • kubelet: เป็น Agent ที่ทำงานบน Worker Node แต่ละตัว มีหน้าที่สื่อสารกับ Master Node และควบคุมการทำงานของ Container ที่อยู่บน Node นั้น ๆ
  • kube-proxy: ทำหน้าที่จัดการเครือข่ายของ Container ทำให้สามารถสื่อสารระหว่างกันได้ และทำให้ Container สามารถเข้าถึงได้จากภายนอก
  • Container Runtime: คือโปรแกรมที่ใช้รัน Container เช่น Docker หรือ containerd