รับเครดิต $200

DigitalOcean Kubernetes (DOKS) สำหรับมือใหม่: สร้างคลัสเตอร์ deploy แอป และคุมค่าใช้จ่าย

อัปเดตล่าสุด 3 พฤศจิกายน 2569 · อ่านประมาณ 8 นาที · โดย DigitalOcean Review ไทย

คู่มือ DigitalOcean Kubernetes (DOKS) ภาษาไทย สร้างคลัสเตอร์ด้วย doctl และ Control Panel deploy แอปด้วย kubectl, LoadBalancer, Ingress, autoscaling และคำนวณค่าใช้จ่ายที่ control plane ฟรี

เปิดเผยข้อมูล: บทความนี้มีลิงก์แนะนำ (referral) ของ DigitalOcean หากคุณสมัครผ่านลิงก์ เจ้าของเว็บอาจได้รับเครดิต โดยคุณไม่เสียค่าใช้จ่ายเพิ่ม · อ่านนโยบายการรีวิว

DOKS คืออะไร

DigitalOcean Kubernetes (DOKS) คือบริการ Managed Kubernetes DigitalOcean ดูแล control plane (ส่วนสมองของคลัสเตอร์) ให้ และคุณเลือกขนาด/จำนวน worker node ซึ่งก็คือ Droplet ที่ทำงานรันคอนเทนเนอร์ของคุณ ตามหน้าราคาทางการ ณ 3 พ.ย. 2569 Kubernetes เริ่มต้น $12/เดือน และ control plane ไม่คิดค่าบริการ คุณจ่ายเฉพาะ worker node และทรัพยากรที่ผูกมา เช่น Load Balancer และ Volume

ควรใช้ Kubernetes เมื่อไร (และเมื่อไรไม่ควร)

Kubernetes ทรงพลังแต่ซับซ้อน ก่อนใช้ ถามตัวเองว่าจำเป็นจริงไหม

เหมาะเมื่อ

  • มีหลายบริการ (microservices) ที่ต้อง deploy และขยายอิสระ
  • ต้องการ rolling update, self-healing, autoscaling
  • ทีมคุ้นเคย Kubernetes หรืออยากเรียนรู้เพื่อใช้ในอาชีพ
  • ต้องการความเป็นพกพา ย้ายระหว่างผู้ให้บริการได้

ยังไม่จำเป็นเมื่อ

  • เว็บเดียว/แอปเดียว ทราฟฟิกปานกลาง → ใช้ Droplet หรือ คู่มือ App Platform ง่ายและถูกกว่า
  • ทีมมีคนเดียวและไม่มีเวลาเรียนรู้
  • งานที่ docker compose บนเครื่องเดียวก็พอ
รับเครดิตฟรี $200 (ใช้ได้ 60 วัน)สมัคร DigitalOcean ผ่านลิงก์แนะนำของเรา แล้วเพิ่มวิธีชำระเงินที่ใช้งานได้ ระบบจะให้เครดิตทดลองใช้งาน ตามเงื่อนไขของ DigitalOcean ณ วันที่สมัคร
สมัครรับเครดิต $200 →

ค่าใช้จ่ายของคลัสเตอร์

องค์ประกอบการคิดเงิน
Control planeไม่คิดค่าบริการ (ตามหน้าราคา)
Worker nodesคิดเท่าราคา Droplet ที่เลือก เช่น node $12 หรือ $24 ต่อเดือน
Load Balancerเริ่ม $12/เดือน ต่อตัวที่สร้าง
Volumes (PersistentVolume)เริ่ม $10/เดือน (อัตราตามขนาด)
High-availability control planeตัวเลือกเสริม มีค่าใช้จ่าย ตรวจราคาในหน้าสร้างคลัสเตอร์

ตัวอย่างคลัสเตอร์เล็กสำหรับเรียนรู้: 2 node × $24 = $48 + Load Balancer 1 ตัว $12 = ประมาณ $60/เดือน ผู้ใช้ใหม่ทดลองด้วยเครดิตได้ ดู วิธีรับเครดิตฟรี $200 DigitalOcean

