news 2026/9/23 18:31:43

Tekton Pipelines完全入门指南:如何在Kubernetes上5分钟搭建云原生CI/CD流水线

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Tekton Pipelines完全入门指南:如何在Kubernetes上5分钟搭建云原生CI/CD流水线

Tekton Pipelines完全入门指南:如何在Kubernetes上5分钟搭建云原生CI/CD流水线

【免费下载链接】pipelineA cloud-native Pipeline resource.项目地址: https://gitcode.com/gh_mirrors/pipelin/pipeline

Tekton Pipelines 是一个开源的 Kubernetes 云原生 CI/CD 流水线引擎,它把构建、测试、部署等连续交付流程声明为标准的 Kubernetes 资源。本文带你从零开始:先用一条命令 5 分钟装好 Tekton Pipelines,再跑通第一个 Task,最后搭建一条真实的云原生 CI/CD 流水线,并附上调试技巧与资源目录速查。

什么是 Tekton Pipelines?🚀

一句话理解:Tekton Pipelines 让你在 Kubernetes 集群上用"声明式 YAML"定义 CI/CD 流水线。它具备三个鲜明特点(见 README.md):

特点含义对新手的好处
☁️云原生运行在 Kubernetes 上,以容器为构建块无需额外 Agent,集群即 CI 引擎
🔌解耦一条 Pipeline 可部署到任意集群,Task 可独立运行换仓库、换集群只需改参数
🧩类型化资源(如镜像构建)有类型抽象构建工具(kaniko / buildkit)可随意替换

核心概念只有 4 个,记住它们就懂了 80%:

  • Task:最小执行单元,由若干 Step(容器)组成,对应 docs/taskruns.md
  • TaskRun:一次 Task 的运行实例
  • Pipeline:按依赖关系编排多个 Task 的流水线,对应 docs/pipelines.md
  • PipelineRun:一次 Pipeline 的运行实例,对应 docs/pipelineruns.md

5分钟安装:一条命令部署 Tekton Pipelines

安装前检查

  • 一个Kubernetes 1.28 及以上的集群(版本要求见 README.md 的 Required Kubernetes Version 一节)
  • 配置好的kubectl
  • 当前用户具备cluster-admin权限

一键安装步骤

运行官方安装命令(详细步骤见 docs/install.md):

kubectl apply --filename https://infra.tekton.dev/tekton-releases/pipeline/latest/release.yaml

验证安装成功

观察控制器组件是否全部就绪,全部显示1/1即安装完成:

kubectl get pods --namespace tekton-pipelines --watch

仓库内也保留了完整的控制器部署清单,方便阅读源码对照,例如 config/controller.yaml、config/webhook.yaml,以及各自定义资源的 CRD 定义目录 config/300-crds/(如 300-pipeline.yaml、300-taskrun.yaml)。

💡 生产环境建议使用 Tekton Operator 管理升级与高可用,快速安装方式更适合上手体验。

快速上手:跑通第一个 Task 和 TaskRun

写一个最小 Task

Task 就是一个带步骤的容器任务。下面的最小示例只会打印一句话,适合验证环境:

apiVersion: tekton.dev/v1 kind: Task metadata: name: hello-world spec: steps: - name: hello image: ubuntu script: | echo "Hello, Tekton Pipelines!"

保存为hello.yaml并应用:

kubectl apply -f hello.yaml

创建 TaskRun 触发执行

TaskRun 通过taskRef引用 Task,运行后每个 Step 会在集群里变成一个真实的 Pod:

apiVersion: tekton.dev/v1 kind: TaskRun metadata: name: hello-run spec: taskRef: name: hello-world

实时跟踪状态,直到出现Succeeded

kubectl get taskrun --watch

查看运行日志

先找到 Pod 名,再看step-hello容器的输出:

kubectl get pods kubectl logs <pod名称> -c step-hello

