网易首页 > 网易号 > 正文 申请入驻

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

0
分享至

导读:近年来,越来越多专门给 Kubernetes 做应用发布的工具开始缤纷呈现,帮助大家管理和发布不断增多的 Kubernetes 应用。在做技术选型的时候,我们需要给业务选择一个最好的工具、最稳的底座。那么又该如何比较和衡量这些工具呢?本篇文章中阿里云技术专家邓洪超将会和大家分享自己独特的体验,帮助读者初步了解 Tekton 项目。
背景

近年来,伴随着云原生社区 (CNCF Community) 的迅猛发展,越来越多的应用跑在了 K8s 上。慢慢地,大家的关注点也逐渐从资源层转移到应用层。一方面,我们看到在有越来越多新的 K8s Operators 出现,用来自动化应用的部署和运维。另一方面,随着各路大型云厂商入场,K8s 服务以后就会像家里的水和电一样随心所欲可用,自己再去动手搭建已经没有了意义。于是人们提出了“K8s 将会消失”,这其实指的是以 k8s 为底座来面向全世界任何一个云以及数据中心交付应用,会是接下来的必然趋势。关于这个趋势,我们团队的同学专门写过一篇关于《K8s 多集群/多云技术与发展》的文章,欢迎大家进一步阅读。

相关链接:

  • Why Kubernetes will disappear: https://levelup.gitconnected.com/why-kubernetes-will-disappear-10ffcfb39f01
  • 云原生时代, Kubernetes 多集群架构初探: https://www.infoq.cn/article/sbwSX8ypxgID2-SB723K
Tekton 项目有什么特殊之处?

基于 k8s 做应用发布的工具,我们有着许多选择,其中不乏业界知名项目 Jenkins X、Spinnaker,也有创业公司出来的小工具比如 Argo Rollout。不过在这其中,我们团队现在主要使用的是 Tekton。这里也有个重要的背景,那就是我们团队要面向多云/多集群交付的,是复杂有状态的阿里巴巴中间件应用。这因素我马上会详细介绍到。

可能还有部分同学还不了解 Tekton 项目是什么?这里我先简单介绍下。Tekton 是一款 k8s 原生的应用发布框架,主要用来构建 CI/CD 系统。它原本是 knative 项目里面一个叫做 build-pipeline 的子项目,用来作为 knative-build 的下一代引擎。然而,随着 k8s 社区里各种各样的需求涌入,这个子项目慢慢成长为一个通用的框架,能够提供灵活强大的能力去做基于 k8s 的构建发布。

可能不少同学会感到疑惑,有这么多功能丰富、声名远扬的项目,为什么我们选择了灰姑娘般的 Tekton?客官别急,容我们先来梳理一下这个平台底座的要求:

  1. 1. K8s 原生:流程和概念,尤其是面向用户的部分,需要融入到 k8s 体系中。此外,最好能跟生态里的其他工具互相连通,成为生态的一环。
  • 举个例子:Spinnaker 这个项目是很强大的,但它的设计初衷,是面向公有云进行应用交付用的(以虚拟机为运行时),Kubernetes 只是它所支持的一种 Provider,并且 Provider 还得用 Groovy 写集成插件。这就使得它跟 K8s 的协作是比较别扭的。
  1. 1. 灵活扩展:基本上所有工具都不能够满足我们复杂多变的业务需求。这些工具架构本身需要提供足够灵活的扩展性,来快速定制实现所需功能。
  • 举个例子:Argo Rollout 本身的应用发布,是跟 K8s 的 Workload (比如 Deployment )耦合在一起的。这就不是一个很具备扩展性的做法。最简单的例子:对于复杂有状态应用来说,大多都是用 Operator 或者 OpenKruise 管理的,这时候 Argo Rollout 该怎么办呢?
  1. 1. 轻量级:工具本身不能做得“太重”,即不能有太多的组件或太多的概念。小而轻的项目初期易上手、中期易交付、后期易维护。
  • 举个例子:Spinnaker 虽然功能强大,但是这也就意味着它把所有的事情都帮你做了。而我们团队要发布的应用是复杂有状态的中间件应用, 是需要我们写自己的 Rollout Controller 来控制发布流程的。这个要基于 Spinnaker 来做,还得大量做二次开发了,于是原有的众多功能和组件反而成了负担。
  1. 1. 白盒化:运行中的管道、步骤等需要“白盒化”,即对外暴露状态。这样才能跟前端工具联通,给用户展示实时状态信息。
  • 举个例子:Tekton 其实只提供 Pipeline 这个一个功能,Pipeline 会被直接映射成 K8s Pod 等 API 资源。而比如应用发布过程的控制,灰度和上线策略,都是我们自己编写 K8s Controller 来实现的,这个可控度其实是我们比较喜欢的。另外,这种设计,也就意味着 Tekton 不会在K8s 上盖一个”大帽子“,比如我们想看发布状态、日志,就等是直接通过 K8s 查看这个 Pipeline 对应的 Pod 的状态和日志,不需要再面对另外一个 API。

