OMG 自建容器平台
CI 部分俗套的不可避免的需要通过 Gitlab 或者 Jenkins 来做
那么我们重点就是解决在新建应用和更新应用上, 怎么做到尽量少的操作步骤
我们的做法就是通过 Helm 来管理应用, 使得每个应用都是一个软件包, 在配置文件中包装好需要一步步配置的步骤, 如应用配置, 服务配置, 路由配置等
针对更新, 当然可以做到在 CI 的时候, 调用后端的 API 直接部署到线上, 暴力的方式就是 Jenkins 来做
如果 CI 单纯的只做 CI 的事情, 就是构建镜像和 Helm 软件包, 那么 CD 部分就是在平台页面上操作
TIP
需要管理 Jenkins 和 Gitlab
依赖
- helm
- Gitlab
- Harbor(或者阿里云镜像仓库)
- Jenkins
约定
- 集群中的 namespace 的名称为: 项目名称
- 用户代码仓库中包含配置好的Jenkinsfile
- 或者代码仓库中包含配置好的gitlab-ci.yml
- 用户项目所在 Jenkins 的目录: 产品名称/项目名称/环境名称/item_name
使用步骤
系统管理后台
- 新增用户组 新增产品 新增 Jenkins 新增项目 新增 Gitlab 项目
- Gitlab 项目中新增开发者用户
- Jenkins 新增凭证(开发者用户)使得能够访问 Gitlab 项目
容器管理后台
- 新增集群 新增应用环境 新增仓库
后端运行
python3 manage.py runserver 0.0.0.0:8000