Tekton 是云原生环境下面的非常强大的 CICD 产品。 如果你按照 Tekton 的官方文档来学习,使用 Tekton, 可能会跟遇到很多障碍。 Tekton 的技术架构非常优秀,同时Tekton 不太好的产品体验,使得这个优秀工具的应用困难了很多。
Tekton 的官方文档: Getting Started | Tekton
按照这个官方文档, 你可能会有很多疑问:
1.Task 和 Pipeline 我要单独一个个创建吗?正确的运行 Pipeline 的姿势是什么?
2.每次执行一个 Pipeline 需要通过 命令行 kubectl apply 一个 PipelineRun 的 yaml 来触发吗?
3.最简单的定义一个包含 Task 和 Pipeline 的例子是怎么样的?
4.每一个 Task/Step 都在独立的容器中运行, 那么容器直接如何交换数据,比如之前取到的代码,后面如何使用?
5.Tekton 的官方文档说不建议使用 PipelineResources,但官网还没有更新文档, 那么正确的方法如何访问 Git? 这里是 Pipeline 的文档: https://tekton.dev/docs/pipelines/pipelines/#specifying-resources
6.最简单的从 Git 仓库获取代码 的例子是怎么样的?
7.我在 kubernetes 环境中根本部署不起来 tekton,报错访问不到 gcr.io,我该如何部署呢?
8.我需要部署哪些服务和资源,可以把 tekton 用起来, 完成 从拉取代码,构建 Docker 镜像,推送镜像, 部署新镜像到 k8s 环境的过程?
有这么多的疑问, 加上在国内的环境中要部署起来 Tekton 是一件非常困难的事情。下面一个个来解答这些问题,帮助你解决遇到的这些障碍。
1.Task 和 Pipeline 我要单独一个个创建吗?正确的运行 Pipeline 的姿势是什么?
不需要一个个创建 Task,然后在 Pipeline 里面引用。 可以在 Pipeline 的 Yaml 定义内嵌的 Task。这种 Task 属于自定义的 Task。 如果用的是 Tekton Hub 里面的 Task, 比如 git-clone 这个 Task,那么是需要事先部署 Task 到 K8S 环境的,Pipeline, Task 都是 Kubernetes 里面的 CRD(自定义资源,即 Custom Resource Definition)。
几个重要的概念:

本文详细解答了Tekton在云原生环境中的使用疑惑,包括Task与Pipeline的关系、如何触发Pipeline、Task间的通信方式、访问Git资源的策略、部署Tekton遇到的问题及解决方案。Tekton是Kubernetes上的CICD工具,通过Task、PipelineRun等概念组织自动化流程。在部署Tekton时,需注意网络访问限制,可能需要手动拉取并推送镜像。此外,文章还介绍了从Git获取代码、构建和部署Docker镜像的基本流程。
最低0.47元/天 解锁文章
1075

被折叠的 条评论
为什么被折叠?