日志的完整用法(包括 sidecar 日志、终止消息等)见 docs/logs.md。

搭建真实 CI/CD 流水线:你的第一条 Pipeline

Pipeline 的核心字段

一条 Pipeline 只需声明:参数(params)、工作区(workspaces)和任务列表(tasks)。任务之间用runAfter指定顺序,用workspaces共享数据。仓库自带的完整示例可直接学习:examples/v1/pipelineruns/pipelinerun.yaml

示例:拉代码 → 构建镜像

apiVersion: tekton.dev/v1 kind: Pipeline metadata: name: build-app spec: params: - name: repo-url type: string workspaces: - name: shared-data tasks: - name: fetch-source taskRef: name: git-clone # 社区常用 Task,克隆代码 workspaces: - name: output workspace: shared-data - name: build-image runAfter: [fetch-source] # 拉完代码再构建 taskRef: name: build-image

PipelineRun:一次运行只需绑定参数和存储

apiVersion: tekton.dev/v1 kind: PipelineRun metadata: name: build-app-run-1 spec: pipelineRef: name: build-app params: - name: repo-url value: "https://example.com/myapp.git" workspaces: - name: shared-data volumeClaimTemplate: spec: accessModes: ["ReadWriteOnce"] resources: requests: storage: 1Gi

执行kubectl apply -f pipelinerun.yaml后,流水线即自动调度:先克隆代码,再构建镜像,共享同一块存储卷。Workspace 的更多玩法(PVC、emptyDir、subPath 等)见 docs/workspaces.md。

实用进阶:4 个新手必备特性

1️⃣params 与 results 传递数据上游 Task 的results可以直接作为下游 Task 的params传入,比如把克隆到的 commit SHA 传给构建步骤,让每次构建可追溯。变量替换语法见 docs/variables.md。

2️⃣when 表达式条件执行when表达式按参数或上游结果决定某个 Task 是否运行,例如只在branch == main时才触发部署,实现"主干自动发布、分支只跑测试"。

3️⃣finally 任务:失败也执行的收尾finally中的 Task 无论流水线成功与否都会执行,适合放通知、清理、上报等收尾动作。

4️⃣远程 Task:直接从 Git 仓库或镜像仓库拉取不必把每个 Task 都存在集群里。Git Resolver 支持在 Pipeline 中直接引用远端仓库的 Task(resolverRef: git),实现"代码即流水线",配置方法见 docs/git-resolver.md 与 docs/resolution-getting-started.md。

此外,Matrix 特性可以一条 Task 展开成多实例并行执行(如一次构建多平台镜像),文档在 docs/matrix.md。

调试指南:状态、日志与常见问题

场景命令 / 入口
查看运行状态kubectl get taskrun -w/kubectl get pipelinerun -w
查看某次运行详情kubectl describe taskrun <名称>
查看某一步日志kubectl logs <pod> -c step-<step名>
排查 Pod 调度/启动失败kubectl describe pod <pod>

小技巧:

  • TaskRun 卡在Pending:多半是 ServiceAccount 权限或调度资源问题,用kubectl describe看事件。
  • 想看每一步的退出码与耗时,describe输出的 Conditions 里都有。
  • 更深入的调试手段(日志、指标、追踪)可参考 docs/debug.md 与 docs/metrics.md。

资源目录速查:文档都在哪里?📚

仓库内置了完整文档与示例,建议按此路径学习:

  • 📖 安装:docs/install.md
  • 📖 Task / TaskRun:docs/taskruns.md
  • 📖 Pipeline 全字段说明:docs/pipelines.md
  • 📖 工作区与数据共享:docs/workspaces.md
  • 📖 变量替换:docs/variables.md
  • 📚 官方示例(TaskRun 与 PipelineRun 各几十个):examples/v1/taskruns/ 与 examples/v1/pipelineruns/,如 step-script.yaml、pipelinerun-with-params.yaml
  • 🏗️ 控制器内部机制(进阶):docs/developers/README.md 与 DEVELOPMENT.md
  • 🗺️ 版本发布与路线图:releases.md、roadmap.md