接下来我们在几个候选项目之间做比较:

可以看到,Tekton 在灵活实现定制化功能、K8s 原生性、以及社区里的受欢迎程度等方面可以说还是优势明显的。这也是为什么,我们团队在负责阿里中间件复杂有状态应用的交付工作时,选择了在 Tekton 之上构建应用交付体系。

实践案例:使用 Tekton 自动化应用发布

接下来我们将分享使用 Tekton 自动化应用发布的实践案例。

一个基于 Tekton 的应用发布平台的架构如下:

这里的流程大致是:

  1. 1. 用户把需要部署的应用先按照一套标准的应用定义写成 YAML 文件(类似 Helm Chart);
  2. 2. 用户把应用定义 YAML 推送到 Git 仓库里;
  3. 3. Tekton CD (一个 K8s Operator) 会监听到相应的改动,根据不同条件生成不同的 Tekton Pipelines;

Tekton CD 里的操作具体分为以下几种情况:

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

接下来,我们看一个创建应用的简单例子:

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

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

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

上面给大家介绍了 Tekton 项目的基本原理、以及使用 Tekton 做底座进行应用发布的主要流程。在这里总结一些经验体会:

  1. 1. 复用开源技术。少去做造轮子的事情就意味着能够多专注更具价值的事情;
  2. 2. 不要只着眼于眼前的需求,还要关注定制化和扩展性,多考虑未来的场景;
  3. 3. K8s 应用层接下来将会加速发展。帮助开发者在 k8s 上更好地开发、部署、管理应用,把相关流程标准化,是未来的重要趋势。

另外,Tekton 2019 发展规划中还包括了 conditional execution, cancelling or pausing a workflow, resuming a paused or failed workflow, enforcing timeouts on Tasks and Pipelines 等功能。站在巨人的肩膀上,未来的应用发布平台将会更加强大。

-------------------------------------------

本文作者:邓洪超

本文为云栖社区原创内容,未经允许不得转载。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
诬告朱军性骚扰的“弦子”,终于被封禁了

诬告朱军性骚扰的“弦子”,终于被封禁了

韬闻
2026-05-27 12:46:12
用大白话翻译一下“韬定律”,你也能看清这芯片成色如何

用大白话翻译一下“韬定律”,你也能看清这芯片成色如何

基本常识
2026-05-27 17:55:54
基辅将被毁灭?俄军图95战轰千里南调,专家评估:大规模轰炸开始

基辅将被毁灭?俄军图95战轰千里南调,专家评估:大规模轰炸开始

混沌录
2026-05-27 21:50:48
同事婆婆去世,请假要上传证明!她把婆婆灵堂、亡身都上传了...人事半夜审核,魂儿吓没了

同事婆婆去世,请假要上传证明!她把婆婆灵堂、亡身都上传了...人事半夜审核,魂儿吓没了

医脉圈
2026-05-27 20:42:28
伊朗革命卫队据报向美油轮开火

伊朗革命卫队据报向美油轮开火

财联社
2026-05-28 09:24:07
湖北大娘硬讹收割机后续!当地人再曝恶行,根本不敢惹,警方介入

湖北大娘硬讹收割机后续!当地人再曝恶行,根本不敢惹,警方介入

削桐作琴
2026-05-27 15:21:19
“不认识他,上来就扇我媳妇的脸,给她打个脑震荡”,河南一小区多位业主称物业经理喝酒后,对业主们又打又骂无差别攻击,警方已立案调查

“不认识他,上来就扇我媳妇的脸,给她打个脑震荡”,河南一小区多位业主称物业经理喝酒后,对业主们又打又骂无差别攻击,警方已立案调查

