SCT

กำลังเตรียมประสบการณ์ดิจิทัล

Kubernetes ฉบับเริ่มต้น: เข้าใจ Pod, Deployment และ Service ใน 10 นาที

Kubernetes กลายเป็นมาตรฐานของการรันคอนเทนเนอร์ในโปรดักชัน แต่ศัพท์เฉพาะจำนวนมากทำให้ผู้เริ่มต้นถอดใจ บทความนี้สรุปแนวคิดหลักจากบทเรียนทางการของ kubernetes.io อธิบาย Pod, Deployment, Service และ Self-Healing ด้วยภาษาที่เข้าใจง่าย พร้อมคำแนะนำว่าทีมแบบไหนควรใช้หรือยังไม่ควรใช้

Kubernetes กลายเป็นมาตรฐานของการรันคอนเทนเนอร์ในโปรดักชัน แต่ศัพท์เฉพาะจำนวนมากทำให้ผู้เริ่มต้นถอดใจ บทความนี้สรุปแนวคิดหลักจากบทเรียนทางการของ kubernetes.io อธิบาย Pod, Deployment, Service และ Self-Healing ด้วยภาษาที่เข้าใจง่าย พร้อมคำแนะนำว่าทีมแบบไหนควรใช้หรือยังไม่ควรใช้

Kubernetes เกิดมาแก้ปัญหาอะไร

เมื่อทีมเริ่มใช้คอนเทนเนอร์ (เช่น Docker) คำถามถัดมาคือ ใครจะคอยรีสตาร์ตคอนเทนเนอร์ที่ตาย ใครจะกระจายโหลดไปหลายเครื่อง และจะเพิ่มจำนวนอย่างไรเมื่อทราฟฟิกพุ่ง Kubernetes (ย่อว่า K8s) คือระบบ Orchestration โอเพนซอร์สที่ Google เปิดตัวและปัจจุบันดูแลโดย CNCF ทำหน้าที่จัดการงานเหล่านี้อัตโนมัติทั้งหมด

หลักคิดสำคัญที่สุดคือ Declarative Model เราประกาศ "สถานะที่ต้องการ" เช่น ต้องการแอปนี้รัน 3 สำเนาเสมอ แล้ว Kubernetes จะเฝ้าเทียบสถานะจริงกับที่ประกาศไว้ตลอดเวลา ถ้าคอนเทนเนอร์ตายไปหนึ่งตัว ระบบจะสร้างใหม่เองทันทีโดยไม่ต้องมีใครตื่นมากดอะไรตอนตีสาม

โครงสร้างคลัสเตอร์: Control Plane และ Node

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

ในทางปฏิบัติ ทีมส่วนใหญ่ไม่ควรติดตั้งคลัสเตอร์เองตั้งแต่ศูนย์ บริการ Managed Kubernetes อย่าง GKE, EKS หรือ AKS ดูแล Control Plane ให้ทั้งหมด เหลือเพียงจัดการ Node และแอปของเรา ซึ่งลดภาระงานดูแลระบบลงมหาศาล ส่วนการทดลองบนเครื่องตัวเองใช้ Minikube หรือ Kind ได้ฟรี

ภาพประกอบเนื้อหาหมวดคลาวด์
ภาพประกอบเนื้อหาหมวดคลาวด์

Pod: หน่วยเล็กที่สุดของการรันงาน

Pod คือหน่วยเล็กที่สุดที่ Kubernetes สร้างและจัดการ หนึ่ง Pod ห่อคอนเทนเนอร์หนึ่งตัว (หรือกลุ่มเล็ก ๆ ที่ต้องอยู่ด้วยกัน) พร้อมทรัพยากรที่แชร์กัน เช่น เครือข่ายและพื้นที่เก็บข้อมูลชั่วคราว โดยทุก Pod ได้ IP ของตัวเอง

สิ่งที่ผู้เริ่มต้นต้องปรับความเข้าใจคือ Pod เป็นของใช้แล้วทิ้ง (Ephemeral) มันตายได้ ถูกแทนที่ได้ และ IP เปลี่ยนได้ตลอด เราจึงไม่สร้าง Pod ตรง ๆ ในงานจริง และห้ามเก็บสถานะสำคัญไว้ใน Pod แต่ให้ออกแบบแอปแบบ Stateless แล้วฝากข้อมูลไว้กับฐานข้อมูลหรือ Storage ภายนอก

Deployment และ Service: คู่หูที่ใช้งานจริงทุกวัน

Deployment คือออบเจกต์ที่เราใช้ประกาศว่าต้องการรันอิมเมจอะไร กี่สำเนา (Replicas) และอัปเดตอย่างไร เมื่อเราแก้เวอร์ชันอิมเมจในไฟล์ YAML แล้ว Apply, Kubernetes จะทำ Rolling Update ทยอยเปลี่ยน Pod ทีละส่วนโดยไม่มี Downtime และถ้าเวอร์ชันใหม่มีปัญหา สั่ง Rollback กลับได้ในคำสั่งเดียว

ส่วน Service แก้ปัญหาว่า Pod เกิดดับและเปลี่ยน IP ตลอดเวลา โดยให้ชื่อและ IP เสถียรหนึ่งจุดพร้อมกระจายโหลดไปยัง Pod ที่แข็งแรงเบื้องหลัง ประเภทที่ใช้บ่อยคือ ClusterIP สำหรับคุยกันภายใน และ LoadBalancer สำหรับเปิดรับทราฟฟิกภายนอก ขณะที่ Ingress ช่วยจัดเส้นทาง HTTP หลายโดเมน/หลายเส้นทางเข้าคลัสเตอร์ผ่านจุดเดียว

ภาพประกอบเสริมของบทความนี้
ภาพประกอบเสริมของบทความนี้

