本文已歸檔到kubernetes-handbook中的【最佳實踐—使用Jenkins進行持續構建與發佈】章節中,一切內容以kubernetes-handbook中穩準。
我們基於Jenkins的CI/CD流程如下所示。
流程說明
應用構建和發佈流程說明。
- 用戶向Gitlab提交代碼,代碼中必須包含
Dockerfile
; - 將代碼提交到遠程倉庫;
- 用戶在發佈應用時需要填寫git倉庫地址和分支、服務類型、服務名稱、資源數量、實例個數等,確定後觸發Jenkins自動構建;
- Jenkins的CI流水線自動編譯代碼並打包成docker鏡像推送到Harbor鏡像倉庫;
- Jenkins的CI流水線中包括了自定義腳本,根據我們已準備好的kubernetes的YAML模板,將其中的變量替換成用戶輸入的選項;
- 生成應用的kubernetes YAML配置文件;
- 更新Ingress的配置,根據新部署的應用的名稱,在ingress的配置文件中增加一條路由信息
- 更新PowerDNS,向其中插入一條DNS記錄,IP地址是邊緣節點的IP地址。關於邊緣節點,請查看kubernetes-handbook中的【最佳實踐——邊緣節點配置】章節;
- Jenkins調用kubernetes的API,部署應用到kubernetes集羣中。
關於應用的更新、滾動升級、灰度發佈請留意Jimmy Song’s Blog中的後續文章或關注kubernetes-handbook的更新。