{%hackmd BJzAwtWvp %} # spring boot k8s Example 101 * 參考資料 [[Kubernetes]部署Spring Boot 應用程式到 Kubernetes|Deploy spring boot on Kubernetes(GKE)](https://medium.com/k8s%E7%AD%86%E8%A8%98/kubernetes-%E9%83%A8%E7%BD%B2spring-boot-%E6%87%89%E7%94%A8%E7%A8%8B%E5%BC%8F%E5%88%B0-kubernetes-deploy-spring-boot-on-kubernetes-gke-cdb87cf81038) [Day23 Kubernetes (Kubernetes on Docker Desktop & Pod Lifetime)](https://ithelp.ithome.com.tw/articles/10247441) [Kubernetes on Docker Desktop (Nginx Running on Pods)](https://www.youtube.com/watch?v=dyaEzaDS7NQ) 1. 使用spring initializer創立新的project,引入web、Actuator、DevTools  2. 打開pom檔設定包出jar檔的名稱  3. 寫一個測試的controller  4. 啟動localhost測試  5. 建立dockerfile  6. run 右側maven底下的clean,再接著run package就會產生如左側的target資料夾,其中就會有我們需要的jar檔  7. 申請並登入dockerhub,並到設定的security中產生token,以便安全登入  8. 開啟命令提示字元(cmd)輸入 ``` docker login -u [username] ```  9. 移動到專案位置確認有dockerfile並開啟cmd  10. 輸入docker build -t docker-demo .  11. 推送(push)鏡像檔(images)到DockerHub 輸入指令 ``` docker tag docker-demo '你的docker帳戶'/docker-demo docker push '你的docker帳戶'/docker-demo ```  12. 接著我們嘗試把本地的移除,重新拉剛剛推上去的images(鏡像檔)試試 移除輸入 ``` docker rmi "你的名稱"/docker-demo docker-demo ``` 查看列表發現已經移除  再輸入以下指令把剛剛推上去的拉下來,意思是直接run,如果沒有的話,把他拉下來 ``` docker run -p 8080:8080 [你的docker帳戶]/docker-demo ```  成功後就可以直接輸入網址試試看 http://localhost:8080//test-docker 13. 建立k8s需要的yaml設定檔 docker-k8s-demo-deployment.yaml ``` apiVersion: apps/v1 kind: Deployment metadata: name: docker-k8s-demo-deployment labels: app: docker-k8s-demo spec: replicas: 1 selector: matchLabels: app: docker-k8s-demo template: metadata: labels: app: docker-k8s-demo spec: containers: - name: docker-k8s-demo image: vincentkai/docker-demo env: - name: "PORT" value: "8080" ``` docker-k8s-demo-service.yaml ``` apiVersion: v1 kind: Service metadata: name: docker-k8s-demo-service spec: type: LoadBalancer selector: app: docker-k8s-demo ports: - protocol: TCP port: 60000 targetPort: 8080 ``` --- 如果使用GCP提供的GKE 14. 打開GCP找到Kubernetes Engine->叢集  點擊建立 未完............... --- 如果使用docker desktop的k8s 14. 打開docker desktop,到setting中的kubernetes中把它啟動,再開啟cmd輸入以下指定確認是否真的啟動了 ``` kubectl version --short kubectl get all ```  15. 首先在cmd中輸入以下指另,確認沒有目前任何資源 ``` kubectl get pod ```  16. 接著將剛剛寫好的兩個部屬yaml檔都推上去,並查詢是否成功。 輸入以下指令 ``` kebectl apply -f [部屬的檔案名稱] kebectl get pod kebectl get all ```  17. 在網址輸入http://localhost:60000/test-docker 測試是否正常 ###### tags: `k8s` `docker` `spring boot` `spring`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up