ติดตั้ง MicroK8s บน Cloud VPS ใช้งาน Kubernetes แบบง่ายผ่าน Snap

บทนำ

ในการพัฒนาแอปพลิเคชัน Kubernetes นั้น หลายคนมักนึกถึงความซับซ้อนและการติดตั้งที่ยุ่งยาก แต่ MicroK8s มาเปลี่ยนความคิดนั้นไป MicroK8s คือ Kubernetes Distribution ที่พัฒนาโดย Canonical ทำให้ Kubernetes เป็นเรื่องง่ายและเข้าถึงได้มากขึ้น เหมาะสำหรับการใช้งานบน Cloud VPS ของ ผู้ให้บริการโฮสติ้ง ได้อย่างสมบูรณ์

MicroK8s คืออะไร

MicroK8s คือ Kubernetes Distribution ที่เบาและเร็วจาก Canonical ออกแบบมาให้ใช้งานง่ายและมีข้อกำหนดทรัพยากรต่ำ โดยสามารถติดตั้งผ่าน Snap Package ได้อย่างรวดเร็ว เพียงแค่คำสั่งเดียว MicroK8s ก็พร้อมให้ใช้งาน ซึ่งเหมาะสำหรับการเรียนรู้ Kubernetes หรือการพัฒนาแอปพลิเคชันในระดับ Development

ข้อมูลประโยชน์ของ MicroK8s

  • ติดตั้งง่าย: ติดตั้งได้เพียงคำสั่ง snap install microk8s --classic เท่านั้น
  • ใช้ทรัพยากรน้อย: MicroK8s ออกแบบให้เบาหลัก ทำให้ประหยัด CPU และ Memory เมื่อเทียบกับ Kubernetes ทั่วไป
  • อัพเดตอัตโนมัติ: Snap จัดการการอัพเดตเวอร์ชันใหม่ได้อัตโนมัติ
  • เหมาะสำหรับ Development: ใช้งานได้ดีบน Laptop, Desktop, หรือ Cloud VPS สำหรับงาน Development
  • รองรับ Add-ons: สามารถเปิดใช้งาน Add-ons เพิ่มเติมได้ตามต้องการ เช่น DNS, Storage, Metrics Server, Ingress

ข้อจำกัดของ MicroK8s

  • ไม่มี High Availability: ไม่รองรับ Multi-master Cluster
  • ไม่มี Load Balancer: ไม่มี MetalLB สำหรับ Service type LoadBalancer
  • ไม่มี Dashboard: ไม่มี Kubernetes Dashboard ติดตั้งมาโดยค่าเริ่มต้น
  • ใช้สำหรับ Development เท่านั้น: ไม่เหมาะสำหรับการใช้งาน Production ขนาดใหญ่

ข้อกำหนดเบื้องต้น

  • Cloud VPS ที่ใช้ Ubuntu 18.04 ขึ้นไป (แนะนำ Ubuntu 20.04 หรือ Ubuntu 22.04)
  • มี RAM ไม่น้อยกว่า 2GB (แนะนำ 4GB ขึ้นไป)
  • มี CPU ไม่น้อยกว่า 2 cores
  • เข้าถึง Terminal ด้วยสิทธิ sudo

ขั้นตอนการติดตั้ง

ขั้นที่ 1: อัพเดต Package

sudo apt update
sudo apt upgrade -y

ขั้นที่ 2: ติดตั้ง Snapd

sudo apt install snapd -y

ขั้นที่ 3: ติดตั้ง MicroK8s

sudo snap install microk8s --classic

ขั้นที่ 4: กำหนดสิทธิผู้ใช้

sudo usermod -a -G microk8s $USER
sudo mkdir -p ~/.kube
sudo chown -f -R $USER ~/.kube
newgrp microk8s

ขั้นที่ 5: ตรวจสอบการติดตั้ง

microk8s status
microk8s kubectl get nodes
microk8s kubectl get pods -A

เปิดใช้งาน Add-ons สำคัญ

MicroK8s มี Add-ons ที่สามารถเปิดใช้งานได้ตามต้องการ นี่คือ Add-ons ที่แนะนำ:

