Tekton 组件介绍

Tekton 组件介绍

·       Task

   Task 为构建任务,是 Tekton 中不可分割的最小单位,正如同 Pod 在 Kubernetes 中的概念一样。在 Task 中,可以有多个 Step,每个 Step 由一个 Container 来执行。

·       TaskRun

   PipelineRun 被创建出来后,会对应 Pipeline 里面的 Task 创建各自的 TaskRun。一个 TaskRun 控制一个 Pod,Task 中的 Step 对应 Pod 中的 Container。当然,TaskRun 也可以单独被创建。

·       Pipeline

   Pipeline 由一个或多个 Task 组成。在 Pipeline 中,用户可以定义这些 Task 的执行顺序以及依赖关系来组成 DAG(有向无环图)。

·       PipelineRun

   PipelineRun 是 Pipeline 的实际执行产物,当用户定义好 Pipeline 后,可以通过创建 PipelineRun 的方式来执行流水线,并生成一条流水线记录。

·       PipelineResource

   表示Pipeline输入资源,比如GitHub上的源码,或者Pipeline输出资源,例如一个容器镜像或者构建生成的jar包等。

·       Step、Task 和 Pipeline

                         image

·       输入与输出资源

   Tekton支持的常用类型资源:Git、Pull Request、Image、Cluster、Storage、CloudEvent
image

·       TaskRun 与 PipelineRun

   TaskRun/PipelineRun在集群上实例化和执行Task/Pipeline,将资源与Task对象和Pipeline对象串联起来,通过运行来完成一次CI/CD工作流。TaskRun和PipelineRun可以通过手动创建、Dashboard上创建和触发Trigger自动       创建等方式完成创建。

image

·       Step、Task 、Pipeline、TaskRun、PipelineRun

image

  • Tekton Trigger 资源对象及模型

                  TriggerTemplate、TriggerBinding、EventListener

·      

    • TriggerTemplate

               TriggerTemplate是可以模板化资源的资源,拥有可以在资源模板中任何位置替换的参数。

·      

    • TriggerBinding

               TriggerBinding用来绑定事件(events)/触发器(Trigger),捕获事件中的字段并将其存储为参数。TriggerBinding从TriggerTemplate中分离开来是鼓励它们之间的重用。

·      

    • TriggerListener

       EventListener是k8s的自定义资源,允许用户以声明的方式处理带有JSON数据体的HTTP传入事件。EventListener需对外开放服务,才能让事件进来。用户可以声明TriggerBinding以从事件中提取字段,并将其应用于         TriggerTemplate以创建Tekton资源。此外,EventListener允许使用事件拦截器进行轻量级的事件处理。

·      

    • 工作原理

开发者将代码提交给GitLab,然后Gitlab将推送事件给EventListener,接着Trigger基于TriggerBinding的配置从数据体中提取信息,装载在参数并传入TriggerTemplate中进行解析,最后实例化tekton的资源(task,taskrun,pipeline等对象)。要是实例化生成taskrun和pipelineRun,那就可以实现对流水线的触发。整个过程分工明确,每个对象都能做到解耦复用。

       image

  • Tekton Dashboard

是Tekton Pipeline和Tekton Trigger的通用Web界面,可通过Dashboard实现Tekton资源的创建、执行和检查等工作。

image

·       Tekton CLI

提供名为 tkn 的命令行界面,利用它与Tekton进行交互。

·       Tekton Catalog

Tekton Catalog 是一个高质量、由社区贡献的构建模块(tasks、pipelines)仓库

·       Tekton Hub

用于访问 Tekton Catalog 的Web图形界面。
image

·       Tekton Operator

Tekton Operator 是一个k8s Operator 项目,可便捷在k8s集群上安装、更新以及删除Tekton项目。

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/303620.html

(0)
上一篇 2023年10月12日 20:43
下一篇 2023年10月12日 21:14

发表回复

登录后才能评论