Kubernetes คืออะไร และวิธีเริ่มใช้งานบน Cloud Server
Kubernetes คือระบบที่ดูแล Container จำนวนมากแทนคุณ ทั้งการกระจายไปยังเครื่องที่ว่าง การรีสตาร์ตเมื่อแอปล่ม และการเพิ่มลดจำนวนสำเนาตามโหลด เป็นมาตรฐานของระบบขนาดใหญ่ในปัจจุบัน
- หมวดหมู่
- Container และ Virtualization
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 4 GB
- ไลเซนส์
- Apache License 2.0 (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
Kubernetes คืออะไร
เมื่อจำนวน Container เพิ่มจากสิบเป็นร้อย การดูแลด้วยมือเริ่มเป็นไปไม่ได้ Kubernetes เข้ามารับหน้าที่นี้ โดยคุณบอกว่าอยากให้ระบบมีหน้าตาอย่างไร เช่น ต้องมีสำเนาของแอปสามชุดเสมอ แล้วมันจะรักษาสถานะนั้นไว้เอง ถ้ามีเครื่องล่มก็ย้ายงานไปเครื่องอื่นให้อัตโนมัติ
ความสามารถที่องค์กรได้จริงคือการอัปเดตแบบไม่ต้องปิดระบบ การย้อนเวอร์ชันกลับได้เมื่อมีปัญหา และการเพิ่มสำเนาอัตโนมัติเมื่อทราฟฟิกพุ่ง ซึ่งทั้งหมดนี้ทำให้ระบบทนต่อความผิดพลาดมากกว่าการรันแอปบนเครื่องเดียว
ข้อควรคิดคือ Kubernetes มีต้นทุนความซับซ้อนสูง ทั้งเรื่องเครือข่าย พื้นที่จัดเก็บ และการดูแลรายวัน ถ้าระบบยังรันได้สบายบนสองสามเครื่อง Docker Compose มักคุ้มกว่า และควรขยับมาใช้ Kubernetes เมื่อทีมพร้อมจริงเท่านั้น
ความสามารถเด่นของ Kubernetes
รักษาสถานะที่ประกาศไว้
ประกาศว่าอยากได้อะไร ระบบจะสร้าง ซ่อม และรักษาสถานะนั้นให้เองตลอดเวลา
ปรับขนาดอัตโนมัติ
เพิ่มหรือลดจำนวนสำเนาของแอปตามการใช้ CPU หรือเมตริกที่กำหนดเอง
อัปเดตแบบไม่ต้องปิดระบบ
ทยอยเปลี่ยนสำเนาทีละชุดและย้อนกลับได้ทันทีเมื่อพบปัญหา
ค้นหาบริการภายในคลัสเตอร์
แต่ละบริการมีชื่อ DNS ภายใน จึงเรียกหากันได้โดยไม่ต้องรู้ไอพี
จัดการความลับและการตั้งค่า
แยกค่าคอนฟิกและ Secret ออกจาก Image ทำให้ใช้ Image เดียวกันได้ทุกสภาพแวดล้อม
ใช้ Kubernetes ทำอะไรได้บ้าง
- ระบบที่มีหลายบริการย่อยและต้องปล่อยอัปเดตบ่อย
- แอปที่ทราฟฟิกขึ้นลงแรงตามช่วงเวลาและต้องปรับขนาดอัตโนมัติ
- องค์กรที่ต้องการมาตรฐานการ Deploy เดียวกันในทุกทีม
- ระบบที่ต้องการความพร้อมใช้งานสูงและทนต่อการล่มของเครื่องใดเครื่องหนึ่ง
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| ทดลองใช้ (K3s เครื่องเดียว)เรียนรู้และทดสอบระบบ | 2 vCPU | 4 GB | NVMe 40 GB |
| คลัสเตอร์เล็ก3 โหนดสำหรับงาน Production ขนาดเล็กถึงกลาง | 4 vCPU ต่อโหนด | 8 GB ต่อโหนด | NVMe 100 GB ต่อโหนด |
| Production เต็มรูปแบบแยก Control Plane 3 โหนด และ Worker ตามโหลดจริง | 8 vCPU ขึ้นไปต่อโหนด | 16 GB ขึ้นไปต่อโหนด | NVMe 200 GB ขึ้นไป |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง Kubernetes บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Cloud Server อย่างน้อย 1 เครื่องสำหรับ K3s หรือ 3 เครื่องขึ้นไปสำหรับคลัสเตอร์จริง
- Private Network ระหว่างโหนดในคลัสเตอร์
- ปิด swap บนทุกโหนด และตั้งเวลาเครื่องให้ตรงกัน
ทดสอบบน Ubuntu Server 24.04 LTS
- 1
ติดตั้ง K3s บนโหนดแรก (Control Plane)
K3s คือ Kubernetes รุ่นย่อขนาดที่ผ่านการรับรองว่าเข้ากันได้ ติดตั้งจบในคำสั่งเดียวและกินทรัพยากรน้อยกว่ามาก
curl -sfL https://get.k3s.io | sh - sudo systemctl status k3s --no-pager - 2
ตรวจสอบคลัสเตอร์
sudo k3s kubectl get nodes sudo k3s kubectl get pods -A - 3
ดึงโทเคนเพื่อเพิ่มโหนดอื่นเข้าคลัสเตอร์
sudo cat /var/lib/rancher/k3s/server/node-token - 4
ติดตั้งบนโหนด Worker
แทน SERVER_IP ด้วยไอพีภายในของโหนดแรก และ NODE_TOKEN ด้วยโทเคนจากขั้นตอนก่อนหน้า
curl -sfL https://get.k3s.io | K3S_URL=https://SERVER_IP:6443 K3S_TOKEN=NODE_TOKEN sh - - 5
ตั้งค่า kubectl บนเครื่องของคุณ
คัดลอกไฟล์ตั้งค่าจากโหนดแรกมาไว้ที่เครื่องที่ใช้สั่งงาน แล้วแก้ไอพีในไฟล์ให้ชี้ไปที่โหนดแรก
sudo cat /etc/rancher/k3s/k3s.yaml - 6
ทดลอง Deploy แอปแรก
kubectl create deployment web --image=nginx:alpine --replicas=2 kubectl expose deployment web --port=80 --type=NodePort kubectl get svc web
สำหรับคลัสเตอร์ Production ที่ต้องการความพร้อมใช้งานสูง ควรมี Control Plane 3 โหนดและวาง Load Balancer ไว้ด้านหน้า ทีมงานของเราออกแบบและติดตั้งให้ได้
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 6443 | TCP | Kubernetes API Server (เปิดเฉพาะภายในวงหรือผ่าน VPN) |
| 10250 | TCP | Kubelet ระหว่างโหนดในคลัสเตอร์ |
| 8472 | UDP | เครือข่ายภายในคลัสเตอร์แบบ VXLAN (Flannel) |
| 80 / 443 | TCP | Ingress สำหรับผู้ใช้ภายนอก |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- ไม่เปิดพอร์ต API 6443 สู่อินเทอร์เน็ต ให้เข้าถึงผ่าน Private Network หรือ VPN เท่านั้น
- เปิด RBAC และให้สิทธิ์แต่ละทีมเท่าที่จำเป็น
- ใช้ Network Policy จำกัดว่า Pod ใดคุยกับ Pod ใดได้บ้าง
- เก็บ Secret ในระบบจัดการความลับที่เข้ารหัส ไม่ฝังไว้ในไฟล์ YAML ที่ขึ้น Git
- สแกน Image และตั้งนโยบายให้ Deploy ได้เฉพาะ Image จาก Registry ที่เชื่อถือได้
- สำรอง etcd และไฟล์ประกาศทั้งหมดตามรอบ เพราะเป็นสิ่งที่ใช้กู้คลัสเตอร์กลับมา
ทำไมควรรัน Kubernetes บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
สร้างโหนดเพิ่มบน Cloud Server ได้ในไม่กี่นาที ทำให้ขยายคลัสเตอร์ตามโหลดจริงโดยไม่ต้องซื้อฮาร์ดแวร์ล่วงหน้า
ทราฟฟิกระหว่างโหนดวิ่งบน Private Network ในไทย ได้ทั้งความเร็วและความปลอดภัย
เหมาะกับองค์กรที่ต้องเก็บข้อมูลในประเทศแต่อยากได้ประสบการณ์แบบคลาวด์สมัยใหม่
ถ้าทีมยังไม่พร้อมดูแลเอง เลือกใช้บริการ Managed Services ให้ทีมวิศวกรของเราดูแลคลัสเตอร์ให้ได้
คำถามที่พบบ่อยเกี่ยวกับ Kubernetes
องค์กรขนาดไหนถึงควรใช้ Kubernetes
โดยทั่วไปคุ้มเมื่อมีบริการหลายตัว ปล่อยอัปเดตบ่อย และมีทีมที่ดูแลระบบได้ต่อเนื่อง ถ้ามีแค่เว็บกับฐานข้อมูลไม่กี่ตัว การใช้ Docker Compose บน Cloud Server สองสามเครื่องจะเรียบง่ายและถูกกว่ามาก
K3s ต่างจาก Kubernetes เต็มรูปแบบอย่างไร
K3s คือ Kubernetes ที่ตัดส่วนที่ไม่จำเป็นออกและรวมเป็นไฟล์เดียว จึงติดตั้งง่ายและกินทรัพยากรน้อย แต่ยังใช้ API เดียวกัน ทำให้ไฟล์ประกาศและเครื่องมือต่าง ๆ ใช้ร่วมกันได้ เหมาะกับคลัสเตอร์เล็กถึงกลางมาก
ต้องใช้กี่เครื่องถึงจะเรียกว่าคลัสเตอร์ที่ใช้งานจริงได้
อย่างน้อยสามโหนด เพื่อให้ยังทำงานต่อได้เมื่อเครื่องหนึ่งล่มหรือปิดอัปเดต ถ้าต้องการให้ Control Plane ทนล่มด้วยควรมี Control Plane สามชุดแยกจาก Worker
เก็บข้อมูลถาวรใน Kubernetes อย่างไร
ใช้ Persistent Volume ที่ผูกกับพื้นที่จัดเก็บภายนอก เช่น ระบบไฟล์แบบแชร์หรือ Object Storage สำหรับฐานข้อมูลที่มีข้อมูลสำคัญ หลายองค์กรเลือกรันแยกออกมาบน Cloud Server ต่างหากเพื่อความเรียบง่ายในการสำรองและกู้คืน
ทางเลือกอื่นที่คล้ายกับ Kubernetes
- #2Dockerมาตรฐานการแพ็กแอปเป็น ContainerContainer และ Virtualization
- K3sKubernetes รุ่นเล็กสำหรับเครื่องเดียวContainer และ Virtualization
- Rancherบริหารหลายคลัสเตอร์ Kubernetes จากที่เดียวContainer และ Virtualization
- Red Hat OpenShiftแพลตฟอร์ม Kubernetes ระดับองค์กรContainer และ Virtualization
- #33Proxmox VEแพลตฟอร์ม Virtualization โอเพนซอร์สContainer และ Virtualization
แอปอื่นในหมวด Container และ Virtualization
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Kubernetes ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด