1. 程式人生 > 實用技巧 >Jenkins BlueOcean 多分支 部署 Kubernetes 應用

Jenkins BlueOcean 多分支 部署 Kubernetes 應用

在實際的項⽬ 中,往往⼀個程式碼倉庫都會有很多分⽀的,⽐如開發、測試、線上這些分⽀都是分開的,⼀般情況下 開發或者測試的分⽀我們希望提交程式碼後就直接進⾏ CI/CD 操作,⽽線上的話最好增加⼀個⼈⼯⼲預 的步驟,這就需要 Jenkins 對程式碼倉庫有多分⽀的⽀持。這裡我們使用 BlueOcean 來完成此處的 CICD 。

外掛安裝

登入 Jenkins Web UI -> 點選左側的 Manage Jenkins -> Manage Plugins -> Available -> 搜尋查詢 BlueOcean -> 點選下載安裝並重啟

建立新 pipeline

安裝完成後,我們可以在 Jenkins Web UI ⾸⻚左側看到會多⼀個 Open Blue Ocean 的⼊⼝,我們點 擊就可以開啟

點選開始建立⼀個新的 Pipeline,我們可以看到可以選擇 Git、Bitbucket、GitHub,我們這⾥ 選擇 GitHub,

可以看到這⾥需要⼀個訪問我們 GitHub 倉庫許可權的 token,在 GitHub 的倉庫中建立⼀個 Personal access token:

將⽣成的 token 填⼊下⾯的建立 Pipeline 的流程中,然後我們就有許可權選擇⾃⼰的倉庫,包括下⾯需要構建的倉庫,⽐如我們這⾥需要構建的是 jenkins-demo 這個倉庫,然後建立 Pipeline 即可:

Blue Ocean 會⾃動掃描倉庫中的每個分⽀,會為根⽂件夾中包含Jenkinsfile的每個分⽀建立⼀個 Pipeline,⽐如我們這⾥有 master 和 dev 兩個分⽀,並且兩個分⽀下⾯都有 Jenkinsfile ⽂件,所以建立完成後會⽣成兩個 Pipeline。

兩個檔案中 k8s.yaml 檔案中 namespace 不一樣,用來區分不同的分支

構建結果

~]# kubectl  get pod -n default  -o wide # master 分支部署到 default 分支
NAME                                      READY   STATUS    RESTARTS   AGE    IP             NODE    NOMINATED NODE   READINESS GATES
mvnweb-demo-8f8d69455-l4s4c               1/1     Running   0          5m5s   10.244.1.3     node2   <none>           <none>
~]# kubectl  get pod -n dev -o wide
NAME                                   READY   STATUS    RESTARTS   AGE     IP           NODE    NOMINATED NODE   READINESS GATES
mvnweb-demo-8ef7d50-578945f7fb-cr6kv   1/1     Running   0          5m40s   10.244.1.2   node2   <none>           <none>

{{uploading-image-92142.png(uploading...)}}