Untuk menjalankan springboot di container / pod kubernate kita memerlukan build image docker yang di push ke docker-registry
Berikut adalah command untuk melakukan build dan publish image ke docker.io
mvn clean package dockerfile:build dockerfile:push
Setelah di push make sure, image telah ter-created di hub.docker.io. contohnya pada repository berikut dimmaryanto93/springboot-k8s-example
System required:
Setelah semuanya terinstall, kita jalankan service minikube dengan perintah seperti berikut:
minikube start
Berikut outputnya:
😄 minikube v1.0.0 on darwin (amd64)
🤹 Downloading Kubernetes v1.14.0 images in the background ...
🔥 Creating virtualbox VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...
📶 "minikube" IP address is 192.168.99.109
🐳 Configuring Docker as the container runtime ...
🐳 Version of container runtime is 18.06.2-ce
⌛ Waiting for image downloads to complete ...
✨ Preparing Kubernetes environment ...
🚜 Pulling images required by Kubernetes v1.14.0 ...
🚀 Launching Kubernetes v1.14.0 using kubeadm ...
⌛ Waiting for pods: apiserver proxy etcd scheduler controller dns
🔑 Configuring cluster permissions ...
🤔 Verifying component health .....
💗 kubectl is now configured to use "minikube"
🏄 Done! Thank you for using minikube!
berikut perintahnya untuk merunning application springboot di kubernates:
kubectl run springboot-k8s-example --image=dimmaryanto93/springboot-k8s-example:0.0.1-SNAPSHOT --port=8080
Selanjutnya kita bisa check lewat kubernate-api, dengan perintah berikut:
kubectl get deployments
berikut outputnya:
NAME READY UP-TO-DATE AVAILABLE AGE
springboot-k8s-example 0/1 1 0 41s
Sekarang kita tinggal tunggu sampe statusnya READY, dan pastikan juga tidak ada error. selain itu juga kita bisa menggunakan ui (dashboard) dengan menggunakan command berikut:
minikube dashboard
Maka tapilanya akan seperti berikut:
Untuk mengakses service springboot kita perlu expose service-nya dengan perintah berikut:
kubectl expose deployment springboot-k8s-example \
--type=LoadBalancer \
--name=springboot-k8s-service-example \
--port=80 \
--target-port=8080
Setelah membuat service di kubernate, sekarang kita bisa view hasilnya dengan menggunakan perintahya seperti berikut:
minikube service springboot-k8s-service-example
berikut hasilnya: