首页/新闻资讯/正文详情

Tekton Pipelines:面向 Kubernetes 的声明式 CI/CD 流水线资源——安装、版本兼容与 API 迁移实战指南

发布时间:2026/9/25 5:37:10 来源:云帆数科 栏目:资讯中心
Tekton Pipelines:面向 Kubernetes 的声明式 CI/CD 流水线资源——安装、版本兼容与 API 迁移实战指南
云原生CI/CDDevOps后端【免费下载链接】pipelineA cloud-native Pipeline resource.项目地址https://gitcode.com/gh_mirrors/pipelin/pipeline点击查看免费下载本文基于 Tekton Pipelines 仓库的入口文档 README.md 展开系统介绍这套云原生流水线资源的核心理念Cloud Native / Decoupled / Typed、安装与版本要求、CRD 体系、API 版本迁移路径并结合仓库内的 CRD 清单、API 兼容策略文档与真实示例清单帮助你从零理解并落地 Tekton Pipelines。一、Tekton Pipelines 是什么Tekton Pipelines 提供 Kubernetes 风格的资源用于声明 CI/CD 风格的流水线README.md。它是一组安装并运行在你的 Kubernetes 集群上的 Kubernetes 扩展资源Custom Resources作为搭建 CI/CD 流水线的构建块安装后可像pod一样通过kubectl和 Kubernetes API 调用docs/README.md。根据入口文档的概括Tekton Pipelines 具备三大核心特征Cloud Native云原生运行在 Kubernetes 之上把 Kubernetes 集群作为一等公民类型first class type对待以容器作为构建流水线的基本单元。Decoupled解耦同一个 Pipeline 可以用于部署到任意 Kubernetes 集群组成 Pipeline 的各个 Task 可以很容易地被单独运行Git 仓库等资源可以在不同运行run之间方便地替换。Typed类型化类型化资源意味着对Image这样的资源其具体实现可以方便地互换——例如用 kaniko 构建镜像与用 buildkit 构建镜像只需替换对应的 Task 实现而无需改动 Pipeline 的整体结构。核心实体一览docs/README.md 定义了 Tekton Pipelines 的核心实体实体说明Task定义一系列步骤steps启动特定的构建或交付工具消费特定输入并产出特定输出TaskRun实例化一个Task执行附带具体的输入、输出和运行参数可独立触发也可作为Pipeline的一部分运行Pipeline定义一系列Task以达成特定的构建或交付目标可被事件触发或由PipelineRun调用PipelineRun实例化一个Pipeline执行附带具体的输入、输出和运行参数Runalpha面向自定义任务的运行资源这些实体在仓库中有两类落地载体CRD 定义位于 config/300-crds/ 目录包括300-pipeline.yaml、300-task.yaml、300-taskrun.yaml、300-pipelinerun.yaml、300-customrun.yaml、300-resolutionrequest.yaml、300-stepaction.yaml、300-verificationpolicy.yaml。以 config/300-crds/300-pipeline.yaml 为例其versions同时声明了v1beta1served: true、storage: false描述中标注 Deprecated: Please use v1.Pipeline instead.和v1storage: true两个版本——这正是入口文档v1beta1 向 v1 迁移章节在 CRD 层的直接体现Go 类型定义与控制器位于 pkg/apis/pipeline/v1/包含task_types.go、pipeline_types.go、taskrun_types.go、pipelinerun_types.go等类型定义以及配套的*_validation.go、*_defaults.go、*_conversion.go版本转换逻辑文件控制器实现在 pkg/reconciler/ 下按taskrun、pipelinerun、customrunnotifications、resolutionrequest等分别组织。模块声明见 go.modmodule github.com/tektoncd/pipeline当前代码基线使用 Go 1.27 编译。二、开始使用 Pipelines安装方式与监控入口文档将 Want to start using Pipelines 指向四个入口安装指南、入门教程、roadmap 与发布说明。对应的仓库内资源为安装指南 HEADroadmap——通过 Tekton 项目的 Roadmap 项目板跟踪规划中的特性、进行中的工作以及已完成事项Feature 请求、TEPTekton Enhancement Proposals、Epic 及其子问题、基础设施改进并定义了Todo/In Progress/Review/Done/Hold五种状态列releases——发布节奏遵循 Tekton 社区发布策略语义化版本vX.Y.Z、每月发布一次其中一年四次1/4/7/10 月为 LTS 版本其余版本支持期约一个月首次 LTS 版本为 v0.41.0本地安装指南用于在个人电脑上测试 Tekton。安装步骤摘自 docs/install.md前置条件一个运行Kubernetes 1.28 或更高版本的集群kubectl为当前用户授予cluster-admin权限可选如需支持高可用场景安装 Metrics Server。执行安装根据目标版本选择对应命令# 最新正式发布版本 kubectl apply --filename https://infra.tekton.dev/tekton-releases/pipeline/latest/release.yaml# Nightly 版本 kubectl apply --filename https://infra.tekton.dev/tekton-releases-nightly/pipeline/latest/release.yaml# 指定版本将 version_number 替换为如 v0.26.0 kubectl apply --filename https://infra.tekton.dev/tekton-releases/pipeline/previous/version_number/release.yaml# 容器运行时不支持 image-reference:tagdigest 时使用的无 tag 版本 kubectl apply --filename https://infra.tekton.dev/tekton-releases/pipeline/latest/release.notags.yaml安装文档特别提示kubectl apply release.yaml的方式适合作为快速上手不建议直接用于生产生产环境建议使用 Tekton operator 来安装、升级和管理 Tekton 项目。此外多租户安装目前仅部分支持参见 docs/developers/multi-tenant-support.md。监控安装进度kubectl get pods --namespace tekton-pipelines --watch当所有组件在READY列显示1/1时安装完成按Ctrl C停止监控。三、Kubernetes 版本兼容要求入口文档给出了 Tekton 各发布线对 Kubernetes 版本的最早要求这是选型与升级时必须核对的硬性前提Tekton 发布线最低 Kubernetes 版本v0.24.x 起Kubernetes 1.18v0.27.x 起Kubernetes 1.19v0.30.x 起Kubernetes 1.20v0.33.x 起Kubernetes 1.21v0.39.x 起Kubernetes 1.22v0.41.x 起Kubernetes 1.23v0.45.x 起Kubernetes 1.24v0.51.x 起Kubernetes 1.25v0.59.x 起Kubernetes 1.27v0.61.x 起Kubernetes 1.28与上文安装指南中运行 Kubernetes 1.28 或更高版本的前置条件一致可以推断当前仓库HEAD对应的安装基线即面向 Kubernetes 1.28 集群遵循与最新稳定发布线v0.61.x 起一致的最低版本要求。四、API 版本体系稳定性等级与弃用时间表入口文档强调读者应当了解 API 的稳定性等级见 api_compatibility_policy.md以及已被弃用特性的最早移除日期见 docs/deprecations.md。api_compatibility_policy.md 对 API 边界的界定值得注意API 不仅包括 CRD 的spec与status结构还包括status中steps的排序、status中step容器的命名、从PipelineRun传递到TaskRun再到Pod的标签执行容器内由 Tekton 创建的目录结构以及 cmd 下构建出的各镜像的接口。按该策略当前的版本状态如下稳定GACRDv1.Task、v1.TaskRun、v1.Pipeline、v1.PipelineRun其中仍可能引入 alpha/beta 级别的特性门控字段Beta CRDv1beta1.CustomRun、v1beta1.ResolutionRequest已弃用 CRDv1beta1.Task、v1beta1.ClusterTask、v1beta1.TaskRun、v1beta1.Pipeline、v1beta1.PipelineRun——不再新增特性仅接收缺陷修复。alpha/beta/GA的语义遵循 Kubernetes 的 API 阶段定义在稳定 CRD 内部某些需要显式开启的特性门控字段也可能处于 alpha 或 beta 状态。五、版本迁移从 v1beta1 到 v1、从 v1alpha1 到 v1beta1入口文档的 Migrating 章节指出从v1beta1迁移到v1时多个 Tekton CRD 和 API 字段被更新或弃用包括 ClusterTask CRD 与 Pipeline Resources 字段从v1alpha1到v1beta1时若干 spec 字段和 CRD 被更新或移除。两份迁移指南分别为 docs/migrating-v1beta1-to-v1.md 与 docs/migrating-v1alpha1-to-v1beta1.md。docs/migrating-v1beta1-to-v1.md 给出了完整的字段变更对照表以下为其中的关键条目旧字段替代/去向pipelineRun.spec.TimeoutpipelineRun.spec.timeouts.pipelinepipelineRun.spec.taskRunSpecs.taskServiceAccountNamepipelineRun.spec.taskRunSpecs.serviceAccountNamepipelineRun.spec.taskRunSpecs.taskPodTemplatepipelineRun.spec.taskRunSpecs.podTemplatetaskRun.status.taskResultstaskRun.status.resultspipelineRun.status.pipelineResultspipelineRun.status.resultstaskRun.spec.taskRef.bundletaskRun.spec.taskRef.resolverpipelineRun.spec.pipelineRef.bundlepipelineRun.spec.pipelineRef.resolvertask.spec.resources/taskrun.spec.resources已从Task/TaskRun移除taskRun.status.cloudEvents/taskRun.status.resourcesResult已从TaskRun移除pipeline.spec.resources/pipelineRun.spec.resources已从Pipeline/PipelineRun移除pipelineRun.spec.serviceAccountNamepipelineRun.spec.taskRunTemplate.serviceAccountNamepipelineRun.spec.podTemplatepipelineRun.spec.taskRunTemplate.podTemplatetask.spec.steps[].resources等steps / stepTemplate / sidecarscomputeResourcestaskRun.spec.sidecarOverridestaskRun.spec.sidecarSpecstaskRun.spec.stepOverridestaskRun.spec.stepSpecs同一文档还覆盖了四个迁移专题PipelineRun.Timeout升级为PipelineRun.Timeouts用 Task 替代 Task/TaskRun/Pipeline/PipelineRun 中的resources用 Bundle Resolver 替代taskRef.bundle与pipelineRef.bundle用 Remote Resolutiondocs/cluster-resolver.md替代 ClusterTask以及在PipelineRun.Spec的TaskRunTemplate下新增serviceAccountName与podTemplate。代码层面v1beta1 与 v1 之间的对象转换逻辑集中在 pkg/apis/pipeline/v1/ 中的task_conversion.go、pipeline_conversion.go、taskrun_conversion.go、pipelinerun_conversion.go等文件配合*_conversion_test.go测试与 config/300-crds/ 中 CRD 双版本声明v1beta1 served、v1 storage共同保证了存量v1beta1资源在集群内可继续被读取与服务。六、真实示例快速上手 TaskRun 与 Pipeline入口文档将 examples 目录作为 Examples HEAD 的入口其中 examples/v1/ 下按taskruns与pipelineruns分类整理了大量tekton.dev/v1清单。一个典型的 TaskRun 示例是 examples/v1/taskruns/step-script.yaml它内联了taskSpec演示了script字段的完整能力apiVersion: tekton.dev/v1 kind: TaskRun metadata: generateName: step-script- spec: taskSpec: params: - name: PARAM default: param-value steps: - name: noshebang image: mirror.gcr.io/ubuntusha256:0d39... script: echo no shebang - name: bash image: mirror.gcr.io/ubuntusha256:0d39... env: - name: FOO value: foooooooo securityContext: runAsUser: 2000 script: | #!/usr/bin/env bash set -euxo pipefail echo Hello from Bash! echo FOO is ${FOO} - name: params-applied image: mirror.gcr.io/pythonsha256:e8be0... script: | #!/usr/bin/env python3 v $(params.PARAM) if v ! param-value: print(Param values not applied) exit(1)该示例同时验证了参数替换$(params.PARAM)、多语言 shebang 脚本bash / node / python / perl、args传入脚本、以不同runAsUser运行的 Step 等能力——这些场景在仓库 e2e 测试如 test/taskrun_test.go中也有对应断言。而 examples/v1/pipelineruns/pipelinerun.yaml 则展示了 Pipeline 侧的形态清单内先定义了一个带workspacesoutput、paramsurl、revision、submodules、depth、sslVerify等与resultscommit的git-cloneTask再由 Pipeline/PipelineRun 组合使用直观体现了Typed Decoupled的理念——Task 通过声明式的参数与结果接口与外界交互。更多变体并行任务、条件表达式when、工作空间传播、结果引用、StepAction 等可在 examples/v1/pipelineruns/ 下按文件名直接找到。七、开发者入口与进阶阅读入口文档的 Want to contribute 章节指向以下资源CONTRIBUTING.md贡献流程概述DEVELOPMENT.md开发环境搭建指南涵盖工具安装、环境配置、fork 与容器镜像仓库配置、使用 Kind/Minikube/Docker Desktop/GKE 搭建集群、使用ko构建与部署、gotestsum单元测试与 e2e 测试等内容docs/developers/README.md深入理解 Tekton 内部机制的进阶材料包括 controller-logic.md、taskruns.md、results-lifecycle.md、api-changes.md 等主题文档。版本相关的文档链接可在 releases.md 中找到各版本对应的入口仓库内 docs/ 目录还包含 resolver 体系docs/resolution.md、docs/cluster-resolver.md、工作空间docs/workspaces.md、变量替换docs/variables.md、StepActionsdocs/stepactions.md、可信资源docs/trusted-resources.md等主题文档可作为深入学习的索引。参考资源索引资源路径项目入口文档README.md安装指南docs/install.md文档总入口docs/README.mdAPI 兼容策略api_compatibility_policy.md弃用特性表docs/deprecations.mdv1beta1→v1 迁移指南docs/migrating-v1beta1-to-v1.mdv1alpha1→v1beta1 迁移指南docs/migrating-v1alpha1-to-v1beta1.md发布说明与节奏releases.md开发指南DEVELOPMENT.md贡献指南CONTRIBUTING.mdCRD 定义目录config/300-crds/v1 API 类型定义pkg/apis/pipeline/v1/示例清单examples/v1/赞分享云原生CI/CDDevOps后端【免费下载链接】pipelineA cloud-native Pipeline resource.项目地址https://gitcode.com/gh_mirrors/pipelin/pipeline点击查看免费下载相关推荐Tekton Pipelines完全入门指南如何在Kubernetes上5分钟搭建云原生CI/CD流水线Tekton Pipelines完全入门指南如何在Kubernetes上5分钟搭建云原生CI/CD流水线 Tekton Pipelines 是一个开源的 Ku云原生CI/CDDevOps后端PraisonAI 安装脚本维护与 Helm/Kubernetes 生产部署完整 CI/CD 流水线实战指南PraisonAI 安装脚本维护与 Helm/Kubernetes 生产部署完整 CI/CD 流水线实战指南 本篇技术指南围绕 PraisonAI 项目中的人工智能AI AgentAgent 框架多智能体工作流自动化RAGMCP 服务Lyciumaker零基础打造专业级三国杀自定义卡牌的终极指南Lyciumaker零基础打造专业级三国杀自定义卡牌的终极指南 作为三国杀爱好者的你是否曾梦想设计专属武将却苦于技术门槛Lyciumaker正是为你量身打云原生CI/CDDevOps后端上一篇Sails 扩展机制完全指南Generators、Adapters 与 Hooks 三大扩展点详解下一篇JankyBorders完全教程10个技巧打造个性化macOS窗口边框创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