สร้างคลัสเตอร์

วิธีที่ 1: Control Panel

  1. Create → Kubernetes
  2. เลือกภูมิภาค (เช่น สิงคโปร์) และเวอร์ชัน Kubernetes ที่แนะนำ
  3. เลือก Node pool: ขนาด Droplet และจำนวน node (เริ่ม 2)
  4. (ตัวเลือก) เปิด Autoscaling กำหนด min/max
  5. ตั้งชื่อและ Create ใช้เวลาไม่กี่นาที

วิธีที่ 2: doctl (CLI)

ติดตั้ง doctl แล้วล็อกอินด้วย API token

doctl auth init
doctl kubernetes options sizes
doctl kubernetes options regions
doctl kubernetes cluster create demo-cluster --region sgp1 --node-pool "name=pool-1;size=s-2vcpu-4gb;count=2"

ชื่อ size และ region ให้ใช้ค่าที่คำสั่ง options แสดงจริง เพราะอาจเปลี่ยนแปลง คำสั่งข้างต้นจะบันทึก kubeconfig ให้อัตโนมัติ ถ้าไม่ ให้รัน

doctl kubernetes cluster kubeconfig save demo-cluster
kubectl get nodes

Deploy แอปตัวอย่าง

สร้างไฟล์ app.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello
spec:
  replicas: 2
  selector:
    matchLabels: { app: hello }
  template:
    metadata:
      labels: { app: hello }
    spec:
      containers:
        - name: hello
          image: nginx:stable
          ports:
            - containerPort: 80
          resources:
            requests: { cpu: "50m", memory: "64Mi" }
            limits: { cpu: "200m", memory: "128Mi" }
---
apiVersion: v1
kind: Service
metadata:
  name: hello
spec:
  type: LoadBalancer
  selector: { app: hello }
  ports:
    - port: 80
      targetPort: 80
kubectl apply -f app.yaml
kubectl get svc hello --watch

เมื่อ EXTERNAL-IP ปรากฏ แปลว่า DigitalOcean สร้าง Load Balancer ให้แล้ว (ซึ่งมีค่าใช้จ่าย) เปิด IP นั้นในเบราว์เซอร์เพื่อทดสอบ

ใช้ Ingress เพื่อประหยัด Load Balancer

ถ้ามีหลายเว็บ อย่าสร้าง Service แบบ LoadBalancer ทีละตัว (เสีย $12 ต่อตัว) ให้ใช้ Ingress controller (เช่น ingress-nginx) ตัวเดียว รับทราฟฟิกทั้งหมดผ่าน Load Balancer 1 ตัว แล้วกระจายตามโดเมน/path

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm install ingress-nginx ingress-nginx/ingress-nginx

ใช้ cert-manager ออกใบรับรอง Let's Encrypt อัตโนมัติให้แต่ละโดเมน

ที่เก็บข้อมูลถาวร

Pod เป็น ephemeral ถ้าต้องการข้อมูลถาวร ใช้ PersistentVolumeClaim ซึ่ง DOKS จะสร้าง Block Storage Volume ให้ผ่าน storage class ที่มีให้ อย่าลืมว่าแต่ละ Volume มีค่าใช้จ่าย และการลบ PVC อาจลบ Volume ตามนโยบาย reclaim ตรวจสอบก่อนลบ

สำหรับฐานข้อมูล แนะนำใช้ คู่มือ Managed Databases แทนการรันฐานข้อมูลใน Kubernetes เอง เว้นแต่คุณมีความชำนาญ

Autoscaling

  • Cluster Autoscaler: เพิ่ม/ลด node ตามความต้องการของ pod (ตั้ง min/max ใน node pool)
  • Horizontal Pod Autoscaler (HPA): เพิ่ม/ลดจำนวน pod ตาม CPU/memory

ตั้ง resources.requests ให้ครบเสมอ ไม่เช่นนั้น scheduler และ autoscaler ทำงานไม่แม่น

Container Registry

