前言

在jenkins的基础上,设计CICD流程。具体流程如下:

  1. 拉取代码
  2. 代码扫描
  3. 构建镜像并推送到仓库
  4. 部署到k8s
  5. 消息通知

一、流程说明

1.1 环境说明

两套k8s环境,分为开发测试环境(dev)和生产环境(pro),同时,镜像仓库也分为两套。两套环境都能连接上git和jenkins。
注:dev和pro需在物理上进行隔离。

1.2 流程

需创建两条流水线:
dev流水线:研发编码完成后,将代码提交到仓库,触发构建流程,先进行代码扫描,再生成镜像并推送到dev仓库,自动部署到开发测试环境。
所有功能测试验证通过后。
pro流水线:运维手动触发流水线,将dev仓库的镜像推送到pro仓库,部署到线上环境。
注:上线前需考虑预发布,比如蓝绿部署,金丝雀部署等,后续再进行完善。

二、项目结构

创建一个新工程,以单体flask应用为例,需要包含以下文件。
├── Dockerfile # 镜像构建文件
├── deploy
│   ├── dev # dev环境部署文件
│   └── pro # pro环境部署文件
└── tests

三、kubesphere权限管理

在k8s上安装kubesphere,用于权限管理。
层次分为 企业空间--项目

五、FAQ

1.每次流水线都需要重新创建jenkins agent,比较慢。


这杯可乐有点甜
64 声望3 粉丝

研发工程师