环境

代码托管:gitlab
CI:tekton
CD: tekton
pipline/task: 阿里云 serverless容器(spot实例且按秒计费)
应用:K8S

Flink 应用需要解决的是任务的灵活增加(通常以 maven module 的方式存在同一个git仓库中),不能依赖手工注册应用或.polaris-ci.yml自动注册
我的做法是以部署场景的方式指定模板并与仓库绑定,实现应用在操作时自动判断是否存在并自动注册;通过飞书卡片交互完成整个过程

工作流程

接入流程

应用如果为初此接入,build时会以交互式的方式提醒完成集群绑定,完成自动注册
各部门的flink仓库及其它编译构建参数已以场景的方式提前定义好,因此新的flink任务接入时只需要确认下是部署到哪个K8S集群


构建过程

镜像交付,选择分支,进行java编译及镜像构建



部署过程

部署过程中会判断是否已有版本在运行,如何在运行中,会先获取checkpoint并停掉任务(优化或强制)
获取到的checkpint地址会自动填充在飞书卡片中,由负责人自行决定是否使用该版本

部署成功后,会将对应的访问地址打印在卡片上,便于访问


停止任务

启动任务

该操作会先选择目标版本,再进行停、checkpoint确认、起
如果只是想对任务进行重启,该操作会同build一样先停止(并获取checkpoint),再提示部署;并不需要单独进行stop



如果想赏钱,可以用微信扫描下面的二维码,一来能刺激我写博客的欲望,二来好维护云主机的费用; 另外再次标注博客原地址 itnotebooks.com 感谢!

CI/CD(二)前端应用自动接入并实现前(对象存储)、后端分离部署(k8s)

环境 代码托管:gitlab CI:tekton CD: ArgoCD pipline/task: 阿里云 serverless容器(spot实例且按秒计费) 工作流程 接入流程 配置webhook接收MR/push事件...

阅读全文

CI/CD(四)VM 应用部署

环境 代码托管:gitlab CI:tekton CD: 代码自实现多批次部署 pipline/task: 阿里云 serverless容器(spot实例且按秒计费) 应用:ECS(ESS) 应用部署在弹性...

阅读全文

CI/CD(三)GPU 应用部署(k8s)

环境 代码托管:gitlab CI:tekton CD: ArgoCD pipline/task: 阿里云 serverless容器(spot实例且按秒计费) 应用:k8s GPU应用的特殊性在于单个镜像的大小在...

阅读全文

欢迎留言