jQuery手写跨浏览器可编辑表格:从GridView到单元格直改
jQuery手写跨浏览器可编辑表格:从GridView到单元格直改

你要是翻过那种开发年限超过五年的后台管理系统,十有八九会看到类似场景:列表页用ASP.NET的GridView或者别的服务端渲染组件把数据铺成一张静态表格,旁边放个“编辑”按钮,点进去跳到另一个页面,改完再跳回来。老系统里… · 2026/9/25 5:37:10

ChatGPT-Shortcut(AI Short)部署指南:三种部署形态选择与 Vercel/Cloudflare/Docker 实战
ChatGPT-Shortcut(AI Short)部署指南:三种部署形态选择与 Vercel/Cloudflare/Docker 实战

AI 应用提示工程人工智能前端 【免费下载链接】ChatGPT-Shortcut Stop writing prompts from scratch — a searchable prompt library for ChatGPT, Claude, Gemini and Cursor Русский 한국어 العربية हिन्दी ไทย | 别再从头写提示词&… · 2026/9/25 5:37:10

NUC 低功耗设置:OpenClaw 24 小时运行不发热、不噪音的 config.toml 骨架
NUC 低功耗设置:OpenClaw 24 小时运行不发热、不噪音的 config.toml 骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 5:37:10

5 步换好游戏里的 DLSS 版本:DLSS Swapper 实操教程(免费开源)
5 步换好游戏里的 DLSS 版本:DLSS Swapper 实操教程(免费开源)

