Skip to main content

นำ Dockerimage ขึ้นไปยัง GKE

ก่อนที่เราจะนำ Docker image ขึ้นไป run ยัง GKE เราต้อง push Docker image ของเราขึ้นไปยัง registry ก่อน ในที่นี้เรากำลังจะใช้ Docker hub สำหรับเก็บ Docker image เพื่อให้ GKE pull Docker image นั้น ลงมา

ก่อนอื่น Register ไปยัง Docker hub กันก่อน 

https://hub.docker.com/

image.png

หลังจากนั้น build docker image ของเราใหม่ด้วย tag <Username>:<ชื่อ image>

docker build -t <username>/<imagename> .

image.png

จากนั้นทำการ login docker hub

docker login

image.png

หลังจากนั้นเราสามารถ push image ได้จาก 

docker image push <ชื่อimage>

image.png

แค่นี้ Image ของเราก็ขึ้นไปอยู่บน docker hub แล้ว !

image.png

หลังจากนั้นให้เราจะทำการ deploy docker image ขึ้น GKE กัน

เมื่อเราสร้าง cluster Kubernetes กันแล้ว หลังจากนี้เราจะทำการนำ docker image ที่เราอัพขึ้นไปยัง Docker hub ลงมายัง cluster ของเราและ deploy ของเราด้วย docker image นั้น

โดยใช้ command นี้

kubectl create deployment myapp --image=<username>/myapp

image.png
เมื่อเราสร้าง deployment Kubernetes จะทำการสร้าง pod ทำหน้าที่คล้ายกับ container ที่เก็บไฟล์นั้น ๆ ไว้

หลังจากนั้นเราสามารถดู pod ได้จาก 

kubectl get pods

image.png

เพียงเท่านี้ Service ของเราก็ขึ้นไป Run บน GKE แล้ว งั้นเรามาลองเข้า service ของเรากันเลยดีกว่าาาาา


แต่ !!!!!!


Service ของเรานั้นไม่สามารถเข้าถึงได้จากภายนอก เพราะยังไม่มี external ip ที่จะทำให้เราเข้าถึง service ของเราได้ เพราะงั้นเราต้องทำการเปิด external ip ให้กับ service ของเราซะก่อน

เมื่อเรา Run service ของเราใน GKE แล้ว เราสามารถเปิด external ip ได้จาก

kubectl expose deployment myapp --type LoadBalancer --port 80 --target-port=<APP_PORT>

image.png

เมื่อเรา expose แล้วเราจะสามารถดู service และ ip นั้น ๆ  ที่ run อยู่ได้โดย

kubectl get service <SERVICE_NAME>

image.png

หลังจากนั้น API ของเราก็สามารถเข้าดูได้จาก external-ip ได้แล้ว

image.png