1. 程式人生 > >jenkins+maven+gitlab+harbor+k8s的 CI/CD

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數量即可,如圖:

自動部署詳見官方文件~