一.jenkins、gitlab、nexus叢集資源部署
1.資源部署yaml清單均托管至github
2.克隆下載下傳部署清單
git clone https://github.com/CosmicBDry/k8s-manifest.git
3.檢視部署清單,apply以下清單完成部署
1)gitlab部署清單
2)jenkins部署清單
3)nexus部署清單
二.jenkins憑據、kubernetes代理節點配置、項目建構
1.建立需要的憑據
1)系統設定中找到憑據管理
2)找到jenkins容器sa使用者jenkins-admin對應的secret
3)列出secret對應的token值,為base64編碼,用于jenkins的憑據認證
4)将以上jenkins容器的sa賬戶token值粘貼至下面secret中,認證選擇secret文本方式
5)所有需要的憑據如下,nexus的docker倉庫、gitlab版本庫、jenkins的叢集sa等認證憑據
2.jenkins的代理節點添加
1)找到節點管理
2)配置雲代理節點
3)首先配置k8s叢集相關配置資訊
4)配置k8s叢集、jenkins服務等通路入口
5)配置jnlp容器代理節點
6)配置maven容器代理節點
将maven容器内部倉庫挂載到pvc卷,下次建構就不會重複下載下傳相同的依賴jar包等檔案,直接在本地倉庫找,
7)配置docker-in-docker容器代理節點,負責建構docker鏡像
挂載node節點的docker本地套接字檔案至docker-in-docker容器中,使得容器直接共享node節點的docker程序,完成docker鏡像的建構與推送
3.jenkins的springboot項目建構
1)配置參數化建構
2)pipeline腳本如下,托管至GitHub:
url:https://github.com/CosmicBDry/k8s-manifest/blob/master/devops/Jenkinsfile/springboot.pipeline
3)完成建立
三.準備好gitlab項目
1.檢視gitlab項目
2.springboot項目(通過idear快速建構springboot)
1)項目結構
2)pom.xml檔案定位包依賴
3)檢視源碼
檢視啟動類源碼
檢視控制類源碼
3.CICD項目
2)springboot容器部署清單
3)dockefile檔案
4)部署腳本
5)k8s叢集認證檔案
四.代碼釋出更新流程
1.檢視目前版本為v1.1.10
2.修改pom.xml本次更新版本為v1.1.20
3.java源碼更新
4.基于Jenkins的參數化建構,點選開始建構
5.控制台輸出
1)克隆gitlab的springboot項目代碼
2)進行maven建構編譯
3)拉取devops項目
4)docker鏡像的建構
5)是否将打好的docker鏡像推送至docker鏡像倉庫,這裡的鏡像倉庫用的是nexus
6)将建構好的鏡像推送至nexus鏡像倉庫
7)是否确認部署springboot項目至k8s叢集
8)開始部署
6.檢視nexus的docker鏡像倉庫,已成功推送鏡像
7.在k8s叢集檢視項目,springboot容器已成功啟動
8.浏覽器通路測試,已更新至v1.1.20版本,完成釋出更新