5 步换好游戏里的 DLSS 版本:DLSS Swapper 实操教程(免费开源) 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 远景发虚、像糊了一层雾,或者开 DLSS 后帧数没涨反而多了伪… · 2026/9/25 6:03:55

opencodex Provider Workspace 账户体系 A 门审计:从账户切换器到多账号状态治理的源码级复盘
opencodex Provider Workspace 账户体系 A 门审计:从账户切换器到多账号状态治理的源码级复盘

【免费下载链接】opencodex Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code 项目地址: https://gitcode.com/gh_mirrors/ope/opencodex 点击… · 2026/9/25 6:03:49

Atlas 300V 24G推理加速卡实战:YOLO模型部署全流程解析
Atlas 300V 24G推理加速卡实战:YOLO模型部署全流程解析

1. 一张24G的推理卡,到底算不算“运算加速卡”最近后台好几个朋友都在问同一个问题:"Atlas 300V 24G是不是运算加速卡?"还有人直接问"能不能拿它部署YOLO"。这问题听起来简单,但背后的误解不少。我最初拿到这… · 2026/9/25 6:03:49

Atlas 300V 24G部署YOLO全流程:从CANN安装到ONNX转OM
Atlas 300V 24G部署YOLO全流程:从CANN安装到ONNX转OM

