基于 K8s 做应用发布的工具那么多, 阿里为啥选择灰姑娘般的 Tekton ?( 五 )

如果 Git 改动里有一个应用 YAML 且该应用不存在,那么将渲染和生成 Tekton Pipelines 用来创建应用。如果 Git 改动里有一个应用 YAML 且该应用存在,那么将渲染和生成 Tekton Pipelines 用来升级应用。这里我们会根据应用定义 YAML 里的策略来做升级,比如做金丝雀发布、灰度升级。如果 Git 改动里有一个应用 YAML 且该应用存在且标记了“被删除”,那么将渲染和生成 Tekton Pipelines 用来删除应用。确认应用被删除后,我们才从 Git 里删除这个应用的 YAML。接下来,我们看一个创建应用的简单例子:

基于 K8s 做应用发布的工具那么多, 阿里为啥选择灰姑娘般的 Tekton ?

这个例子里面我们生成了一个 Tekton Pipeline。运行这个 pipeline 就可以将应用发布到 K8s 集群上。

用户操作的边界就是 Git,之后所有流程都是自动化的。那么整个过程中用户怎么得到反馈信息呢?这里主要有:

过程状态:Tekton Pipeline 本身就是 K8s API object,我们通过汇总 Status 将过程状态信息透出给前端。日志和监控:由于 Tekton Pipeline 启动的都是 K8s Pod,我们可以复用原有的基础设施去收集,然后做一遍汇总。经验总结

推荐阅读