รัน Kubernetes บน Docker Desktop
Kubernetes ตอนที่ ๒
บทความนี้เป็นตอนที่ ๒ ต่อเนื่องมาจาก ตอนที่ ๑
ในบทความนี้ เราจะรันคำสั่งของ Kubernetes ไปพร้อมๆกับเนื้อหา จะรันคำสั่ง Kubernetes ได้ เราก็ต้องมี Kubernetes ให้เราต่อเข้าไปก่อน ทางเลือกที่ไม่เสียเงินคือ หนึ่ง ใช้ Online Playground และ สอง ใช้ Docker Desktop ตัวอย่างด้านล่างเป็นแบบที่สอง
ติดตั้ง Kubernetes บน Docker Desktop
- คลิกที่ไอคอน ปลาวาฬแบกตู้คอนเทนเน่อร์
- เลือก
Settings
> เลือกKubernetes
> เลือกEnable Kubernetes
และกดApply
3. ตอนนี้ Docker Desktop จะสร้างไฟล์คอนฟิกเพื่อใช้ต่อเข้าไป Kubernetes ใน Home ของยูสเซอร์นั้นๆ ตัวอย่างของผมเป็น c:\User\noppadon.s\.kube\config
4. ติดตั้งข้อมูล kubectl
ตามลักษณะการใช้งานได้จาก kubernetes.io
คนที่ใช้ cmd.exe ให้เลือกติดตั้งสำหรับ Windows ส่วนคนที่ใช้ Windows Subsystem for Linux (WSL) หรือ Linux ให้เลือกติดตั้งสำหรับ Linux ผมเองก็ใช้แบบนี้
kubectl
เป็นแค่ Executable Binary ไฟล์นึงเท่านั้น ถ้าเราดาวน์โหลดและวางไว้ใน Search Path เช่น/usr/bin
หรือc:\windows\system32
ก็เพียงพอสำหรับการติดตั้งแล้ว (จะมีเรื่อง Versioning Compatibility Policy แต่เอาไว้ว่ากันตอนหลัง)
5. สำหรับคนที่ใช้ WSL ให้ Copy ไฟล์ในขั้นตอนที่ 3 จาก Windows Home มาไว้ใน Linux Home ด้วยคำสั่ง
ถ้ารันคำสั่งที่สองแล้ว Error เป็นไปได้ว่ามีไฟล์ .kube/config อยู่ก่อนแล้ว แนะนำให้ back up ไฟล์เดิมก่อนด้วยคำสั่ง
cp .kube/config .kube/config.0
$ cd ~
$ mkdir .kube
$ cp /mnt/c/Users/noppadon.s/.kube/config .kube/
6. ลองรันซักคำสั่งสองคำสั่ง
ดูข้อมูลเบื้องต้นของ Kubernetes Cluster
$ kubectl cluster-info
Kubernetes master is running at https://kubernetes.docker.internal:6443
KubeDNS is running at https://kubernetes.docker.internal:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxyTo further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
ลิสต์เครื่อง Server ใน Kubernetes Cluster (ของเราจะมีเครื่องเดียวเพราะใช้ Docker Desktop)
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker-desktop Ready master 168m v1.14.8
ตอนนี้สั้นๆ เตรียมความพร้อมสำหรับตอนหน้า ตอนหน้าเราจะมาทำความเข้าใจโครงสร้างและส่วนประกอบของ Kubernetes พร้อมกับการใช้งานพื้นฐานกันครับ