使用K8s部署 java 程序初試

 之前學習了spring cloud結合docker ,docker compose來部署項目,但使用docker compose也有很大的侷限性:對分佈式的支持很有限,需結合swarm等聯合使用,所以後邊轉而學習Kubenates.

    關於Kubenates是什麼,如何如何強大,這裏就囉嗦了,現在分享一下使用K8s部署spring boot程序的一個示例。

1. spring boot項目配置文件主要配置及說明:

  1.1 application.yml文件:


  項目中用到了mysql以及redis,mysql 和redis 也是使用k8s,由於k8s中的服務會自動根據服務名稱生成一些個環境變量,所以這裏的MYSQL-SERVICE_SERVICE_HOST,MYSQL-SERVICE_SERVICE_PORT分別對應mysql服務的clusterIp和端口。

 1.2 Dockerfile文件:

   

1.3 項目中使用的maven的docker插件,如圖:

   

1.4 如果項目沒什麼問題,通過命令打成jar包:

         mvn clean package -DskipTests=true docker:build

      

 查看生成的image:圖中第一就是我們生成的鏡像。

    

2. k8s ReplicationController 和Service配置:

   2.1 ReplicationController配置:

     

   通過命令創建rc: 

        

2.2 Service配置:

   

 同樣通過命令創建svc

2.3 通過命令 kubectl get pods查看程序對應pods的啓動情況:

      

   我們可以看到,status狀態是Running,我們也可以進入pod查看程序的啓動情況(這裏項目已經成功啓動,就不截圖了,日誌查看命令:kubectl logs -f {podName})

3. 本項目提供了一個index.html頁面供測試使用,我們可以通過Service暴露的nodePort端口訪問:

 


 通過測試,各項功能正常,部署成功。    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章