11/05/2026
🚀 Cloud Engineer & DevOps ต้องรู้! ความแตกต่างระหว่าง Deployment vs StatefulSet vs DaemonSet บน Kubernetes
เคยสงสัยไหมครับว่าเจ้า 3 ตัวนี้ (Deployments, StatefulSets, DaemonSets) มันทำหน้าที่จัดการ Pod เหมือนกัน แล้วมันต่างกันตรงไหน?
คำตอบคือ "แต่ละตัวถูกสร้างมาเพื่อตอบคำถามที่แตกต่างกัน" ครับ! วันนี้เราจะมาสรุปให้เข้าใจง่ายๆ ว่าเมื่อไหร่ควรใช้ตัวไหน เพื่อให้คุณเลือกใช้อาวุธได้ถูกต้องและเหมาะสมกับ Workflow ของคุณที่สุด!
💡 Deployment: "ขอ Pod หน้าตาเหมือนกัน N ตัว ใครก็ได้!”
🎯 เหมาะสำหรับ: Stateless Workloads ที่ Pod ทุกตัวทำงานเหมือนกัน ไม่ต้องการจำสถานะ (เช่น เว็บแอปฯ, API)
✅ จุดเด่น:
Pod ทุกตัวถูกสร้างมาเหมือนกันเป๊ะ (Replica)
Pod ได้ชื่อแบบสุ่ม (Random names)
ทำ Rolling Update และ Rollback ได้ง่ายและรวดเร็ว
สเกล (Scale up/down) ได้อย่างง่ายดาย
🛠️ ตัวอย่างการใช้งาน: Grafana, API Server, Nginx Frontend
🧠 StatefulSet: "ขอ Pod N ตัว ที่มีตัวตนชัดเจนและมีที่เก็บข้อมูลแยกกัน!"
🎯 เหมาะสำหรับ: Stateful Workloads ที่แต่ละ Pod มีเอกลักษณ์ และจำเป็นต้องบันทึกข้อมูลแบบ Persistent Storage (เช่น ฐานข้อมูล)
✅ จุดเด่น:
แต่ละ Pod มีชื่อเฉพาะตัวและลำดับที่แน่นอน (เช่น mysql-0, mysql-1)
มี Stable Network Identity (Pod ยังคงชื่อเดิมแม้จะ restart)
มี Persistent Volume เฉพาะของตัวเอง (PvC per Pod)
มีลำดับการ Deploy และ Update ที่แน่นอน (Ordered operation)
🛠️ ตัวอย่างการใช้งาน: MySQL, PostgreSQL, Kafka, Cassandra
🕵️♂️ DaemonSet: "ขอ 1 Pod ต่อ 1 Node เสมอ!"
🎯 เหมาะสำหรับ: Node-level Workloads ที่ต้องรันบนทุกๆ Node (หรือเกือบทุก Node) ใน Cluster
✅ จุดเด่น:
จะสร้าง 1 Pod บนทุกๆ Worker Node ของ Kubernetes Cluster
สเกลอัตโนมัติตามขนาดของ Cluster: เพิ่ม Node ปุ๊บ, Pod จะตามไปรันบน Node นั้นทันที
ส่วนใหญ่จะถูกใช้สำหรับงาน Infrastructure, การเก็บ Logs, และ Monitoring
🛠️ ตัวอย่างการใช้งาน: fluentd (Log collector), node-exporter (Monitoring), Cilium-agent (Networking)
สนใจเรียน Azure Kubernetes ติดต่อได้ที่
Facebook: Cloudnatician
Line Official: