เปิดใช้งาน Kubernetes บน Docker Desktop
เนื่องจากใน Docker Desktop มี Kubernetes มาให้อยู่แล้วเพียงแค่เราเข้าไป Enable Kubernetes ขึ้นมาก็สามารถใช้งาน Kubernetes ได้เลยทันที
ซึ่งนอกจากการใช้งาน Docker Desktop แล้วเรายังมีเครื่องมืออื่นๆให้เลือกอีกมาก เช่น
ข้อดีของ Docker Desktop
ข้อดีของการใช้งาน Docker Desktop คือความง่าย เพราะเครื่องของ Developer ติดตั้ง Docker Desktop ไว้อยู่แล้ว วิธีการนี้จึงเป็นวิธีที่ง่ายที่สุดในการติดตั้ง Kubernetes ลงบน Local
ข้อเสียของ Docker Desktop
ข้อเสียของ Docker Desktop คือ ความสามารถบางอย่างที่ไม่ได้ครบถ้วนเหมือน Minikube และ Kind(บาง Feature อาจใช้ไม่ได้หรือต้องไป Enable ขึ้นมาใช้งานเอง)
และอีกข้อที่สำคัญมากๆเลยคือเราจะมีแค่ Cluster เดียวที่มีเครื่องเดียว ดังนั้นเวลาอยากจะลบทุกอย่างออกเราต้องไปสั่ง Reset cluster ใน docker desktop ซึ่งทุกอย่างจะหายไปหมดเลย แต่ถ้าเป็น Minikube เราสามารถสร้าง vm สำหรับ project ต่างๆได้ เช่นเดียวกับ Kind ที่เราสามารถแยก project ได้
Docker Desktop เหมาะกับผู้เริ่มต้นที่ยังต้องการ Cluster เพียงแค่ Cluster เดียว
ขั้นตอนติดตั้ง Docker Desktop และการเปิดใช้งาน Kubernetes
ถ้าคุณยังไม่มี Docker Desktop ให้เข้าไป download ตัว installer และติดตั้งตามขั้นตอนต่างๆ ดังนี้
1. ติดตั้ง Docker Desktop
กด Accept เพื่อยอมรับ Docker Service Agreement
2. เปิดใช้งาน Kubernetes
เมื่อเราเปิด Docker Desktop ขึ้นมา ให้เข้าไปที่เมนู Setting มุมขวาบน > เลือกแท็บ Kubernetes
จากนั้นกดใส่เครื่องหมายถูกที่ Enable Kubernetes และกด Apply & Restart
หลังจากนั้น Docker Desktop จะไป pull image สำหรับการจำลอง Kubernetes Cluster ลงมาซึ่งการทำงานจะเร็วหรือช้าขึ้นอยู่กับความเร็วของ Internet
เมื่อระบบทำการติดตั้งเสร็จสิ้นแล้ว จะขึ้นสัญลักษณ์แถบสีเขียวด้านล่างซ้าย สองแถบติดกัน โดยแถบแรกรูปปลาวาฬคือ สถานะการพร้อมใช้งานของ Docker แถบที่สองรูปพังงาเรือคือ สถานะการพร้อมใช้งานของ Kubernetes
3. ตรวจสอบการทำงานของ Kubernetes Cluster
เริ่มต้นเปิด Powershell หรือ Command Prompt ขึ้นมาแล้วลองพิมพ์คำสั่ง
# ใช้สำหรับตรวจสอบ Cluster ที่ถูกสร้างขึ้น
$ kubectl cluster-info
kubectl cluster-info เป็นคำสั่งแรกที่ใช้ตรวจสอบว่า ณ ตอนนี้เราสามารถ connect ไปที่ kubernetes ได้หรือไม่ และในตอนที่เรามีหลาย context เราก็สามารถใช้คำสั่งนี้ตรวจสอบได้ว่าเรากำลังคุยอยู่กับ Kubernetes Cluster ไหน
Kubernetes control plane is running at https://kubernetes.docker.internal:6443
CoreDNS is running at https://kubernetes.docker.internal:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
Control Plane คือเครื่องที่ทำหน้าที่เป็น Master ซึ่งจะมี API Server ทำงานอยู่ใน control plane(port 6443) นี้ ถ้าเราต้องการติดต่อกับ Kubernetes Cluster เราจะต้องติดต่อผ่านทาง API Server เท่านั้น
Core DNS คือ Open Source ที่ทำหน้าที่เป็น DNS Server เราสามารถเพิ่มหรือลบ Domain ผ่านทาง configuration ของ Core DNS ได้
จากรูปด้านบน เราจะเห็นว่าตอนนี้เราพร้อมที่จะใช้งาน Kubernetes Cluster แล้ว โดยที่ Kubernetes cluster ของเราอยู่ที่ “https://kubernetes.docker.internal:6443” ซึ่งก็คือ Docker Desktop นั่นเอง
หลังจากนั้นให้เราลอง get nodes ออกมาดูเพื่อยืนยันว่า Kubernetes พร้อมสำหรับการใช้งานแล้ว
# ใช้สำหรับดึงรายชื่อของ nodes(server ทั้ง control plane และ worker) ที่ทำงานอยู่ตอนนี้
$ kubectl get nodes
ผลลัพธ์จะออกมาแบบนี้
NAME STATUS ROLES AGE VERSION
docker-desktop Ready control-plane 4m10s v1.28.2
จะเห็นว่าตอนนี้เรามี server เพียงตัวเดียวซึ่งทำหน้าที่เป็น control plane(master) เพียงตัวเดียว และ install kubernetes version 1.28.2
ซึ่งอย่างที่เห็น Docker Desktop นั้นติดตั้งง่ายมากๆ เหมาะกับมือใหม่ที่ต้องการเรียนรู้การทำงานของ Kubernetes แต่ในอนาคตคุณจะพบกับข้อจำกัดของ Docker Desktop และต้องเรียนรู้วิธีติดตั้ง Kubernetes ด้วยวิธีอื่นๆต่อไป.