云原生强大且灵活的持续集成CI开源框架Tekton实战-上

@
目录

  • 概述
    • 定义
    • 常见CICD工具
    • 使用好处
    • 组件
    • 基本概念
  • 安装
    • 前提条件
    • 安装Tekton Pipelines
    • 创建并运行任务
    • 安装Dashboard
    • 安装Cli
    • Pipelines示例演示
概述定义
Tekton 官网地址 https://tekton.dev/
Tekton 最新官网文档 https://tekton.dev/docs/
Tekton GitHub源码地址 https://github.com/tektoncd
Tekton是一个强大、灵活的构建 CI/CD 流水线系统的开源框架,允许开发者构建、测试和发布应用 。Tekton 是云原生的,通过定义 CRD ,让用户快速灵活定义流水线;
Tekton是构建CI/CD系统的本地云解决方案 。它由提供构建块的Tekton pipeline和支持组件组成,如Tekton CLI和Tekton Catalog , 使Tekton成为一个完整的生态系统;Tekton也是CD基金会(一个Linux基金会项目)的一部分;以yaml文件编排应用构建及部署流程,是一个纯云原生的标准化CICD流水线构建、测试和部署流程的工具 。
常见CICD工具
云原生强大且灵活的持续集成CI开源框架Tekton实战-上

文章插图
使用好处
  • 可定制的:Tekton实体是完全可定制的 , 从而具有高度的灵活性 。平台工程师可以定义非常详细的构建基目录,以供开发人员在各种情况下使用 。
  • 可重复使用的:Tekton实体是完全可移植的,因此一旦定义,组织内的任何人都可以使用给定的管道并重用其构造块 。这使开发人员可以快速构建复杂的管道,而无需“重新发明轮子” 。
  • 可扩展的:Tekton Catalog是Tekton社区驱动的存储库 。您可以使用Tekton目录中的预制组件快速创建新的并展开现有管道 。
  • 标准化:Tekton在您的Kubernetes集群上作为扩展安装并运行,并使用完善的Kubernetes资源模型 。Tekton工作负载在Kubernetes容器中执行 。
  • 缩放性:为了增加工作负载容量,您可以简单地将节点添加到群集 。Tekton与您的群集进行缩放 , 无需重新定义您的资源分配或对管道的任何其他修改 。
组件
  • Tekton Pipelines:tekton 的基础,定义了一组 CRD,用于定义 pipeline
  • Tekton Triggers:允许基于 event 实例化 pipeline 。比如:git的pr请求
  • Tekton Cli:提供命令行工具和 tekton 交互
  • Tekton Dashboard:图形化界面展示 pipeline 信息
  • Tekton Catalog:高质量的、社区贡献的 pipeline 仓库
  • Tekton Hub:图形化界面访问 tekton catalog
  • Tekton Operator:在k8s上安装、移除、更新tekton组件的项目
基本概念Tekton引入了任务的概念,它指定了你想要运行的工作负载;Tekton 最重要的五个概念:Task、TaskRun、Pipeline、PipelineRun、PipelineResources:
  • Task:Tekton中的最小单元,代表一个任务模板,包括多个步骤 。每一个操作定义为Task中的一个step
  • Pipeline:多个 Task 组成的有向无环图,定义了流水线的模板
  • PipelineRun:Pipeline 真正执行时需要定义一个PipelineRun , 作为流水线的实例 , 生成一条流水线记录
  • TaskRun:Task 真正执行的实例,记录任务状态 。一个TaskRun 会创建一个对应的 Pod,每个 step 对应 pod 中的一个 container
  • PipelineResource:流水线执行过程中需要的资源信息

云原生强大且灵活的持续集成CI开源框架Tekton实战-上

文章插图
每个任务在它自己的Kubernetes Pod中执行 。因此,默认情况下,Pipeline中的任务不共享数据 。要在任务之间共享数据,必须显式地配置每个任务,使其输出可用于下一个任务,并将先前执行的任务的输出作为其输入 。
安装前提条件