Tekton(二)Tekton Pipelines 安装指南:快速构建 Kubernetes CI/CD 流水线
围绕工程实践、云原生与开发经验的深度整理。
- 8/11/2023
随着云原生时代的到来,Kubernetes、Docker 等容器技术和容器编排系统的普及,持续集成和持续交付(CI/CD)成为现代软件开发不可或缺的实践。在 Kubernetes 环境中构建和管理 CI/CD 流程,传统的工具可能面临一些挑战。而 Tekton Pipelines 作为一个开源框架,专为 Kubernetes 设计,能够提供原生的、可扩展的 CI/CD 解决方案,为开发者在 Kubernetes 上构建、测试和部署应用程序提供便利。
安装
安装要求
- Starting from the v0.24.x release of Tekton: Kubernetes version 1.18 or later
- Starting from the v0.27.x release of Tekton: Kubernetes version 1.19 or later
- Starting from the v0.30.x release of Tekton: Kubernetes version 1.20 or later
- Starting from the v0.33.x release of Tekton: Kubernetes version 1.21 or later
- Starting from the v0.39.x release of Tekton: Kubernetes version 1.22 or later
- Starting from the v0.41.x release of Tekton: Kubernetes version 1.23 or later
- Starting from the v0.45.x release of Tekton: Kubernetes version 1.24 or later
Tekton Pipelines 🔗是一个用于定义和执行持续集成和持续交付 (CI/CD) 工作流的开源框架。您可以根据以下步骤在 Kubernetes 集群上安装 Tekton Pipelines。
安装 Pipeline
步骤一:选择版本并安装
根据您的需求,选择以下任一命令来安装 Tekton Pipelines。
最新官方发布版本:
kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml
Nightly 版本(每夜构建的版本):
kubectl apply --filename https://storage.googleapis.com/tekton-releases-nightly/pipeline/latest/release.yaml
特定版本:
将 <version_number> 替换为您想要安装的具体版本号,例如 v0.37.0。
kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/previous/<version_number>/release.yaml
未打标签的版本:
如果您的容器运行时不支持 image-reference:tag@digest:
kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.notags.yaml
步骤二:确认安装完成
使用以下命令监视 Tekton Pipelines 的安装过程:
kubectl get pods --namespace tekton-pipelines --watch
等待直到所有组件的 READY 列下都显示 1/1,这表示安装已完成。按下 Ctrl + C 停止监视。
➜ ~ kubectl get pod -n tekton-pipelines
NAME READY STATUS RESTARTS AGE
tekton-pipelines-controller-789ffc458d-z8tt4 1/1 Running 0 10s
tekton-pipelines-webhook-59b765bdf9-2mq5r 1/1 Running 0 10s
值得注意的是:所有 tekton 所用到的镜像均来自gcr.io,国内无法正常拉取,可以选择代理或者另外使用一台可访问的机器预拉取下来。
安装 Dashboard(可选)
tekton dashboard 🔗是 Tekton Pipelines 的官方 Web UI。它是一个用于可视化和管理 Tekton Pipelines 的图形化界面,使得在 Kubernetes 上运行的持续集成和持续交付 (CI/CD) 工作流更加直观和易于使用。
在 Kubernetes 集群上安装 Tekton Dashboard 非常简单,它能够让您可视化和管理 Tekton Pipelines 资源。以下是安装 Tekton Dashboard 的步骤:
步骤 1:下载 Tekton Dashboard 描述文件
运行以下命令,下载最新的 Tekton Dashboard 描述文件:
wget https://storage.googleapis.com/tekton-releases/dashboard/latest/release.yaml
或者获取特定版本,将 <version_number> 替换为您想要安装的具体版本号,例如 v0.37.0。
wget https://storage.googleapis.com/tekton-releases/dashboard/previous/<version_number>/release.yaml
步骤 2:安装 Tekton Dashboard
使用kubectl apply命令将 Tekton Dashboard 清单应用到 Kubernetes 集群:
kubectl apply -f release.yaml
默认情况下,此安装会将 Tekton Dashboard 设置为只读模式,这意味着您可以查看但无法修改资源。
如果您想以读/写模式安装 Dashboard,请使用相应的描述文件(注意提前拉取下来):
# 适用于版本v0.31.0及更早版本:
kubectl apply -f tekton-dashboard-release.yaml
# 适用于当前版本和v0.31.0之后的版本:
kubectl apply -f release-full.yaml
步骤 3:确认安装完成
要监视安装进度,请检查 Tekton Dashboard 的 Pod 状态:
kubectl get pods --namespace tekton-pipelines --watch
观察所有组件都显示”Running”状态。一切都正常运行后,按下CTRL+C停止监视。
➜ ~ kubectl get pod -n tekton-pipelines
NAME READY STATUS RESTARTS AGE
tekton-dashboard-584b97955c-92hg7 1/1 Running 0 16s
tekton-pipelines-controller-789ffc458d-z8tt4 1/1 Running 0 10m
tekton-pipelines-webhook-59b765bdf9-2mq5r 1/1 Running 0 10m
值得注意的是:和 pipeline 一样,所有 tekton 所用到的镜像均来自gcr.io,国内无法正常拉取,可以选择代理或者另外使用一台可访问的机器预拉取下来。
总结
在本文中,我们深入探讨了 Tekton Pipelines 在 Kubernetes 环境中的安装过程以及 Tekton Dashboard 的部署方法。Tekton Pipelines 作为一个令人兴奋的开源项目,为开发团队带来了更加现代化、灵活和可靠的持续集成和持续交付解决方案。
通过 Tekton Pipelines 的安装,您的团队将能够在 Kubernetes 上构建和管理高效的 CI/CD 工作流,实现更快速、高质量的应用程序交付。Tekton 的自定义资源定义(CRDs)和组件架构为流水线的定义和执行提供了强大的能力,并允许您根据项目需求和团队喜好进行定制。
同时,Tekton Dashboard 的安装为您提供了一个直观和易用的图形化界面,让您更加方便地可视化和管理 Tekton Pipelines 资源。
在继续探索 Tekton Pipelines 的过程中,您可以将逐渐发现它们作为 Kubernetes 原生的工具,与现有的容器生态系统紧密结合,为您的团队带来了无限的可能性。
无论您是刚开始接触 Tekton Pipelines,还是已经熟练使用的开发者,我希望本文能为您提供了有价值的信息和指引。让我们一起进入云原生时代,共同构建高效、弹性和可靠的应用交付流程。
感谢您阅读本文,如果您对 Tekton Pipelines 或任何相关主题有更多疑问或想法,欢迎留言和交流。期待与您在云原生的道路上相遇!🌟🚀
标题:Tekton(二)Tekton Pipelines 安装指南:快速构建 Kubernetes CI/CD 流水线
作者:lomtom