示例项目演示持续部署
功能介绍
CODING 持续部署用于把控构建之后的项目发布与部署交付流程。能够无缝对接上游 Git 仓库、制品仓库以实现全自动化部署。在稳定的技术架构、运维工具等基础上,具备实现蓝绿发布,灰度发布(金丝雀发布),滚动发布,快速回滚等能力。
将在下文以一个简单的 Flask App 为例,演示如何基于 CODING CD 快速实现持续部署。在开始之前,请确保您已了解 CODING 持续部署的基础概念。
配置云账号
运维人员可以在 CODING 页面右上角头像下拉菜单【团队管理】->【部署设置】->【云账号】页面管理云账号。
添加 Kubernetes 云账号到 CODING 系统,本示例使用 Kubeconfig 认证方式。
点击确定,等待云账号验证(部署控制台会尝试确认账号的可用性,请耐心等待验证完成):
配置应用
成功添加云账号后,进入 CODING 部署控制台创建应用。
点击导航栏【应用】->【创建应用】,输入名称 “flaskapp” 。
新建应用表单字段解释:
字段 | 是否必填 | 说明 |
---|---|---|
应用名 | 是 | 标识应用的唯一 ID,创建后不支持变更 |
应用描述 | 否 | 应用描述信息 |
云服务 | 是 | 目前支持 Kubernetes 和 腾讯云服务器两种云服务类型 |
如果想在 cd-demo 项目中提交发布单执行此应用的发布流程,需要把 flaskapp 这个应用与上文中的 cd-demo 项目进行关联。
可以在 CODING 页面右上角头像下拉菜单【团队管理】->【部署设置】页面,找到 flaskapp ,点击【绑定】:
配置部署流程
接下来创建部署流程,在应用列表点击 “flaskapp” 进入应用详情页,点击【部署流程】进入部署流程配置页面,再点击【创建】创建部署流程,类型选择 “部署流程”,部署流程名称输入 “deployTesting”。
进入部署流程配置页面,在开始配置部署阶段之前,可以为此流程设定:
- 流程的执行选项(在此示例中我们保持默认即可)
- 启动流程所需的制品包(在此示例中我们设置一个 Docker 镜像作为启动所需的制品包)
- 启动流程的自动触发器(在此示例中我们设置当项目内的 CODING Docker 仓库有新 Docker 镜像版本的时候自动触发启动部署流程)
- 启动流程所需的额外参数(在此示例中我们不需要额外的参数)
配置流程启动所需制品
此处配置的制品(Docker 镜像)将会被自动触发器和后续阶段引用。
配置 CODING 制品库镜像自动触发
绑定启动所需制品
表单项选中 flaskapp-image
的含义是将启动所需制品
配置的制品(Docker 镜像)作为部署流程触发器,当制品(Docker 镜像)有版本更新时,自动触发部署流程执行。
配置 Deploy(Manifest)Deployment 阶段
image
字段填写 docker 镜像的全路径;需要绑定的制品
处选择 flaskapp-image
进行绑定,指定 Kubernetes 集群使用 启动所需制品
处配置的制品(Docker 镜像)进行部署。
⚠️ 若 CODING Docker 仓库的访问权限不是完全公开,需要在 manifest 文件中配置 imagePullSecrets。阅读更多:《部署 Kubernetes 资源时如何拉取私有库镜像?》。
配置 Deploy(Manifest)Service(LoadBalancer 类型)阶段
继续添加阶段用于部署 LoadBalancer 类型的 Service:
自动触发部署流程执行
运维人员完成上述配置后,开发更新项目代码即可将应用自动发布到 Kubernetes 集群,在基础设施页面查看信息确认应用发布成功。
服务组信息:
负载均衡器信息:
负载均衡器页面右下角显示的 IP 即为负载均衡器暴露的外网 IP,点击 IP 即可访问 flaskapp 服务。
手动提交发布单
此外,开发人员也可以在项目内手动提交发布单。
发布成功后,点击发布单查看发布详情:
更多功能
查看基础设施信息
基础设施页面展示了运行环境的健康状况以及 Deployments 和实例的元数据信息。在集群页面,可以对资源进行伸缩容、禁用和回滚等操作作为部署服务的控制台,实现集群管理。
左侧的过滤器可对所有服务进行筛选展示,支持字符串搜索,或者根据 region、stack 和 status 等特定属性进行过滤。
中间区域展示所有部署服务,图中绿色的小滑块表示单独的实例(如腾讯云 CVM 实例、单个 Kubernetes Pod),滑块的个数对应实例的副本数。实例从属于某个服务组,服务组又从属于集群。
负载均衡器信息:
调整 Pod 实例数量
在集群详情页右侧点击 “Deployment Actions” 可对集群进行伸缩容、回滚、以 JSON 格式编辑集群配置等操作,这里以伸缩容为例。
- 在对话框中填写调整信息(此处将 Pod 实例数量由默认的 2 调整为 3)
- CODING CD 调用 Kubernetes 接口执行扩容操作
- 最后查看 Kubernetes Pods 信息可以看到扩容成功(绿色小滑块个数从 2 变为 3)
查看 Pod 日志
在实例列表中选择 Pod 实例查看详情,在右侧信息栏点击【Console Output(Raw)】可以查看 Pod 日志:
直接在控制台创建服务组
除了通过部署流程发布应用,CODING 控制台支持在页面直接创建服务组。进入【基础设施】页面,点击【集群】->【创建服务组】,在弹出框中选择 Kubernetes 类型,最后在 Manifest 配置页填写服务组信息:
点击【创建】,创建成功后即可看到服务组信息:
负载均衡器和安全组也支持以同样的方式创建。
相关资料
点击访问本示例使用的项目代码地址。
CODING + Kubernetes 持续部署
CODING + Serverless 持续部署
