Coding Gun

เปิดใช้งาน 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

“Installing Decker Desktop”
ขั้นตอนการติดตั้ง Docker Desktop
“Install Docker Desktop Successfully”
ติดตั้ง Docker Desktop สำเร็จแล้ว

กด Accept เพื่อยอมรับ Docker Service Agreement

“Install Decker Desktop”

2. เปิดใช้งาน Kubernetes

เมื่อเราเปิด Docker Desktop ขึ้นมา ให้เข้าไปที่เมนู Setting มุมขวาบน > เลือกแท็บ Kubernetes

“Setup Kubernetes”
เปิดใช้งาน kubernetes บน Docker Desktop

จากนั้นกดใส่เครื่องหมายถูกที่ Enable Kubernetes และกด Apply & Restart

“Setup Kubernetes”
กดปุ่ม Apply & Restart

หลังจากนั้น Docker Desktop จะไป pull image สำหรับการจำลอง Kubernetes Cluster ลงมาซึ่งการทำงานจะเร็วหรือช้าขึ้นอยู่กับความเร็วของ Internet

“Docker Desktop Pulling Image”
Docker Desktop จะ pull image ลงมาเพื่อสร้าง Kubernetes Cluster

เมื่อระบบทำการติดตั้งเสร็จสิ้นแล้ว จะขึ้นสัญลักษณ์แถบสีเขียวด้านล่างซ้าย สองแถบติดกัน โดยแถบแรกรูปปลาวาฬคือ สถานะการพร้อมใช้งานของ Docker แถบที่สองรูปพังงาเรือคือ สถานะการพร้อมใช้งานของ Kubernetes

“Kubernetes Actived”

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 ด้วยวิธีอื่นๆต่อไป.

อ่านต่อเพิ่มเติม

Phanupong Permpimol
Follow me