准備工作
- Jenkins已安裝
- Docker和K8s部署運行成功
- 代碼管理工具使用Git
最近公司項目使用Jenkins+Git+Docker+K8s進行持續化構建部署,這里筆者整理了一下構建部署的相關操作,以便留存查看。
項目和工具介紹
這里有兩個項目:前端和后台,同樣都是使用Git代碼管理工具,目前是使用所謂的微服務進行發布操作,結合Docker和K8s進行部署發布。
部署步驟
傳統的服務發布步驟:
- 拉取最新的代碼
- 使用ant或其他工具編譯項目代碼
- 將編譯的項目代碼(有些配置文件是不變的,需要覆蓋),打包上傳到tomcat或glassfish部署
- 重啟服務
而使用jenkins之后,我們只需要鼠標輕輕一點,即可完成1-4的操作;省時省力,縮短了我們的構建時間,使得錯誤率大大降低。其中jenkins還可以根據項目實際情況,進行定時構建。
jenkins詳細部署
新建項目-Genenral
我們首先新建一個自由風格的項目,設置項目的名稱,然后進行項目設置詳情基礎頁面,如圖
如上圖所示:在Gnenral中設置了項目的基本描述、構建結果保存以及參數化構建過程,其中[丟棄舊的構建]:是保存N次構建結果信息,而參數化構建,這里是直接獲取Git的分支進行構建。這里使用的是插件[Git Parameter]進行參數化構建,首次使用需安裝此插件。
丟棄舊的構建:即保存最近N次的構建結果,查看如圖
參數化構建:獲取Git分支進行構建部署,如圖
源碼獲取:Source Code Management
拉取最新的代碼信息,這里使用的工具是Git,配置具體如圖
這里配置了Git的URL地址以及使用的賬號信息,其次還有就是拉取的分支信息,Git工具默認使用Jenkins自帶的版本即可。
構建-Build
前端項目
這里執行構建的時候,前端項目使用的是shell執行命令,使用的命令如下
cd $WORKSPACE
yarn install --ignore-engines
yarn build
前端項目部署需要先執行此問題,具體的項目有不同的執行命令,如圖
后端項目
而一般后台,使用的是Maven進行構建的,編譯命令如下
clean install -U -Pbeta -e
如圖
Build-Post Steps
前面說過此項目是微服務搭建的,使用到了Docker和K8s,這里就用到了Docker。
先上圖:
這里使用Docker有三個步驟
- 創建image:Creat image,說明是使用哪個分支
- 推送image至服務器:Push image
- 刪除原來的image:Remove image
重啟服務
這里是使用Kubernetes進行服務的重啟和發布,命令如下
kubectl patch deployment 項目名稱 -p \
"{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"`date +'%s'`\"}}}}}"
具體執行命令信息可以參考運維或開發人員的腳本,如圖
至此,使用Jenkins+Git+Docker+K8s完成了項目的部署,接下來進行構建的時候,可以直接點擊[Build with Parameters]拉取不同的分支進行項目構建部署,如圖
這里只說明了的Docker和K8s如何配合Jenkins如何使用,更詳細的使用方法和命令可以自行百度