DigitalOcean มี Container Registry สำหรับเก็บ Docker image ส่วนตัว และเชื่อมกับ DOKS ได้ตรง ๆ ตรวจราคาแผนล่าสุดจากหน้าราคา แต่ถ้ายังเริ่มต้น ใช้ registry อื่น เช่น GitHub Container Registry ก็ได้

ความปลอดภัยพื้นฐาน

  1. จำกัดสิทธิ์ผู้ใช้ด้วย RBAC ใช้หลักสิทธิ์น้อยที่สุด
  2. ใช้ Network Policy จำกัดการสื่อสารระหว่าง pod
  3. เก็บความลับใน Secret (และพิจารณาเข้ารหัสเพิ่ม) อย่าใส่ใน image
  4. อัปเกรดเวอร์ชัน Kubernetes เป็นระยะ (เปิด auto-upgrade ถ้าสะดวก) ตั้ง maintenance window ให้เหมาะสม
  5. ใช้ VPC และ firewall ควบคุมการเข้าถึง
  6. สแกน image หาช่องโหว่ก่อน deploy
  7. ดูแนวทางรวมที่ คู่มือความปลอดภัยเซิร์ฟเวอร์

เคล็ดลับควบคุมค่าใช้จ่าย

  • ใช้ Ingress ตัวเดียวแทนหลาย LoadBalancer
  • ตั้ง autoscaling min ต่ำสุดที่ยอมรับได้
  • ลบคลัสเตอร์ทดลองทันทีหลังใช้ (ตรวจว่า Load Balancer และ Volume ที่ผูกอยู่ถูกลบด้วย เพราะบางครั้งทรัพยากรเหล่านี้ค้างอยู่)
  • ใช้ node ขนาดพอเหมาะ node ใหญ่น้อยตัวมักคุ้มกว่า node เล็กหลายตัว เพราะ overhead ของระบบต่อ node
  • ดูเคล็ดลับทั่วไปที่ 15 วิธีลดค่าใช้จ่าย DigitalOcean

สรุป

DOKS ให้ Kubernetes ที่ใช้ง่ายและมี control plane ไม่คิดค่าบริการ เหมาะกับทีมที่ต้องการระบบ container ขนาดกลางโดยไม่ต้องตั้งค่าเองทั้งหมด แต่ไม่ใช่คำตอบสำหรับทุกงาน ถ้าคุณมีแอปเดียวหรือเริ่มต้นใหม่ ให้เริ่มจาก Droplet ตาม สอนสร้าง Droplet แรก หรือ App Platform ก่อน แล้วค่อยย้ายเมื่อความซับซ้อนเรียกร้อง

คำถามที่พบบ่อย

Control plane ฟรีจริงไหม

ตามหน้าราคาทางการระบุว่า control plane ไม่คิดค่าบริการ คุณจ่ายสำหรับ worker node และบริการที่ผูกมา ส่วน control plane แบบ high-availability อาจเป็นตัวเลือกเสริมที่มีค่าใช้จ่าย

เริ่มเรียน Kubernetes ที่ DOKS ได้ไหม

ได้ ใช้เครดิตผู้ใช้ใหม่สร้างคลัสเตอร์ 2 node ทดลองได้หลายสัปดาห์ แต่ถ้าต้องการแค่เรียนพื้นฐาน อาจเริ่มกับ minikube/kind บนเครื่องตัวเองก่อนเพื่อประหยัด

ลบคลัสเตอร์แล้วจะหยุดคิดเงินไหม

ลบคลัสเตอร์จะหยุดค่า node แต่ต้องตรวจว่า Load Balancer และ Volume ที่สร้างโดย Kubernetes ถูกลบด้วย ดูที่เมนู Networking และ Volumes

รับเครดิตฟรี $200 (ใช้ได้ 60 วัน)สมัคร DigitalOcean ผ่านลิงก์แนะนำของเรา แล้วเพิ่มวิธีชำระเงินที่ใช้งานได้ ระบบจะให้เครดิตทดลองใช้งาน ตามเงื่อนไขของ DigitalOcean ณ วันที่สมัคร
สมัครรับเครดิต $200 →