1、獲取springboot資源包
開發人員代碼運行本地沒有問題
本地打包代碼
以此執行clean、packages。
打包之后,在target目錄下,找到對應的“helloworld-0.0.1-SNAPSHOT.jar”包。
繼續測試jar包的可用性
由於生產環境的端口有沖突,現在將端口變更,重新修改下為8880.
[root@master springboot]# java -jar helloworld-0.0.1-SNAPSHOT.jar 運行項目
如下,測試正常,所運行的jar包無問題。
2、制作dockerfile鏡像
編寫dockerfile和准備文件
[root@master springboot]# docker build -t springb_hello:v1 .
[root@master springboot]# docker images |grep spring
springb_hello v1 1c43627e054c 57 seconds ago 603 MB
[root@master springboot]# docker run -itd -p 8999:8880 --name=test springb_hello:v1
59faa3b14f19292272909bd0a1c20649bbfbcd53a932d2662f5606ee909c7c33
[root@master springboot]# docker ps |grep springb_hello
59faa3b14f19 springb_hello:v1 "java -jar /data/s..." 22 seconds ago Up 21 seconds 0.0.0.0:8999->8880/tcp test
[root@master springboot]# curl 192.168.19.132:8999/name
觀察服務, 宿主機可以查看到相關服務。
如上所示,dockfiles生成的鏡像有效,可以推送到私有倉庫。
[root@master springboot]# docker tag springb_hello:v1 192.168.19.132:5000/springb_hello:v1
[root@master springboot]# docker push 192.168.19.132:5000/springb_hello:v1
The push refers to a repository [192.168.19.132:5000/springb_hello]
37e0f579e75d: Pushed
fa883cef017d: Pushing [=============================> ] 277.8 MB/384.5 MB
3、Kubernetes部署應用
Kubernetes部署deployment服務如下,
如下,測試正常。
自此,kubernetes服務部署成功,下面暴露服務給客戶端訪問。
[root@master springboot]# kubectl get pods -owide |grep springb
springb-1481755096-6gxhn 1/1 Running 0 3m 10.0.47.2 node1
[root@master springboot]# kubectl get svc springbservice
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
springbservice 10.254.142.108 <nodes> 8880:31473/TCP 3m
自此,完成了kubernetes部署springboot項目實例。