![]()
ถ้าพูดถึงเรื่อง 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 กันดีกว่า
[gist id="bdd999fb1e17219222351b676ca63cdc" file="1.txt"]
จากทำการตรวจสอบด้วยคำสั่ง
[gist id="bdd999fb1e17219222351b676ca63cdc" file="2.txt"]
ในตอนนี้เรามี 1 node ทำงานแล้วนะ
จะรออะไรมาลองสร้าง Nginx container เล่นกันหน่อย
รวมทั้ง expose port ออกมาหน่อยนะ
[code]
kubectl run webserver --image=nginx:1.13 --port=80
kubectl expose deployment webserver --type=NodePort
[/code]
โดยใน Kubernetes นั้นจะเรียกว่า Pod
ดังนั้นขอดูหน่อยสิว่าที่เราเพิ่งสร้างมานั้นมีจริงหรือเปล่า
ด้วยคำสั่ง
[gist id="bdd999fb1e17219222351b676ca63cdc" file="3.txt"]
จากนั้นปัญหาคือ URL ของ web server ละ คืออะไร ?
โดยสามารถดูด้วยคำสั่ง
[code]
$minikube service webserver --url
[/code]
ลองเข้าใชงานตาม url ได้ผลดังรูป
ยังไม่พอนะ ยังมี Dasdboard หน้าสวย ๆ ให้ใช้งานอีกด้วย
สามารถเข้าด้วยคำสั่ง
[code]
$minikube dashboard
[/code]
แสดงผลดังรูป
ยังไม่พอนะ ยังมี proxy สำหรับการเข้าถึง
[code]
$kubectl proxy
[/code]
จะทำการ start server มาให้ (Local ของเรานั่นเอง)
ทำให้เราสามารถเข้าถึงได้ง่ายขึ้น
แสดงรายชื่อ url ดังรูป
คำถามที่ตามมาคือ อยากเข้าไปใน container หรือ pod ทำอย่างไรดี ?
การใช้งานเหมือน docker เลยคือ
[gist id="bdd999fb1e17219222351b676ca63cdc" file="4.txt"]
เมื่อทุกอย่างเรียบร้อยก็ทำการลบทิ้งไปซะ
[code]
$kubectl delete deployments --all
$kubectl delete pods --all
[/code]
ปิดท้ายด้วยการ stop Minikube
[code]
$minikube stop
[/code]
เพียงเท่านี้เราก็สามารถเริ่มต้น Kubernetes บนเครื่องเราได้แล้วนะครับ
ขอให้สนุกกับการ coding ครับ