Self-Healing และ Scaling: เหตุผลที่คนยอมเรียนรู้ K8s

พลังที่แท้จริงของ Kubernetes อยู่ที่ความสามารถดูแลตัวเอง ถ้าเรากำหนด Liveness Probe และ Readiness Probe ไว้ ระบบจะรีสตาร์ตคอนเทนเนอร์ที่ค้าง และหยุดส่งทราฟฟิกไปยัง Pod ที่ยังไม่พร้อมโดยอัตโนมัติ เมื่อ Node ทั้งเครื่องล่ม งานทั้งหมดบนเครื่องนั้นจะถูกย้ายไปเครื่องอื่นเอง

ด้าน Scaling ใช้ Horizontal Pod Autoscaler (HPA) กำหนดกติกา เช่น ถ้า CPU เฉลี่ยเกิน 70% ให้เพิ่ม Replicas จาก 3 สูงสุดถึง 10 เหมาะกับธุรกิจที่ทราฟฟิกพุ่งเป็นช่วง เช่น แคมเปญโปรโมชัน ระบบจะขยายรับโหลดเองแล้วหดกลับเมื่อเหตุการณ์จบ ช่วยประหยัดค่าใช้จ่ายไปพร้อมกัน

ทีมของคุณควรใช้ Kubernetes หรือยัง

Kubernetes มีต้นทุนการเรียนรู้และดูแลไม่น้อย ทีมเล็กที่มีบริการเดียวหรือสองบริการ อาจเหมาะกับทางเลือกที่ง่ายกว่า เช่น Cloud Run, App Service หรือ ECS Fargate ซึ่งได้ Auto Scaling โดยแทบไม่ต้องดูแลอะไร สัญญาณที่บอกว่าถึงเวลา K8s คือมีหลายบริการที่ต้อง Deploy บ่อย ต้องการควบคุมโครงสร้างพื้นฐานละเอียด หรือต้องการหลีกเลี่ยงการผูกติดผู้ให้บริการรายเดียว

เส้นทางเรียนรู้ที่แนะนำคือเริ่มจากบทเรียนโต้ตอบ "Kubernetes Basics" บนเว็บ kubernetes.io ทดลองกับ Minikube บนเครื่องตัวเอง แล้วขึ้นคลัสเตอร์ Managed ขนาดเล็กสำหรับ Workload ที่ไม่วิกฤติก่อน จากนั้นค่อยเพิ่มมาตรฐานอย่าง Resource Limits, Namespace แยกทีม และ GitOps เมื่อทีมพร้อม

สิ่งที่ควรจำ

  • Kubernetes เกิดมาแก้ปัญหาอะไร
  • โครงสร้างคลัสเตอร์: Control Plane และ Node
  • Pod: หน่วยเล็กที่สุดของการรันงาน
แหล่งอ้างอิงเรียบเรียงจาก Kubernetes Documentation — Kubernetes Basics — อ่านเอกสารต้นฉบับ
มีคำถามเพิ่มเติมเกี่ยวกับบทความนี้? เขียนหาเราได้ที่ info@smart-cyber-tech.com

บทความอื่นที่เกี่ยวข้อง

เรียนรู้ต่อเนื่อง

เร่งความเร็วเว็บด้วย Core Web Vitals: คู่มือเริ่มต้นสำหรับทีมพัฒนา เว็บ

เร่งความเร็วเว็บด้วย Core Web Vitals: คู่มือเริ่มต้นสำหรับทีมพัฒนา

เว็บที่โหลดช้าเพียง 1 วินาทีอาจทำให้ Conversion ลดลงอย่างมีนัยสำคัญ บทความนี้สรุปแนวทางจากคอร์ส Learn Performance ของ Google web.dev อธิบายตัวชี้วัด Core Web Vitals ทั้ง LCP, INP และ CLS พร้อมเทคนิคปรับปรุงที่ทีมพัฒนาไทยนำไปใช้ได้ทันที

อ่านบทความ
OWASP Top 10 ฉบับปี 2025: ความเสี่ยงเว็บแอปที่นักพัฒนาทุกคนต้องรู้ ความปลอดภัย

OWASP Top 10 ฉบับปี 2025: ความเสี่ยงเว็บแอปที่นักพัฒนาทุกคนต้องรู้

OWASP ออก Top 10 ฉบับปี 2025 หลังจากฉบับก่อนหน้าถึง 4 ปี โดยมีการเปลี่ยนแปลงสำคัญคือความเสี่ยงด้าน Supply Chain ขึ้นมาเป็นอันดับ 3 บทความนี้สรุปสาระสำคัญของแต่ละหมวด พร้อมแนวทางป้องกันที่ทีมพัฒนานำไปปรับใช้ได้จริง

อ่านบทความ
ลดค่าใช้จ่ายคลาวด์อย่างเป็นระบบตามแนวทาง AWS Well-Architected คลาวด์

ลดค่าใช้จ่ายคลาวด์อย่างเป็นระบบตามแนวทาง AWS Well-Architected

องค์กรจำนวนมากจ่ายค่าคลาวด์เกินจำเป็น 20-30% จากทรัพยากรที่ไม่ได้ใช้และขนาดที่ใหญ่เกินงาน บทความนี้สรุปหลักการจาก Cost Optimization Pillar ของ AWS Well-Architected Framework ตั้งแต่การมองเห็นค่าใช้จ่าย การเลือกโมเดลราคา ไปจนถึงการสร้างวัฒนธรรม FinOps ในทีม

อ่านบทความ

อยากให้ทีมเราช่วยนำไปใช้จริง?

ตั้งแต่ประเมินระบบปัจจุบัน วางแผน จนถึงลงมือพัฒนา — คุยกับเราได้โดยไม่มีค่าใช้จ่าย

ปรึกษาทีมของเรา