前言
在jenkins的根底上,设计CICD流程。具体流程如下:
- 拉取代码
- 代码扫描
- 构建镜像并推送到仓库
- 部署到k8s
- 音讯告诉
一、流程阐明
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.