jenkins+maven+gitlab+harbor+k8s的 CI/CD
安裝k8s jenkins maven gitlab harbor 過程略過~
只寫配置jenkins和gitlab過程:
2.返回首頁 點選新建任務
3.配置jenkins專案
(1)寫好描述 主要是寫上專案名
(2)配置git地址
注:第一個紅框標起來的是git地址,是從gitlab上獲取的,首先登陸gitlab,如下圖,從這裡獲取
而第二個紅框標識的證書而是需要從jenkins初始頁面憑據新增的,首先點選jenkins首頁的憑據,依次點選
之後點選
型別選擇:
之後設定成如圖樣子,注意username要和登陸jenkins的使用者一樣,證書生成也不多說,在jenkins本機生成,貼上去即可,ID選項不用管,之後會自動生成一串ID:
設定好憑據後,回到建立jenkins專案的介面,選擇:
如果出現大片紅色報錯,沒關係,那一定是gitlab沒有配置jenkins的金鑰,去配置一下,首先開啟gitlab,點到相應專案中,再點選圖中位置,填寫好.ssh/id.rsa.pub中的內容即可:
再回到jenkins看看是否可以了呢,可以了就不會報一片紅~ 繼續下一步
(3)構建觸發器選擇基本預設,有別的需要可以自定義:
這個選項中的url之後會用到,需要配置到gitlab~
(4)接下來就是maven打包這裡,配置pom.xml的絕對路徑,然後輸入打包命令,將會自動完成:
(5) 接下來就是配置建立後的步驟:
新增shell,完成要完成的動作(根據自己需求來)
再新增一段ssh,通過這個把生成的包或者檔案傳到master並執行命令:
配置好點選儲存,這樣,jenkins就算完成了,接下來去到gitlab看下:
點到相應的專案中,配置url,這個url在jenkins配置的時候出現過,複製過來即可,儲存
配置好以後,拉到底下,我們測試一下:
出現這樣說明配置成功了:
這樣子整套CI/CD流程也就做完了。
測試:
寫部落格的這個專案我並沒有儲存,畢竟也是公司環境,所以我拿之前配置好的一個專案(專案名:docker)做下測試,記錄下成果:
首先我提交程式碼,看jenkins變化:
部署已經成功了,看下部署過程:
部署已經完成了,去機器上看下:
下圖可以看到這個pod映象是剛打出來的,v33版本
去harbor看下映象,是有的:
那麼我們發現一個問題,cicd是做好了,可是如果版本有問題,怎樣回滾呢,其實也是很好解決的,可以用k8s自己的rolling update機制去完成,不但可以回滾版本,還可以彈性伸縮pod數量。
首先先試一下回滾,檢視一下之前的版本:
讓我們用一條命令回滾到上一版本:
看下現在pod用的是否是上個版本的映象:
之前我們是v33版本,回滾到v32版本也是成功了,接下來說下怎樣回滾到指定版本:
通過一條 kubectl rollout undo deployment deploy名 --to-revision=2
指定版本前方所對應的數字即可。
接下來說如何彈性伸縮:
手動伸縮通過命令:kubectl scale deployment deploy名 --replicas=2
設定replicas數量即可,如圖:
自動部署詳見官方文件~