关注回复【学习交流群】加入【安全开发运维】答疑交流群
请朋友们【多多点击文中的广告】,支持作者更新更多文章。
原文链接:云原生 | 下一代CI/CD工具,Tekton入门部署指南Tekton是一个开源的云原生持续集成和持续交付/部署Cloud Native CI/CD解决方案, 使用Golang语言进行开发,允许开发人员通过K8S云平台快速灵活定义流水线,更加便捷构建、测试和部署系统,目前是由CD基金会管理的项目。https://mp.weixin.qq.com/s/cMzgur6KE6XdswvUWhyJUA
目录:
本文为作者原创文章,为尊重作者劳动成果禁止非授权转载,若需转载请在【全栈工程师修炼指南】公众号留言,或者发送邮件到 [[email protected]] 中我将及时回复。
历史背景
Tekton 的前身是 Knative
的子项目 build-pipeline
,主要用来给 Kantive
的 build 模块增加 pipeline 功能之后独立出来,Tekton的最终目标是一个通用的 CI/CD
工具。
目前,私有云市场占有率比较高的 CICD 工具对 Kubernetes
都有所支持,比如 Jenkins、GitLab CI
。但是这些工具只是将 Kubernetes 作为其扩展的一个方面,Kubernetes 作为新的基础设施,需要原生的 CICD 方案。另一方面,Jenkins 的子项目 JenkinsX
也开始默认使用 Tekton 作为 CI 引擎。使用云原生 CRD
(是Kubernetes内置的资源类型,即自定义资源的定义) + Controller
实现的 Tekton ,无疑有机会成为云原生的主流编排引擎。
简单介绍
描述: Tekton 是一个开源的云原生持续集成和持续交付/部署【Cloud Native CI/CD】解决方案, 使用Golang语言进行开发,允许开发人员通过K8S云平台快速灵活定义流水线,从而更加便捷构建、测试和部署系统,目前是由CD基金会[https://cd.foundation/]管理的项目,其遵循OpenSSF最佳实践。
温馨提示: 此章节作为GitOps中的Tekton初识章节,作者后续会持续更新Tekton+ArgoCD 结合实践教程,Tekton 更专注构建 CI/CD 流水线,ArgoCD 更专注应用管理和部署,希望大家多多关注【全栈工程师修炼指南
】,作者将推出更多原创文章
。
Tekton 官网地址: https://tekton.dev/
描述: 前面介绍到 Tekton 主要用于在云原生架构环境中完成CI、CD部分,主要是devops工程师以及开发人员使用,其侧重点应该是在云原生微服务应用以及传统应用
的CI持续集成上,
除此之外使用 tekton 的好处如下
可移植性: 跨平台、语言、和部署环境。它适用于 Jenkins、Jenkins X、Skaffold、 Knative 和许多其他流行的 CI/CD 工具。
可定制:Tekton 实体是完全可定制的,从而具有高度的灵活性。平台工程师可以定义非常详细的构建基目录,以供开发人员在各种情况下使用
可重复使用:Tekton 实体是完全可移植的,因此一旦定义,组织内的任何人都可以使用给定的管道并重用其构造块。这使开发人员可以快速构建复杂的管道,而无需“重新发明轮子”。
可扩展:Tekton Catalog是Tekton社区驱动的存储库。您可以使用Tekton目录中的预制组件快速创建新的并展开现有管道。
标准化:Tekton 在您的Kubernetes集群上作为扩展安装并运行,并使用成熟的 Kubernetes 资源模型, 其工作负载在 Kubernetes 容器内执行。
缩放性:为了增加工作负载容量,您可以简单地将节点添加到群集, Tekton 随集群一起扩展 无需重新定义资源分配或对管道进行任何其他修改。
Tekton Pipelines:Tekton 的基础部分,它定义了一组Kubernetes自定义资源,这些资源充当构建块,您可以从中组装CI/CD管道。
Tekton Triggers:允许基于 event 实例化 pipeline。例如,每次PR与GitHub存储库合并时,您都可以触发管道的实例化和执行。
Tekton Cli:是Tekton Pipelines的一个基于Web的图形界面,用于显示有关管道执行的信息。目前正在进行中。
Tekton Dashboard:是Tekton Pipelines的一个基于Web的图形界面,用于显示有关管道执行的信息。
Tekton Catalog:是一个由社区贡献的高质量Tekton构建块(任务、管道等)的存储库,可在您自己的管道中使用。
Tekton Hub:基于Web的图形界面,用于访问Tekton Catalog。
Tekton Operator:是一个Kubernetes Operator模式,允许您在Kubernete集群上安装、更新和删除Tekton项目。
Tekton Chain : 为使用Tekton Pipelines建造的文物提供生成、存储和标记出处的工具。
Tekton Pipelines 中最重要的五个概念:Task
、TaskRun
、Pipeline
、PipelineRun
、PipelineResources
(已在v0.44版本被丢弃,此处简单了解)。
Task
:Tekton 中的最小单元,代表一个任务模板,包括多个步骤。定义一个有序的Step以及每个 Step 调用特定的 在一组特定的输入上构建工具,并生成一组特定的输出,这些输出可用作下一个输入 Step。
TaskRun
:实例化一个特定的 Task 在一组特定的输入并生成一组特定的输出,并且一个 TaskRun 会创建一个对应的 Pod,每个 step 对应 pod 中的一个 container。
Pipeline
:Tekton 中一系列有序 Task 组成的有向无环图,定义了流水线的模板。
PipelineRun
:Pipeline 执行时需要定义一个 PipelineRun,作为流水线的实例,生成一条流水线记录。
PipelineResource
(已被丢弃):流水线执行过程中需要的资源信息。
Steps, Tasks, and Pipelines 运行示例图
在 Step
中 定义CI/CD工作流中可以完成某一阶段的操作,例如代码拉取,编译构建Java程序,镜像构建,以及应用部署,Tekton 通常会为每一个阶段生成一个Container。
在 Task
中 是按照顺序排列 Step 的集合,定义装载一个Kubernetes卷共享环境,Tekton以Kubernetes pod的形式运行任务,其中每个步骤都成为pod中的运行容器。
在 Pipelines
中是按照顺序排列 Task 的集合,Tekton 整理所有的Task,将它们连接到有向无环图(DAG)中,并按顺序依次执行。换句话说,它创建了许多Kubernetes pod,并确保每个pod都能按要求成功运行。
温馨提示: 任务(Tasks
)和管道(Pipelines
)被指定为Kubernetes集群中的自定义资源(CRD
)。
知识扩展: Task、Pipeline 分别用于什么时候?
Task
- 适用于更简单的工作负载,例如运行测试、lint 或构建 Kaniko 缓存
, Task 在单个中执行 Kubernetes Pod,使用单个磁盘,通常保持简单。Pipeline
- 适用于复杂的工作负载,例如静态分析,以及测试、构建和部署复杂的项目
TaskRuns and PipelineRuns 运行示例图
pipelineRuns
是 Pipeline 的执行入口,可以触发执行 Pipeline 即 CI/CD工作流
,每次执行都将成为Kubernetes集群中可跟踪的pipelineRun资源。
TaskRuns
是 Task 的特定执行, 当您选择在Pipeline 之外运行Task时非常有用,您可以通过它查看任务中每个步骤执行的细节。
知识总结: TaskRuns
和 PipelineRuns
运行将资源与 Task
和 Pipeline
连接起来,运行必须包括资源的实际地址,例如存储库的URL、任务或管道需求,从而允许开发人员针对不同的输入和输出重用 Task
或者 Pipeline
.
温馨提示: 您可以手动创建 taskRun
或pipelineRuns
以及通过 Tekton Triggers 自动触发Tekton立即运行Task或pipeline。
描述: 本小节将讲解 Tekton 如何学习及其使用,我们可以参考官方的Task、Pipeline以及Tekton Triggers示例进行入门学习,快速开始:https://tekton.dev/docs/getting-started/
其次是参考Tekton Github项目中的Task、Taskrun、Pipeline、Pipeline以及挂载卷、Step 结果存储等高级示例示例,地址为: https://github.com/tektoncd/pipeline/tree/main/examples
最后是参考Tekton Hub中的常用的Task脚本,帮助各位看友可以快速上手使用,等待熟悉之后后期可以自行编写Task,再使用Pipeline进行自定义流水线组合,地址为:https://hub.tekton.dev
至此,我们可以从上述的网站中可以快速学习上手使用,并应用在你企业内部GitOps环境中。
0x01 安装部署
部署环境
测试环境及版本说明:
# K8S 高可用集群主机 x 4
系统发行版: Ubuntu 20.04
Kubernetes v1.23.17
Tekton -> Pipelines v0.44.4 | Triggers v0.22.2 | Dashboard v0.35.1
描述: Tekton Pipelines 项目提供了 k8s 风格的资源用于声明 CI/CD 样式的管道。Tekton Pipelines 可以部署到任何的K8S集群,管道中的任务可以独立运行,并且Git存储资源可以在之间相互轻松交互。
项目地址: https://github.com/tektoncd/pipeline/releases
温馨提示: 针对于不同的Kubernetes版本需要采用不同的Tekton Pipelines版本,你应该查看官方文档 Required Kubernetes Version 章节, 例如作者此时k8s环境为 v1.23.x版本应该选用 v0.41.x <= 可选范围
v0.24.x release of Tekton: Kubernetes version 1.18 or later
v0.27.x release of Tekton: Kubernetes version 1.19 or later
v0.30.x release of Tekton: Kubernetes version 1.20 or later
v0.33.x release of Tekton: Kubernetes version 1.21 or later
v0.39.x release of Tekton: Kubernetes version 1.22 or later
v0.41.x release of Tekton: Kubernetes version 1.23 or later
v0.45.x release of Tekton: Kubernetes version 1.24 or later
温馨提示: Pipelines v0.44.4 | Triggers v0.22.2 | Dashboard v0.35.1 版本的相关镜像都可以在作者dockerHub中下载,地址 https://hub.docker.com/r/weiyigeek/
偷偷的告诉你哟?【极客全栈修炼】微信小程序已开放
可直接在微信里面直接浏览博主文章哟,后续将上线更多有趣的小工具。
安装步骤
Step 1.下载 tektoncd pipeline 资源部署清单。
mkdir -vp /storage/dev/webapp/tekton-pipelines/Tekton
cd /storage/dev/webapp/tekton-pipelines/Tekton
curl -Ls https://github.com/tektoncd/pipeline/releases/download/v0.44.4/release.yaml -o TektonCD-Pipelines.yaml
Step 2.使用作者此篇【 如何使用Github Action优雅的同步国外镜像到DockerHub或私有仓库
】文章的方式[ https://mp.weixin.qq.com/s/0STtKrlgYqpoqwMgb0QnoA],利用Github Action来拉取指定镜像到我们的DockerHub中或私有镜像仓库中,执行如下Shell脚本构建skopeo同步命令以及替换资源清单中相关镜像。
DOCKER_USERHUB=weiyigeek/tektoncd-pipeline-
grep "image: " TektonCD-Pipelines.yaml | cut -f 2,3 -d ":" | cut -f 1 -d "@" > TektonCD-Pipelines-image.txt
grep "git-image" TektonCD-Pipelines.yaml | sed -e "s#,#\n#g" -e 's/"//g' | grep "gcr.io" | cut -f 1 -d "@" >> TektonCD-Pipelines-image.txt
for i in `cat TektonCD-Pipelines-image.txt`;do
echo skopeo copy --all docker://${i} docker://${DOCKER_USERHUB}${i##*/}
sed -i "s#${i}#${DOCKER_USERHUB}${i##*/}#g" TektonCD-Pipelines.yaml
done
执行结果:
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/controller:v0.44.4 docker://weiyigeek/tektoncd-pipeline-controller:v0.44.4
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/resolvers:v0.44.4 docker://weiyigeek/tektoncd-pipeline-resolvers:v0.44.4
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/webhook:v0.44.4 docker://weiyigeek/tektoncd-pipeline-webhook:v0.44.4
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init:v0.44.4 docker://weiyigeek/tektoncd-pipeline-git-init:v0.44.4
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/entrypoint:v0.44.4 docker://weiyigeek/tektoncd-pipeline-entrypoint:v0.44.4
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/nop:v0.44.4 docker://weiyigeek/tektoncd-pipeline-nop:v0.44.4
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/sidecarlogresults:v0.44.4 docker://weiyigeek/tektoncd-pipeline-sidecarlogresults:v0.44.4
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/imagedigestexporter:v0.44.4 docker://weiyigeek/tektoncd-pipeline-imagedigestexporter:v0.44.4
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/pullrequest-init:v0.44.4 docker://weiyigeek/tektoncd-pipeline-pullrequest-init:v0.44.4
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/workingdirinit:v0.44.4 docker://weiyigeek/tektoncd-pipeline-workingdirinit:v0.44.4
Github项目地址(欢迎大家Fork,然后自行更改项目中的secrets即可): https://github.com/WeiyiGeek/action-sync-images/ ,将上述执行结果复制到入下图所示的工作流中。
Step 3.部署 Tekton-Pipelines
# 部署 Tekton-Pipelines
kubectl apply -f TektonCD-Pipelines.yaml
# 查看Pod状态(默认创建 tekton-pipelines 与 tekton-pipelines-resolvers 两个名称空间 )
kubectl get pods --namespace tekton-pipelines -l app.kubernetes.io/part-of=tekton-pipelines
# NAME READY STATUS RESTARTS AGE
# tekton-pipelines-controller-568fdb7466-dsddr 1/1 Running 0 5m
# tekton-pipelines-webhook-7f7cc7d4d6-4tsmb 1/1 Running 0 5m
kubectl get pods --namespace tekton-pipelines-resolvers -l app.kubernetes.io/part-of=tekton-pipelines
# NAME READY STATUS RESTARTS AGE
# tekton-pipelines-remote-resolvers-7b4bc78db5-rwj5j 1/1 Running 0 5m
执行结果:
Monitor the installation:
kubectl get pods --namespace tekton-pipelines --watch
When all components show 1/1 under the READY column, the installation is complete. Hit Ctrl + C to stop monitoring.
# 若没有其他错误及tekton-pipelines名称空间下pod均已全部启动,并且显示如下提示则表示安装成功。
Congratulations! You have successfully installed Tekton Pipelines on your Kubernetes cluster.
描述: Tekton Triggers是一个Kubernetes自定义资源定义(CRD)控制器,它允许您根据从事件有效负载中提取的信息创建Kubernete资源。
项目地址: https://github.com/tektoncd/triggers
安装文档: https://tekton.dev/docs/installation/triggers/
温馨提示: 同样的,针对于不同的Kubernetes版本需要采用不同的Tekton triggers版本,你应该查看官方文档 Required Kubernetes Version 章节, 例如作者此时k8s环境为 v1.23.x版本应该选用v0.22.x
的版本 。
v0.23.x release of Triggers: Kubernetes version 1.24 or later
v0.22.x release of Triggers: Kubernetes version 1.23 or later
v0.21.x release of Triggers: Kubernetes version 1.22 or later
安装步骤
Step 1.从官网下载 tekton-triggers 所需的资源清单。
curl -ls https://storage.googleapis.com/tekton-releases/triggers/previous/v0.22.2/release.yaml -o TektonCD-Triggers.yaml
curl -ls https://storage.googleapis.com/tekton-releases/triggers/previous/v0.22.2/interceptors.yaml -o TektonCD-Triggers-interceptors.yaml
Step 2.同安装pipelines步骤2一样,作者使用此篇【 如何使用Github Action优雅的同步国外镜像到DockerHub或私有仓库
】文章的方式[https://mp.weixin.qq.com/s/0STtKrlgYqpoqwMgb0QnoA],利用Github Action来拉取指定镜像到我们的DockerHub中或私有镜像仓库中,执行如下Shell脚本构建skopeo同步命令以及替换资源清单中相关镜像。
DOCKER_USERHUB=weiyigeek/tektoncd-triggers-
grep "image: " TektonCD-Triggers.yaml TektonCD-Triggers-interceptors.yaml | cut -f 3,4 -d ":" | cut -f 1 -d "@" | tr -d '"'> TektonCD-triggers-image.txt
grep '-el-image' TektonCD-Triggers.yaml | sed -e "s#,#\n#g" -e 's/"//g' | grep "gcr.io" | cut -f 1 -d "@" >> TektonCD-triggers-image.txt
for i in `cat TektonCD-triggers-image.txt`;do
echo skopeo copy --all docker://${i} docker://${DOCKER_USERHUB}${i##*/}
if [[ $(echo ${i} | grep -c "interceptors") -gt 0 ]];then
sed -i "s#${i}#${DOCKER_USERHUB}${i##*/}#g" TektonCD-Triggers-interceptors.yaml
else
sed -i "s#${i}#${DOCKER_USERHUB}${i##*/}#g" TektonCD-Triggers.yaml
fi
done
执行结果:
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/triggers/cmd/controller:v0.22.2 docker://weiyigeek/tektoncd-triggers-controller:v0.22.2
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/triggers/cmd/webhook:v0.22.2 docker://weiyigeek/tektoncd-triggers-webhook:v0.22.2
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/triggers/cmd/interceptors:v0.22.2 docker://weiyigeek/tektoncd-triggers-interceptors:v0.22.2
skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/triggers/cmd/eventlistenersink:v0.22.2 docker://weiyigeek/tektoncd-triggers-eventlistenersink:v0.22.2
Github项目地址(欢迎大家Fork,然后自行更改项目中的secrets即可): https://github.com/WeiyiGeek/action-sync-images/ ,将上述执行结果复制到pipelines步骤2图中所示的工作流中。
Step 3.部署 Tekton Triggers
# 部署Triggers 资源清单
kubectl apply -f TektonCD-Triggers.yaml
kubectl apply -f TektonCD-Triggers-interceptors.yaml
# 查看部署资源清单Pod是否正常运行
$ kubectl get pods --namespace tekton-pipelines -l app.kubernetes.io/part-of=tekton-triggers --watch
# NAME READY STATUS RESTARTS AGE
# tekton-triggers-controller-56d988bf44-sfp5x 1/1 Running 0 6m4s
# tekton-triggers-core-interceptors-d56b49cf-gr9b5 1/1 Running 0 6m3s
# tekton-triggers-webhook-544d4d5f6-msg4g 1/1 Running 0 6m4s
描述:Tekton Dashboard是一个通用的、基于web的用户界面,用于Tekton Pipelines和Tekton Triggers资源, 它允许用户管理和查看Tekton资源的创建、执行和结果查看,其支持的一些功能:
PipelineRun和TaskRun状态和日志的实时视图
按标签筛选资源
查看资源概述和YAML
显示整个集群的资源或限制特定命名空间的可见性
直接从git存储库导入资源
通过扩展添加功能
项目地址: https://github.com/tektoncd/dashboard/
安装文档: https://tekton.dev/docs/dashboard/
温馨提示: 同样的,针对于不同的Kubernetes版本需要采用不同的Tekton dashboard版本并且对应着Pipelines Releases / Triggers Releases
版本,你应该查看官方文档 Required Kubernetes Version 章节, 例如作者此时k8s环境为 v1.23.x版本应该选用v0.22.x
的版本 。
# v0.35 (LTS)
Latest Release: v0.35.1 (2023-05-31) (docs)
Initial Release: v0.35.0 (2023-04-25)
End of Life: 2024-04-24
Patch Releases: v0.35.0, v0.35.1
Supported Pipelines Releases: v0.44.x LTS, v0.47.x LTS
Supported Triggers Releases: v0.23.x
安装步骤
Step 1.从官网下载 Tekton Dashboard 所需的资源清单, 注意此处分为 release
与 release-full
两个版本前置只支持read,而后者支持修改流水线等操作,此处作者使用full版本。
curl -ls https://storage.googleapis.com/tekton-releases/dashboard/previous/v0.35.1/release-full.yaml -o TektonCD-Dashboard-full.yaml
Step 2.同安装pipelines步骤2一样,作者使用此篇【如何使用Github Action优雅的同步国外镜像到DockerHub或私有仓库
】文章的方式,利用Github Action来拉取指定镜像到我们的DockerHub中或私有镜像仓库中,执行如下Shell脚本构建skopeo同步命令以及替换资源清单中相关镜像。
DOCKER_USERHUB=weiyigeek/tektoncd-dashboard-
grep "image: " TektonCD-Dashboard-full.yaml | cut -f 2,3 -d ":" | cut -f 1 -d "@" > TektonCD-dashboard-image.txt
for i in `cat TektonCD-dashboard-image.txt`;do
echo skopeo copy --all docker://${i} docker://${DOCKER_USERHUB}${i##*/}
sed -i "s#${i}#${DOCKER_USERHUB}${i##*/}#g" TektonCD-Dashboard-full.yaml
done
执行结果: skopeo copy --all docker://gcr.io/tekton-releases/github.com/tektoncd/dashboard/cmd/dashboard:v0.35.1 docker://weiyigeek/tektoncd-dashboard-dashboard:v0.35.1
Step 3.部署Tekton Dashboard
# 部署 Tekton Dashboard 资源清单
kubectl apply -f TektonCD-Dashboard-full.yaml
# namespace/tekton-dashboard created
# customresourcedefinition.apiextensions.k8s.io/extensions.dashboard.tekton.dev created
# serviceaccount/tekton-dashboard created
# role.rbac.authorization.k8s.io/tekton-dashboard-info created
# clusterrole.rbac.authorization.k8s.io/tekton-dashboard-backend created
# clusterrole.rbac.authorization.k8s.io/tekton-dashboard-tenant created
# rolebinding.rbac.authorization.k8s.io/tekton-dashboard-info created
# clusterrolebinding.rbac.authorization.k8s.io/tekton-dashboard-backend created
# configmap/dashboard-info created
# service/tekton-dashboard created
# deployment.apps/tekton-dashboard created
# clusterrolebinding.rbac.authorization.k8s.io/tekton-dashboard-tenant created
# 查看部署情况
kubectl get pods --namespace tekton-pipelines -l app.kubernetes.io/part-of=tekton-dashboard
# NAME READY STATUS RESTARTS AGE
# tekton-dashboard-855f998964-pj6xx 1/1 Running 0 46h
Step 4.为Tekton Dashboard站点配置域名test.weiyigeek.top
,此处我在腾讯云中申请了免费SSL证书,为此站点配置SSL, 提交申请之后大约5~10分钟的样子即可,签发下来此时在证书后点击下载根证书下载(crt文件)以及 Nginx(适用大部分场景)(pem文件、crt文件、key文件),并上传至服务器使用unzip解压。
申请地址: https://cloud.tencent.com/act/cps/redirect?redirect=10019&cps_key=b33075ae5a2baf3b47e7456ee5821502
# 解压证书
unzip test.weiyigeek.top_nginx.zip
cd test.weiyigeek.top_nginx/ && ls
test.weiyigeek.top_bundle.crt test.weiyigeek.top_bundle.pem test.weiyigeek.top.csr test.weiyigeek.top.key
# 创建 tls 的 secret
kubectl create secret tls test-weiyigeek-top-certs --cert=test.weiyigeek.top_bundle.crt --key=test.weiyigeek.top.key -n tekton-pipelines
# secret/test-weiyigeek-top-certs created
Step 5.此处作者已经在集群中安装了ingress-nginx
,若还没有安装部署的可以参考作者此篇文章【 Ingress-Nginx 服务暴露基础学习与实践
】[https://blog.weiyigeek.top/2020/5-27-529.html]或者ngress-nginx官网,执行下述命令创建ingress规则,以便我们通过https://test.weiyigeek.top/tekton/
地址访问 Tekton-Dashboard 服务。
# ingressclasses 控制器查看
kubectl get ingressclasses.networking.k8s.io
# NAME CONTROLLER PARAMETERS AGE
# nginx k8s.io/ingress-nginx 397d
# TektonCD-Dashboard-ingress 资源清单
tee TektonCD-Dashboard-ingress.yaml <<'EOF'
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: tekton-dashboard
namespace: tekton-pipelines
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
rules:
- host: test.weiyigeek.top
http:
paths:
- path: /tekton(/|$)(.*)
pathType: ImplementationSpecific
backend:
service:
name: tekton-dashboard
port:
number: 9097
tls:
- hosts:
- test.weiyigeek.top
secretName: test-weiyigeek-top-certs
EOF
# 部署 Dashboard-ingress
kubectl apply -f TektonCD-Dashboard-ingress.yaml
# ingress.networking.k8s.io/tekton-dashboard created
# 查看部署 Dashboard-ingress
kubectl get ingress -n tekton-pipelines
# NAME CLASS HOSTS ADDRESS PORTS AGE
# tekton-dashboard test.weiyigeek.top 10.107.81.40 80, 443 15s
亲,文章就要看完了,不关注一下【全栈工程师修炼指南】吗?
Step 6.客户端设置硬解析或者使用内部DNS服务器将test.weiyigeek.top
解析到Kubernetes任意一个节点,通常会指定一个出口节点,例如此处10.20.176.215 test.weiyigeek.top
。
然后使用浏览器访问 tekton-dashboard 地址(https://test.weiyigeek.top/tekton/
) , 配置无误将显示如下图所示:
至此,Tekton 在K8S常规组件的安装完毕。
描述:Tekton Pipelines CLI项目提供了一个命令行界面(CLI),用于与Tekton交互,Tekton是一个用于持续集成和交付(CI/CD)系统的开源框架。
项目地址: https://github.com/tektoncd/cli/releases
使用文档: https://tekton.dev/docs/cli/
安装流程
Step 1.指定当前最新的Cli版本,使用二进制方式进行安装部署.
CLI_VERSION="0.31.1"
curl -LO https://github.com/tektoncd/cli/releases/download/v${CLI_VERSION}/tkn_${CLI_VERSION}_Linux_x86_64.tar.gz
# 此处,命令值得学习,只解压压缩包中的tkn到/usr/local/bin/目录中
tar xvzf tkn_${CLI_VERSION}_Linux_x86_64.tar.gz -C /usr/local/bin/ tkn
Step 2.将tkn添加为kubectl插件.
# 创建软链接
ln -s /usr/local/bin/tkn /usr/local/bin/kubectl-tkn
# 验证插件配置情况
kubectl plugin list
# The following compatible plugins are available:
# /usr/local/bin/kubectl-tkn
本文至此完毕,更多技术文章,尽情等待下篇好文!
原文地址: https://blog.weiyigeek.top/2023/7-22-768.html
【 如果此篇文章对你有帮助,请你将它分享给更多的人! 】
学习书籍推荐 往期发布文章
回复【0014】获取【Nginx学习之路汇总】
回复【0015】获取【Jenkins学习之路汇总】
回复【0011】获取【k8S二进制安装部署教程】
回复【10006】获取【CentOS8安全加固脚本】
回复【10001】获取【WinServer安全加固脚本】
回复【0008】获取【Ubuntu22.04安装与加固脚本】
回复【10002】获取【KylinOS银河麒麟安全加固脚本】
热文推荐
GitOps实践 | 快速在银河麒麟KylinOS国产系统部署最新Gitlab-CE企业私有代码仓库
GitOps实践 | 快速在银河麒麟KylinOS国产系统部署最新Harbor企业私有镜像仓库
如何使用Github Action优雅的同步国外镜像到DockerHub或私有仓库
1.Jenkins入门基础与简单配置介绍
2.Jenkins入门基础使用与Gitlab持续化集成部署
3.Jenkins入门基础使用与Maven+SonarQube集成配置与实践
11.Jenkins进阶之kubernetes集群搭建分布式架构基础环境
Jenkins Pipeline 流水线如何根据代仓库的 webhook 自动触发拉取提交的分支代码并构建?
持续集成案例之使用Docker运行自构建Jenkins的Agent镜像固定工作节点实践(分享企业项目流水线代码)
长按(扫描)二维码 ,关注 【全栈工程师修炼指南】(^U^)ノ~YO
欢迎添加作者微信【weiyigeeker】,一起入坑吧!
关注回复【学习交流群】即可加入【安全开发运维沟通交流群】
各位亲爱的读者,现在公众号更改了推送规则,如果您需要第一时间看到我们推送的好内容。
一定要记得给公众号星标,经常点赞、在看、转发、分享和留下您的评论 !
点击【"阅读原文"】获取更多有趣的知识 若有帮助请点个【在看 + 赞 】