Hello Minikube!

หลังจากที่เราได้ติดตั้ง Software ที่จำเป็นทุกอย่างลงไปแล้วตามบทความก่อนหน้า ต่อมาก็จะเริ่มทดลองสร้าง service ใน minikube กันเลย และก่อนที่เราจะเริ่มรัน minikube เรามาเซ็ทค่ากันก่อนดีกว่า

เลือก VM Driver ให้กับ Minikube

ขั้นตอนนี้เป็นการเลือกว่าจะให้ minikube รันอยู่บน virtual machine ไหน โดย driver จะมีหลากหลายให้เลือกซึ่งก่อนหน้านั้นเราลง VirtualBox กับ Docker ไป ซึ่งเราอยากจะให้ค่าเริ่มต้นในการเริ่ม minikube ครั้งนี้เป็น VirtualBox ครับ

minikube config set vm-driver virtualbox

เท่านี้ก็เสร็จเรียบร้อย

ซึ่งหากใครไม่อยากใช้ virtualbox แต่จะเลือกใช้ docker เลยก็ได้เช่นกัน

minikube config set vm-driver docker

สร้าง Minikube Cluster

ขั้นตอนนี้คือการสร้าง cluster ขึ้นมาด้วยคำสั่ง

minikube start

เราสามารถเปิด Dashboard ของ Kubernetes ขึ้นมาดูได้ด้วยคำสั่ง

minikube dashboard

หลังจากนั้นตัว browser เราก็จะเด้งขึ้นมาและเปิด Dashboard ครับ

เริ่มสร้าง Deployment กัน

ขั้นตอนนี้เป็นการสร้าง Deployment เรามาทดลองด้วยการสร้างง่ายๆจาก image ของทาง Google

kubectl create deployment hello-minikube --image=gcr.io/google_containers/echoserver:1.4

คำสั่งนี้เป็นการสร้าง deployment ที่ชื่อว่า hello-minikube ด้วย image จาก gcr.io/google_containers/echoserver เวอร์ชัน 1.4

  • ดู deployment ด้วยคำสั่ง
kubectl get deployments

ผลลัพธ์จะออกมาดังนี้

NAME             READY   UP-TO-DATE   AVAILABLE   AGE
hello-minikube   1/1     1            1           1m
  • ดู Pod ด้วยคำสั่ง
kubectl get pods

ผลลัพธ์จะออกมาดังนี้

NAME                              READY   STATUS    RESTARTS   AGE
hello-minikube-5fb76bdb6f-7vb5t   1/1     Running   0          17m

สร้าง Service

ปกติแล้ว Pod จะสามารถเข้าถึงด้วย internal IP ใน Kubernetes cluster โดยหากเราอยาก container ที่ชื่อว่า hello-minikube สามารถเข้าถึงได้จาก external IP หรือ IP ที่อยู่นอก VM เราก็จะต้องทำการ expose Pod เป็น Kubernetes Services

kubectl expose deployment hello-minikube --type=NodePort --port=8080

สามารถตรวจสอบ service ได้จากคำสั่ง

kubectl get services

ผลลัพธ์จะออกมาดังนี้

NAME             TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE
hello-minikube   NodePort    10.100.2.75   <none>        8080:30508/TCP   24m
kubernetes       ClusterIP   10.96.0.1     <none>        443/TCP          48m

เราสามารถทดสอบเข้าถึง service ที่สร้างขึ้นมาด้วยคำสั่ง

minikube service hello-minikube

ตัว Browser เราก็จะเด้งขึ้นมาและสามารถดูข้อมูลที่ส่งกลับมาจากตัว Service ได้

หรือสามารถใช้คำสั่ง

minikube service hello-minikube --url

เพื่อดู endpoint ที่สามารถ access เข้า service นั้นๆได้เลย