9-16 1 views
代码托管:gitlab
CI:tekton
CD: tekton
pipline/task: 阿里云 serverless容器(spot实例且按秒计费)
应用:K8S
Flink 应用需要解决的是任务的灵活增加(通常以 maven module 的方式存在同一个git仓库中),不能依赖手工注册应用或.polaris-ci.yml自动注册
我的做法是以部署场景的方式指定模板并与仓库绑定,实现应用在操作时自动判断是否存在并自动注册;通过飞书卡片交互完成整个过程
应用如果为初此接入,build时会以交互式的方式提醒完成集群绑定,完成自动注册
各部门的flink仓库及其它编译构建参数已以场景的方式提前定义好,因此新的flink任务接入时只需要确认下是部署到哪个K8S集群
部署过程中会判断是否已有版本在运行,如何在运行中,会先获取checkpoint并停掉任务(优化或强制)
获取到的checkpint地址会自动填充在飞书卡片中,由负责人自行决定是否使用该版本
部署成功后,会将对应的访问地址打印在卡片上,便于访问
该操作会先选择目标版本,再进行停、checkpoint确认、起
如果只是想对任务进行重启,该操作会同build一样先停止(并获取checkpoint),再提示部署;并不需要单独进行stop