# เปิดใช้งาน DNS
microk8s enable dns

# เปิดใช้งาน Storage (Local Storage)
microk8s enable storage

# เปิดใช้งาน Metrics Server (สำหรับ monitoring)
microk8s enable metrics-server

# เปิดใช้งาน Ingress
microk8s enable ingress

# ตรวจสอบ Add-ons ที่เปิดใช้งานแล้ว
microk8s status

ความแตกต่างระหว่าง MicroK8s และ kubeadm

เกณฑ์MicroK8skubeadm
ความง่ายง่ายมาก (Snap)ซับซ้อน (Manual)
การติดตั้ง1 คำสั่งหลายขั้นตอน
High Availabilityไม่รองรับรองรับ
Multi-node Clusterไม่รองรับรองรับ
Use CaseDevelopment, LearningProduction
ทรัพยากรที่ต้องการต่ำ (2GB RAM)สูง (4GB+ RAM)

คำสั่งพื้นฐานที่ต้องรู้

# ดูสถานะ Cluster
microk8s status

# เรียกใช้ kubectl
microk8s kubectl [command]

# สร้าง Alias เพื่อใช้งานสั้นกว่า
alias kubectl='microk8s kubectl'

# ดูข้อมูล Nodes
microk8s kubectl get nodes -o wide

# ดูข้อมูล Pods ทั้งหมด
microk8s kubectl get pods -A

# สร้าง Namespace ใหม่
microk8s kubectl create namespace myapp

# Deploy แอปพลิเคชัน
microk8s kubectl apply -f deployment.yaml

# ยกเลิกการติดตั้ง MicroK8s
sudo snap remove microk8s

ตัวอย่างการใช้งาน MicroK8s บน Cloud VPS

หากคุณต้องการทำการทดสอบแอปพลิเคชัน Docker บน Cloud VPS ก่อนปล่อยไปยัง Production Cluster ให้ใช้ MicroK8s ดังนี้:

# 1. ดึง Docker Image
microk8s ctr image pull nginx:latest

# 2. สร้าง Deployment manifest
cat <

เมื่อไหร่ควรใช้ MicroK8s

  • Learning Kubernetes: หากคุณเพิ่งเริ่มต้นเรียนรู้ Kubernetes
  • Development Environment: สำหรับการพัฒนาและทดสอบแอปพลิเคชัน
  • CI/CD Pipeline: สำหรับการทดสอบหรือการพัฒนา Pipeline
  • Small Projects: สำหรับโปรเจกต์ขนาดเล็กที่ไม่ต้องการ High Availability
  • Edge Computing: สำหรับการใช้งานบน IoT devices หรือ Edge servers

เมื่อไหร่ควรใช้ kubeadm แทน

  • Production Cluster: หากต้องการ High Availability และ Scalability
  • Multi-node Cluster: ต้องการ Cluster ที่มีหลาย Nodes
  • Custom Configuration: ต้องการการกำหนดค่าที่ละเอียดและปรับแต่งได้
  • Load Balancer: ต้องการ MetalLB หรือ External Load Balancer
  • Ubuntu 20.04 / 22.04 พร้อมใช้งาน
  • Root Access สำหรับการติดตั้ง
  • Flexible Resources สามารถเพิ่ม RAM, CPU ได้ตามต้องการ
  • Network ที่เสถียร 24/7
  • Technical Support พร้อมช่วยเหลือ

บทสรุป

MicroK8s เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการเรียนรู้และพัฒนา Kubernetes โดยไม่ต้องเผชิญกับความซับซ้อนของการติดตั้ง Kubernetes ทั่วไป ด้วยการติดตั้งที่ง่ายและการใช้ทรัพยากรที่น้อย MicroK8s เป็นตัวเลือกที่ดีมากสำหรับการใช้งานบน Cloud VPS ของ ผู้ให้บริการโฮสติ้ง ไม่ว่าคุณจะเป็นผู้เริ่มต้นหรือนักพัฒนาที่มีประสบการณ์