ถ้าพูดถึงเรื่อง DevOps เครื่องมือที่มักถูกพูดถึงและแนะนำให้นำมาใช้งาน
มักจะมี Docker และ Kubernetes เป็นสิ่งที่คล้ายกันมาก ๆ
ทั้งสองมีเป้าหมายเดียวกันคือ
ลดปัญหาเรื่อง compatibility ของระบบ
ลดปัญหาเรื่อง portability ของระบบ
ซึ่งเป็นความรับผิดชอบหลักของทีม development และ operation

โดยในบทความนี้เจะเน้นไปที่ Kubernetes

แต่ถ้าเราต้องการนำมาทดสอบหรือใช้งานบนเครื่องเรามันไม่ง่ายเลย
เพราะว่า Kubernetes นั้นต้องการมากกว่า 1 instance ในการเริ่มใช้งาน
คือหนึ่งสำหรับ master service สองสำหรับ discover service และสามสำหรับ node

แต่ถ้าจะใช้งานจริง ๆ ก็มีเครื่องมือช่วยคือ Minikube

โดยที่ Minikube เป็นเครื่องมือที่ทำให้ชีวิตนักพัฒนาง่ายขึ้น

ทำให้สามารถ run Kubernetes cluster บนเครื่องนักพัฒนาได้เลย
ดังนั้นมาลองใช้งานกันแบบพื้นฐานสุด ๆ กันหน่อย

ปล. การทดสอบทั้งหมดอยู่บน Mac OS นะ
ส่วนการติดตั้งดูจากที่นี่ได้เลย Installation
น่าเบื่อนิดหน่อยที่ต้องใช้พวก VirtualBox หรือ VMWare Fusion
เป็นบ้านให้ container ต่าง ๆ ที่จะสร้างขึ้นมา

มาเริ่มด้วยการสร้าง Kubernetes cluster กันดีกว่า

จากทำการตรวจสอบด้วยคำสั่ง

ในตอนนี้เรามี 1 node ทำงานแล้วนะ

จะรออะไรมาลองสร้าง Nginx container เล่นกันหน่อย

รวมทั้ง expose port ออกมาหน่อยนะ

kubectl run webserver --image=nginx:1.13 --port=80
kubectl expose deployment webserver --type=NodePort

โดยใน Kubernetes นั้นจะเรียกว่า Pod
ดังนั้นขอดูหน่อยสิว่าที่เราเพิ่งสร้างมานั้นมีจริงหรือเปล่า
ด้วยคำสั่ง

จากนั้นปัญหาคือ URL ของ web server ละ คืออะไร ?

โดยสามารถดูด้วยคำสั่ง

$minikube service webserver --url

ลองเข้าใชงานตาม url ได้ผลดังรูป

ยังไม่พอนะ ยังมี Dasdboard หน้าสวย ๆ ให้ใช้งานอีกด้วย

สามารถเข้าด้วยคำสั่ง

$minikube dashboard

แสดงผลดังรูป

ยังไม่พอนะ ยังมี proxy สำหรับการเข้าถึง

$kubectl proxy

จะทำการ start server มาให้ (Local ของเรานั่นเอง)
ทำให้เราสามารถเข้าถึงได้ง่ายขึ้น
แสดงรายชื่อ url ดังรูป

คำถามที่ตามมาคือ อยากเข้าไปใน container หรือ pod ทำอย่างไรดี ?

การใช้งานเหมือน docker เลยคือ

เมื่อทุกอย่างเรียบร้อยก็ทำการลบทิ้งไปซะ

$kubectl delete deployments --all
$kubectl delete pods --all

ปิดท้ายด้วยการ stop Minikube

$minikube stop

เพียงเท่านี้เราก็สามารถเริ่มต้น Kubernetes บนเครื่องเราได้แล้วนะครับ

ขอให้สนุกกับการ coding ครับ