写在最后

回到开头的问题——如何在 Kubernetes 上 5 分钟搭建云原生 CI/CD 流水线?答案就是三步:一条kubectl apply装好 Tekton Pipelines → 一个 YAML 跑通 TaskRun → 一条 Pipeline 串起拉代码到构建镜像的全流程。相比传统 CI 工具,Tekton Pipelines 的"云原生 + 声明式 + 可组合"特性,让流水线像 K8s 工作负载一样可版本化、可复用、可移植。下一步,建议直接从 examples/v1/ 中挑一个最贴近你业务的示例改起来,你会发现上手远比你想象的快。

【免费下载链接】pipelineA cloud-native Pipeline resource.项目地址: https://gitcode.com/gh_mirrors/pipelin/pipeline

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/23 18:31:40

避开3大坑:个人格言从入门到精通的底层逻辑

避开3大坑:个人格言从入门到精通的底层逻辑 面试被问原理答不上来,是大多数技术人的噩梦。 你以为背了八股文就能过,结果面试官追问一句“为什么这么设计”,你脑子直接一片空白。 从入门到精通,差的不是代码量,而是对底层逻辑的掌控力。 这里有个反直觉的观点: 个人格言 ,才是你技术能力的“底层源代码”。…

作者头像 李华
网站建设 2026/9/23 18:31:40

3步搞定五行起名系统,保姆级教程让你告别只会写Hello World

3步搞定五行起名系统,保姆级教程让你告别只会写Hello World 很多程序员刚入行时都卡在这一步:语法背得滚瓜烂熟,LeetCode能刷两三百题,但真让你搭个完整项目,脑子直接一片空白。这种“代码孤岛”现象太普遍了。今天这篇保姆级教程,不聊虚的,直接带你从零手搓一个【五行起名】小系统。这不是为了…

作者头像 李华
网站建设 2026/9/23 18:31:14

魏德米勒接线端子原理详解

魏德米勒接线端子2026最新实战指南 官方文档翻了三遍还是头大?别慌,我是老张,在工厂干了十年电气自动化,见过太多人卡在魏德米勒接线端子上。2026年最新行业数据显示,78%的现场工程师在首次独立接线时都会遇到“线没压紧”或“信号干扰”的问题,而官方那几十页的PDF文档,往往把最关键的扭矩参数藏在附…

作者头像 李华
网站建设 2026/9/23 18:31:11

HCIA Datacom H12-811题库:VRP命令直觉训练与实操闭环指南

简介&#xff1a;本资源是华为HCIA-Datacom认证&#xff08;H12-811&#xff09;英语版官方题库PDF&#xff0c;专为备考该国际通用网络工程师初级认证的考生设计&#xff0c;覆盖OSI模型分层原理、VRP平台命令操作、TCP/IP协议栈、ARP地址解析、静态路由配置、链路聚合与堆叠、…

作者头像 李华
网站建设 2026/9/23 18:30:48

搞定什么明了:版本升级API大改后的保姆级教程

搞定什么明了:版本升级API大改后的保姆级教程 版本升级后 API 全变了,你的代码直接跑不通,报错信息看得人头皮发麻?别慌,这篇保姆级教程专治各种“升级即崩溃”。…

作者头像 李华
网站建设 2026/9/23 18:30:15

2026最新红帽手写实战:3步搞定项目架构

2026最新红帽手写实战:3步搞定项目架构 看了一堆教程还是不会写项目?别急,问题不在你笨,而在你只学了语法没学“骨架”。 很多开发者陷入“代码孤岛”,函数会写,但一上手真实业务就崩。2026最新的工程化思维,核心是把业务逻辑从代码里剥离出来,用清晰的结构去约束混乱的需求。…

作者头像 李华