基於Kubernetes構建企業Jenkins CI/CD平台
1.藍綠發布
項目邏輯上分為AB組,在項目升級時,首先把A組從負 載均衡中摘除,進行新版本的部署。
B組仍然繼續提供 服務。A組升級完成上線,B組從負載均衡中摘除。
特點:
- 策略簡單
- 升級/回滾速度快
- 用戶無感知,平滑過渡
缺點:
- 需要兩倍以上服務器資源
- 短時間內浪費一定資源成本
2.灰度發布
灰度發布:只升級部分服務,即讓一部分用戶繼續用 老版本,一部分用戶開始用新版本,如果用戶對新版 本沒有什么意見,那么逐步擴大范圍,把所有用戶都 遷移到新版本上面來。
特點:
- 保證整體系統穩定性
- 用戶無感知,平滑過渡
缺點:
- 自動化要求高
k8s中的落地方式
3.滾動發布
滾動發布:
每次只升級一個或多個服務,升級完成 后加入生產環境,不斷執行這個過程,直到集群中 的全部舊版升級新版本。 特點:
- 用戶無感知,平滑過渡
缺點:
- 部署周期長
- 發布策略較復雜
- 不易回滾
4.發布流程
5在Kubernetes中部署Jenkins
mkdir k8s-ci/jenkins -p && cd k8s-cli/jenkins
rabc.yml
--- # 創建名為jenkins的ServiceAccount apiVersion