Tekton

作者: 王司技术谈 | 来源:发表于2021-05-20 14:00 被阅读0次

    CI/CD在代码开发部署中占据很重要的地位,也是微服务系统快速集成快速部署的关键,当然也是云原生生态中不可缺少的组成部分。k8s是目前最流行的云原生系统核心,把代码发布到k8s是目前主流的CI/CD系统必备功能。如果一个CI/CD系统能完全利用k8s系统特性,如在k8s群集运行,借助k8s CRD定义CI/CD pipline task step等资源描述那就是极好的。于是就有了Tekton pipeline,Tekton就是完全依赖k8s环境,k8s原生的CI/CD 系统,可以说是k8s的亲儿子。

    Tekton 是由k8s原生serverless系统knative build组件独立出来的,专门处理CI/CD相关流程。简单理解就是构建了在git管理系统(目前支持github gitlab)和k8s的一个桥梁。

    task 相当于函数 ,taskrun相当于函数的调用。
    pipeline将tasks组合起来,可以是各种dag图的关联形,pipelinerun是对pipeline执行。
    steps为task的一个个子过程,相当于在一个container执行相应命令。
    一个task对应k8s一个pod。

    resources代表外部资源,提供外部资源的输入输出, resources的inputs为外部资源的输入如github上的代码,resources outputs 为外部资源输出,如task中构建好的image到镜像存储系统。

    condition代表执行条件,实际也是由container执行 check script。

    一个函数的输入包括传入的参数,外部资源(文件,第三方api等),函数出入参数对应Tekton input params, 外部资源对应 Tekton pipelineresources, 输出同样包括输出参数,外部资源(文件,第三方api等)对应Tekton input params。

    params 函数参数定义,实际由taskrun运行这个task(相当于函数)输入参数,支持array string,得出结果。

    总体设计很好采用目前最流行的pipeline形式,容易理解。设计可扩展性强,支撑各种情景的定义,充分考虑了复用,设计很完善,但是同时也带来了复杂性。

    目前Tekton还没有正式发布,计划今年20年正式发布,但是有很多企业和平台已经引入了,如redhat的openshift平台就把Tekton进行了封装和引入,jenkinsX直接将其作为组件使用。

    Tekton成熟度不如同类型的argo,但是设计理念新,又是google加持,原生于k8s,相信后边会越来越强大会是未来ci/cd的趋势。

    相关文章

      网友评论

          本文标题:Tekton

          本文链接:https://www.haomeiwen.com/subject/ngfoyktx.html