Skip to main content

Introduction to Kubernetes

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

คุณสมบัติหลักของ Kubernetes

  1. การจัดการคอนเทนเนอร์ (Container Orchestration) Kubernetes ช่วยจัดการวงจรชีวิตของคอนเทนเนอร์ รวมถึงการเริ่มต้น หยุดทำงาน และปรับขนาดคอนเทนเนอร์อัตโนมัติ

  2. การปรับขยายอัตโนมัติ (Auto-scaling) สามารถปรับขนาดทรัพยากรให้เหมาะสมกับการโหลดงานแบบอัตโนมัติ เช่น เพิ่มหรือลดจำนวนพ็อด (Pods) ตามความต้องการ

  3. ความพร้อมใช้งานสูง (High Availability) Kubernetes มีกลไกการทำงานที่ช่วยเพิ่มความพร้อมใช้งาน เช่น การจัดการสำรองข้อมูลและฟื้นฟูระบบ (self-healing)

  4. การใช้งานหลายคลัสเตอร์ (Multi-cluster Management) สามารถจัดการคลัสเตอร์ Kubernetes หลาย ๆ คลัสเตอร์ในเวลาเดียวกันได้

องค์ประกอบพื้นฐานของ Kubernetes

  1. Node Node คือเครื่องคอมพิวเตอร์ที่ใช้รันคอนเทนเนอร์ โดยในระบบ Kubernetes จะมีทั้ง Master Node และ Worker Node

  2. Pod Pod เป็นหน่วยเล็กที่สุดใน Kubernetes ที่ใช้สำหรับรันคอนเทนเนอร์หนึ่งตัวหรือมากกว่าในกลุ่มเดียวกัน

  3. Service Service ใช้สำหรับการสื่อสารระหว่าง Pods และการเชื่อมต่อกับระบบภายนอก

  4. ConfigMap และ Secret ใช้สำหรับจัดการค่าคอนฟิกและข้อมูลลับที่จำเป็นสำหรับแอปพลิเคชัน

  5. Namespace ใช้สำหรับการแยกแอปพลิเคชันหรือกลุ่มทรัพยากรในคลัสเตอร์ออกจากกัน

การเริ่มต้นใช้งาน Kubernetes

  1. ติดตั้งเครื่องมือ เช่น Minikube หรือ Kubernetes CLI (kubectl)
  2. สร้างคลัสเตอร์โดยใช้ Minikube หรือเชื่อมต่อกับคลัสเตอร์ที่มีอยู่แล้ว
  3. เขียนไฟล์การปรับแต่ง (YAML) เพื่อกำหนดค่าทรัพยากร เช่น Deployment, Service
  4. ใช้คำสั่ง kubectl เพื่อจัดการคลัสเตอร์ เช่น การ deploy แอปพลิเคชัน หรือการตรวจสอบสถานะของ Pods

คำสั่งพื้นฐาน

  • kubectl get pods แสดงรายการ Pods ทั้งหมดในคลัสเตอร์
  • kubectl create -f <filename>.yaml สร้างทรัพยากรจากไฟล์ YAML
  • kubectl delete pod <pod-name> ลบ Pod ที่ระบุ
  • kubectl logs <pod-name> ดู log ของ Pod

Kubernetes เป็นเครื่องมือที่มีความซับซ้อนแต่ทรงพลัง การเรียนรู้พื้นฐานจะช่วยให้คุณสามารถนำไปประยุกต์ใช้ในงานที่ต้องการความยืดหยุ่นและการจัดการแอปพลิเคชันที่มีประสิทธิภาพได้อย่างดี