上周有个做安防项目的朋友给我发了张设备图,紧接着就是一个直球问题:Atlas 300V 24G 是运算加速卡吗?他真正想问的是,这东西能不能把手上的 YOLO 检测模型接过来,替换掉机房那几台老旧 GPU 服务器。这个问题看着简单&a… · 2026/9/25 6:03:49

Atlas 300V 24G上部署YOLO:从ONNX到OM的完整实战指南
Atlas 300V 24G上部署YOLO:从ONNX到OM的完整实战指南

1. 一张24G显存的推理卡,为什么值得折腾YOLO先说结论:Atlas 300V 24G这块卡,放在今天的目标检测部署场景里,性价比和能效比都相当能打。尤其当你想在生产环境里跑YOLO系列模型,又不想被GPU的采购成本和功耗牵着走时&am… · 2026/9/25 6:03:49

Learn-Algorithms 面试题拾遗:几何相交与排列组合类算法题全解析
Learn-Algorithms 面试题拾遗:几何相交与排列组合类算法题全解析

教程 【免费下载链接】Learn-Algorithms 算法学习笔记 项目地址: https://gitcode.com/gh_mirrors/le/Learn-Algorithms 点击查看 免费下载 本文基于《Learn-Algorithms》仓库中 97 其他.md 整理的五类高频笔试题展开:两圆相交最长弦的几何极值、四点判… · 2026/9/25 6:03:43

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码