jenkinsk8s的CICD流程设计

Posted 这杯可乐有点甜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jenkinsk8s的CICD流程设计相关的知识,希望对你有一定的参考价值。

前言

在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,比较慢。

以上是关于jenkinsk8s的CICD流程设计的主要内容,如果未能解决你的问题,请参考以下文章

cicd与devops区别是啥?

Docker最全教程之使用TeamCity来完成内部CICD流程(十六)

Jenkins CICD代码构建发布流程

DEVOPS架构师 -- 06基于sharedLibrary进行CICD流程的优化

使用Drone+gitea配置自己的CICD流程

cicd 08--基于Jenkins的通用可扩展CICD架构