云原生CI/CD Tekton使用

Tekton介绍

Tekton 是一款功能非常强大而灵活的开源的 CI/CD 云原生框架。Tekton 的前身是 Knative 项目的 build-pipeline 项目,这个项目是为了给 build 模块增加 pipeline 的功能,但是随着不同的功能加入到 Knative build 模块中,build 模块越来越变得像一个通用的 CI/CD 系统,于是,索性将 build-pipeline 剥离出 Knative,就变成了现在的 Tekton,而 Tekton 也从此致力于提供全功能、标准化的云原生 CI/CD 解决方案。

Github:https://github.com/tektoncd/community

使用文档:https://tekton.dev/docs/getting-started/

Tekton 的主要组成部分包括:

  • 步骤 (Steps): 这些步骤本质上是容器,从镜像运行,可以为它们指定名称并提供任意脚本。

  • 任务 (Tasks): 任务是步骤的集合,可以定义并以特定顺序排列它们。任务在 Kubernetes 集群中作为 Pod 执行。

  • 管道 (Pipelines): 管道是任务的集合,可以定义并以特定顺序排列它们。

Tekton组件

Tekton 是一个开源的云原生持续集成和持续交付(CI/CD)平台,由 Kubernetes 支持。它包含一系列组件,共同协作,为开发人员提供强大的 CI/CD 功能。以下是 Tekton 的主要组件:

1. Tekton Pipelines:

  • Tekton Pipelines 是 Tekton 的核心组件,它定义了一组 Kubernetes 自定义资源,这些资源充当构建 CI/CD 管道的基石。

  • Tekton Pipelines 提供了定义步骤、任务和管道的功能。

  • 通过这些自定义资源,您可以定义一系列步骤、任务和管道,以自动化您的构建、测试和部署过程。

2. Tekton Triggers:

  • Tekton Triggers 允许您基于事件来启动管道。

  • 例如,您可以设置一个触发器,以便在将代码推送到 GitHub 仓库时自动启动一个构建管道。

  • Tekton Triggers 使您可以创建高度灵活的 CI/CD 工作流,这些工作流可以对外部事件做出响应。

3. Tekton CLI:

  • Tekton CLI (命令行界面) 提供了一个名为 tkn 的命令行工具,用于与 Tekton 进行交互。

  • tkn 构建在 Kubernetes CLI (kubectl) 之上,并提供了一个更加简化和友好的 Tekton 操作方式。

  • 使用 tkn,您可以创建、管理和执行 Tekton 任务、管道和触发器。

4. Tekton Dashboard:

  • Tekton Dashboard 是一个基于 Web 的图形界面,用于可视化 Tekton Pipelines 的执行情况。

  • 它提供了有关您的管道运行状况、进度和日志的详细信息。

  • Tekton Dashboard 为您提供了对 Tekton 工作流的可视化理解。

5. Tekton Catalog:

  • Tekton Catalog 是一个社区驱动的 Tekton 组件库,其中包含高质量的预构建任务、管道等。

  • 您可以直接使用这些组件,或将其作为模板来创建自己的自定义组件。

  • Tekton Catalog 减少了构建 CI/CD 工作流所需的时间和精力。

6. Tekton Hub:

  • Tekton Hub 是一个基于 Web 的图形界面,用于访问 Tekton Catalog。

  • 它提供了一个易于浏览和搜索 Tekton Catalog 中组件的界面。

7. Tekton Operator:

  • Tekton Operator 是一个 Kubernetes 运算符,用于在 Kubernetes 集群上安装、更新和删除 Tekton 项目。

  • 它自动化了 Tekton 的部署和管理过程。

8. Tekton Chain:

  • Tekton Chain 提供了用于生成、存储和签署 Tekton Pipelines 生成的工件来源的工具。

  • 它有助于确保工件的完整性和来源。

Tekton Pipelines

Tekton pipeline是一个Kubernetes扩展,可以安装和运行在Kubernetes集群上。它定义了一组Kubernetes自定义资源,作为构建块,您可以从中组装CI/CD管道。一旦安装完毕,Tekton pipeline就可以通过Kubernetes CLI (kubectl)和API调用使用,就像pod和其他资源一样。

Tekton Pipelines 定义了以下对象:

对象描述
Task定义了一系列步骤,这些步骤将启动特定的构建或交付工具。这些工具接收特定的输入以及生成特定的输出。task 对象是 tekton 中任务的最小单位,其内部可以定义Steps子步骤进行串行处理,每个Task会由控制器拉起的一个Pod内进行执行,Steps之间可以定义inputs和outputs进行参数传递。
TaskRun根据指定的输入输出以及执行参数实例化一个Task并执行,可以单独调用,也可以作为Pipeline的一部分调用。task 的关联对象,创建一个 task 后并不会真的运行,需要使用 taskrun 对象来真正执行。
Pipeline定义一系列任务完成一个特定的构建或交付目标,可以由事件触发或从pipelineRun调用。pipeline 是多个 task 的组合,task 之间可以定义 inputs 和 outputs 进行参数传递。
PipelineRun根据指定的输入输出以及执行参数实例化一个Pipeline并执行。与 taskrun 类似,pipeline 也需要创建 pipelinerun 对象才会执行。
PipelineResource定义每一步Task中提取输入以及产生输出的位置。

云原生CI/CD Tekton使用

The structure of a pipeline


Tekton使用

anzhihe 安志合个人博客,版权所有 丨 如未注明,均为原创 丨 转载请注明转自:https://chegva.com/6118.html | ☆★★每天进步一点点,加油!★★☆ | 

您可能还感兴趣的文章!

2 评论

  1. Tekton特别适合在云上工作 可以很容易地适应不同的云环境 就像一个多才多艺的厨师,无论在哪里都能做出美味的菜肴

发表评论

电子邮件地址不会被公开。 必填项已用*标注