Kubernetes 云原生 CICD 部署管理系统
简介
Gops 系统是一个灵活功能强大、操作简洁的云原生 CICD 管理平台,即把持续集成和持续交付平台化,更利于各部门高效输出的一套运维自动化平台。
早期公司采用 Jenkins 实现 CICD,要求运维人员掌握 Jenkins、ansible、yaml 等技术才能维护,学习、维护成本高,新业务对接繁琐耗时长;如果公司没有运维人员,通过 gops 平台完全可以满足企业快速集成的目的,无需依赖专业的管理人员,同时公司存在多家公有云 K8s 及自建 K8s,为了快速实现对接,gops 完全采用平台化可 web 管理端管理对接配置, 由此我们自主开发高效的 CICD 系统,采用 Kubernetes api 部署管理发布任务,及实时获取容器状态等管理操作,完善的用户管理和权限控制,完全可交付给开发人员实现快速持续集成和持续交付的发布管理平台。
下面我们一起开始 Gops 云原生 CICD 部署管理系统使用吧。
部署基础配置
在开始持续集成和交付前,我们需要先对部署工具和部署的环境信息做一下配置,所有配置都是通过平台 Web 端配置,操作非常简单,包括项目构建语言及工具的配置(java、maven、go、php)、Harbor 镜像仓库、Kubernetes 集群、Gitlab 代码仓库认证信息等依赖配置。
Harbor 镜像仓库配置, 包括 Harbor 地址、用户名和密码, ci 编译后会把镜像自动上传到对应的产品线仓库, 为 cd 过程提供发布的镜像。
Kubernetes 集群配置,支持多个集群,例如生成环境和开发环境属于不同集群,可分别创建不同环境的集群,需要配置区别集群的名称例如[dev 环境]、[prod 环境],并配置对应集群 master 节点的 kubeconfig 文件,把该文件放到 Gops 平台集群的任意路径,配置好后可实时测试配置的是否正确。
Gitlab 代码仓库配置, 支持账号密码和 ssh 秘钥认证方式
编译工具配置, 需要在 gops 机器安装配置好对应的语言编译环境, 灵活简洁的配置,支持同语言不同版本的集成。
创建部署任务
以上配置好后,就可以创建对应的发布任务了, 部署任务支持 k8s 的常用配置,会自动生成对应的 service, 关联创建对应的 Deloyment。
选择对应产品线后,点击创建部署任务,根据项目实际配置对应参数,配置参考以 golang 项目为例:
配置好具体参数后,可以点击 yaml 查看渲染后的 Kubernetes yaml 文件信息, 可提供参考学习及配置核对。
CICD
编译: 点击部署任务 ci 按钮会拉取代码仓库相关信息,业务同学可以选择对应的提交记录进行构建
部署: 点击 cd 按钮会拉取镜像仓库对应镜像版本进行部署及回滚
部署完成后可以实时查看部署的结果及操作记录
以上就是 Gops 持续集成和交付的配置操作流程,是不是非常灵活、容易上手,不需要您掌握 ansible、jenkins 等开源工具技术,无需维护大量的 yaml 文件,只需要把精力投入到业务编码,cicd 交给 gops,为企业提高集成交付效率。
开源地址: https://github.com/zttheff/gops
评论