潇湘晨报
2026-05-27 21:20:16
航天员黎家盈年收入多少?回来后享受什么待遇?

航天员黎家盈年收入多少?回来后享受什么待遇?

混沌录
2026-05-26 22:05:52
终于弄明白了:开空调蚊子不咬人,不是冻晕,是导航系统彻底失灵

终于弄明白了:开空调蚊子不咬人,不是冻晕,是导航系统彻底失灵

辉哥说动漫
2026-05-27 15:37:07
逼供的专案组长落马,被他炮制的“倒贴式贪污案”要装睡到几时?

逼供的专案组长落马,被他炮制的“倒贴式贪污案”要装睡到几时?

有戏
2026-05-27 10:17:34
突发!美军对伊朗实施新的打击,伊朗南部连续传出爆炸声!霍尔木兹大消息,特朗普警告盟友:不守规矩会被炸飞;国际油价直线拉升

突发!美军对伊朗实施新的打击,伊朗南部连续传出爆炸声!霍尔木兹大消息,特朗普警告盟友:不守规矩会被炸飞;国际油价直线拉升

每日经济新闻
2026-05-28 07:43:07
拼多多美股跌幅扩大至12%

拼多多美股跌幅扩大至12%

澎湃新闻
2026-05-27 22:32:08
伊朗阿巴斯港附近传爆炸声 防空系统启动

伊朗阿巴斯港附近传爆炸声 防空系统启动

新华社
2026-05-28 07:25:21
这跟不穿有啥区别?戛纳闭幕式,女星下垂、副乳突出,露的好辣眼

这跟不穿有啥区别?戛纳闭幕式,女星下垂、副乳突出,露的好辣眼

天马幸福的人生
2026-05-26 11:05:02
被曝停火60天后,美国锁定伊朗打击新目标,考虑重启名为“大锤”的军事行动

被曝停火60天后,美国锁定伊朗打击新目标,考虑重启名为“大锤”的军事行动

上观新闻
2026-05-28 03:54:05
逆天发言!法拉利前主席怒喷首款纯电车:中国人都不会抄

逆天发言!法拉利前主席怒喷首款纯电车:中国人都不会抄

泡泡网
2026-05-27 11:25:19
网友发视频吐槽“同享老婆梅”,被发律师函要求公开道歉,公司回应:没有不尊重女性,已下架产品

网友发视频吐槽“同享老婆梅”,被发律师函要求公开道歉,公司回应:没有不尊重女性,已下架产品

封面新闻
2026-05-28 05:14:17
原版身材就是顶!伊芙体模亲自下场cos

原版身材就是顶!伊芙体模亲自下场cos

奶凶的小霸王
2026-05-26 15:47:03
全新一代问界M9正式上市!余承东:我不是很谦虚 它是地球上性能最强SUV

全新一代问界M9正式上市!余承东:我不是很谦虚 它是地球上性能最强SUV

快科技
2026-05-27 17:10:27
特朗普警告盟友阿曼:不守规矩会被炸飞

特朗普警告盟友阿曼:不守规矩会被炸飞

环球网资讯
2026-05-28 06:17:15
2026-05-28 09:48:49
阿里云云栖号
阿里云云栖号
阿里云官方内容社区!
3466文章数 867关注度
往期回顾 全部

科技要闻

拼多多股价跌10%:管理层称业绩难免波动

头条要闻

牛弹琴:伊朗180度转弯先发制人 美国迅速回应

头条要闻

牛弹琴:伊朗180度转弯先发制人 美国迅速回应

体育要闻

这群老阿姨,是最硬核的马刺球迷

娱乐要闻

王鹤棣风波连累父亲炸串店遭差评?

财经要闻

一线调查丨燃油车“甩卖”也难卖

汽车要闻

限时补贴价9.28-10.98万 MG 4X正式上市

态度原创

亲子
手机
数码
旅游
公开课

亲子要闻

孩子没被幼儿园录取没学上!网友:晚生二十年怕是只有幼儿园文凭

手机要闻

亚马逊接手苹果20%卫星投资,iPhone 17等卫星功能暂不受影响

数码要闻

KeySmart推出钱包追踪器:两张卡厚,满电续航24个月

旅游要闻

多元业态融合 拓展夏季消费新空间

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版