前言

在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

三、jenkins配置

3.1 装置

通过docker装置,将数据目录挂载到本地门路。

docker run \  -u root \  --rm \  -d \  -p 8080:8080 \  -p 50000:50000 \  -v jenkins-data:/opt/jenkins_data \  -v /var/run/docker.sock:/var/run/docker.sock \  jenkinsci/blueocean

3.2 装置plugins

进入【系统管理】-【插件治理】,装置以下组件。
docker-build-step
SonarQube Scanner for Jenkins
Kubernetes Continuous Deploy Plugin

3.3 配置凭据

3.3.1 github

进入【凭据】-【零碎】-【全局凭据】,点击【增加凭据】,抉择类型【Username with password】。

注:以后采纳账号密码的模式,倡议采纳token的形式来配置github的凭据。

3.3.2 harbor

3.3.3 sonarqube

生成sonarqube的token。

增加【secret text】凭据。

3.3.4 k8s
3.3.5 音讯推送

四、流水线

4.1 dev流水线

dev流水线的流程如下:代码拉取-代码扫描-镜像构建及推送-部署

登录jenkins,【新建工作】,抉择【构建一个自在格调的软件我的项目】。

4.1.1 代码拉取

点击【源码治理】,抉择git,填入仓库地址,抉择GitHub的凭证。默认分支为master,批改为以后开发的分支。

4.2 pro流水线

镜像降级-部署

五、FAQ

1.