可视化 Tekton 组件 Tekton Dashboard

简介: Tekton Dashboard 使用指南。

前言

Tekton 作为一款开源的云原生 CI/CD 框架,前身是 Knative 的 build-pipeline 项目。作为 CI/CD 框架,其本身并不是一个 CI/CD 产品,所以不应拿 Tekton 与 Jenkins 或者 Drone 这样的 CI/CD 产品进行比较,Tekton 本质是一个强大而灵活的 CI/CD 框架,开发者可以基于它开发自己的 CI/CD 工具或产品,一些有能力的团队可以使用 Tekton 做为底座开发出更适合自己团队使用的 CI/CD 工具。

而 Tekton 的可视化组件 Tekton Dashboard 则为用户提供了可视化界面,使 Tekton 的体验更接近与 Jenkins 这样的 CI/CD 产品,同时开发者可以在使用 Tekton Dashboard 时也会对 Tekton 的一些概念进行更深入的了解。

本文将会使用 Tekton Dashboard,通过 UI 界面在 K8S 集群中部署一个 Java 项目:pipeline-example-maven

交互式学习

本文还提供 [katacoda] 交互式学习版本,用户可以直接访问 katacoda 页面,使用 [katacoda] 在浏览器端学习使用 Tekton Dashboard。

该教程属于官方教程的汉化版,并得到了许可

image

Tekton Dashboard

安装

这是所有步骤中最麻烦的一步,由于官方提供的 Tekton 镜像都在 gcr.io 上,在国内并不能直接拉取,所以在测试的时候着实花费了不少时间。

我特意将这些镜像转储到 dockerhub 上,如果官方版无法使用,可以使用克隆版:

安装 Tekton Pipelines

# 官方
$ kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.10.1/release.yaml
# 克隆版
$ kubectl apply -f https://raw.githubusercontent.com/sunny0826/tekton-local/v0.10.1/tekton-pipeline.yaml

安装 Tekton Dashboard

# 官方
$ kubectl apply --filename https://storage.googleapis.com/tekton-releases/dashboard/previous/v0.5.3/tekton-dashboard-release.yaml
# 克隆版
$ kubectl apply -f https://raw.githubusercontent.com/sunny0826/tekton-local/v0.10.1/tekton-dashboard.yaml

安装成功之后需要配置 Tekton Dashboard 的访问地址,可以使用 ingress 或 Nodeport 暴露端口,这里采用 port-forward 的形式将端口映射到本地:

$ kubectl port-forward svc/tekton-dashboard 8097:9097 -n tekton-pipelines
Forwarding from 127.0.0.1:8097 -> 9097
Forwarding from [::1]:8097 -> 9097
...

访问 Tekton Dashboard

打开浏览器访问访问 http://localhost:8097

导入资源

点击 Import Tekton resources 进入资源导入页面,导入资源:

  • Repository URL: https://github.com/sunny0826/pipeline-example-maven
  • Namespace: default
  • Repository directory: tekton/
  • Service Account tekton-dashboard

输入内容如下:

image

点击 Import and Apply 按钮,之后 Dashboard 会创建一个 PipelineRun 来导入指定的 Tekton 资源。

点击页面底部的 View status of this run 链接,查看 MyApp 导入 Tekton 资源的状态。

PipelineRun 完成后,Tekton 资源已导入成功。

image

创建 PipelineResource

选择 default 命名空间,并点击 PipelineResource 按钮。

点击页面右上方的 Create + 按钮,将弹出一个创建 PipelineResource 的表单。

我们要在 default 命名空间中为 pipeline-example-maven 的 master 分支创建一个 git PipelineResource,故在弹出的表单中填写以下信息:

  • Name: pipeline-example-maven
  • Namespace: default
  • Type: Git
  • URL: https://github.com/sunny0826/pipeline-example-maven
  • Revision: master

该表单内容应如下:

image

点击 Create 按钮,创建 PipelineResource。

创建 PipelineRun

选择 default 命名空间,并点击 PipelineRuns 按钮。

点击页面右上方的 Create + 按钮,将弹出一个创建 PipelineRun 的表单。该表单是动态的,会根据所选的 Pipeline 提供 PipelineResource 和 Param 字段。

我们需要 default 命名空间中使用 pipeline-example-maven 的 Pipeline 和 PipelineResource,创建一个 PipelineRun,故在弹出的表单中填写以下信息:

  • Namespace: default
  • Pipeline: pipeline-example-maven
  • PipelineResources source: pipeline-example-maven
  • 其余字段保留默认值。

该表单内容应如下:

image

点击 Create 按钮,创建 PipelineRun。

查看 PipelineRun 日志

点击页面顶部创建通知中的链接或在 PipelineRun 列表中对应的 PipelineRun,查看 pipeline-example-maven PipelineRun 的日志。

image

deploy 步骤中,有时会出现权限错误,需要给 default:default 绑定上 admin 的 clusterrole 权限:
$ kubectl create rolebinding default-admin --clusterrole=admin --serviceaccount=default:default

确认 builddeploy 任务均已成功。

image

注意:这里为了方便,使用的是单节点的 Kubernetes,构建完并没有推送到镜像仓库,镜像拉取策略为 imagePullPolicy: Never ,所以启动时候也没有从远程仓库拉取镜像,而是启动的本地镜像。

查看构建结果

$ kubectl get deploy
NAME                 READY   UP-TO-DATE   AVAILABLE   AGE
example-greenhouse   1/1     1            1           5h2m

总结

Tekton Dashboard 将 Tekton 的资源进行了可视化展示,指导用户快速理解 Tekton pipeline 流程以及配置方式,快速上手 Tekton。但是由于镜像的原因,导致新手体验不佳,所幸官方还提供了 [katacoda] 交互式教程,该教程我已汉化完成并获得了官方的许可,可以在浏览器端快速体验从安装 Tekton 到部署应用的整个过程。

目录
相关文章
|
Kubernetes 数据可视化 容器
『Kubernetes』在k8s中部署Dashboard可视化面板
📣读完这篇文章里你能收获到 - 保姆级的K8S安装Dashboard - 可视化管理Kubernetes
1385 1
『Kubernetes』在k8s中部署Dashboard可视化面板
|
Kubernetes Linux 网络安全
kubernetes(k8s)篇(一)(2022年最新)使用KubeKey安装k8s集群及k8sUI界面KubeSphere
kubernetes(k8s)篇(一)(2022年最新)使用KubeKey安装k8s集群及k8sUI界面KubeSphere
3163 0
kubernetes(k8s)篇(一)(2022年最新)使用KubeKey安装k8s集群及k8sUI界面KubeSphere
|
Kubernetes 搜索推荐 应用服务中间件
【kubernetes】新版helm3的三大概念+快速指南+自定义charts模板
chart:代表helm包,包含在 Kubernetes 集群内部运行应用程序,工具或服务所需的所有资源定义。 Repository(仓库):用来存放和共享 charts 的地方。 Release :运行在 Kubernetes 集群中的 chart 的实例,一个 chart 通常可以在同一个集群中安装多次,每一次安装都会创建一个新的 release。
467 1
【kubernetes】新版helm3的三大概念+快速指南+自定义charts模板
|
3月前
|
Prometheus Kubernetes 监控
|
12月前
|
存储 Kubernetes 监控
安装部署 kubernetes Dashboard UI
Kubernetes Dashboard是一个基于Web的用户界面,用于管理Kubernetes集群。它提供了集群资源的可视化和监控,以及部署应用程序等功能。
236 2
|
11月前
|
Kubernetes 监控 容器
为Kubernetes(k8s)集群安装仪表盘(Dashboard)
为Kubernetes(k8s)集群安装仪表盘(Dashboard)
227 0
|
存储 JSON Kubernetes
Tekton 组件介绍
Tekton 组件介绍
|
Kubernetes Docker 容器
Kubernetes 部署Dashboard UI
Kubernetes 部署Dashboard UI
119 0
|
Kubernetes 数据可视化 容器
部署Kubernetes集群+Dashboard可视化页面-1.18.6版本(二)
部署Kubernetes集群+Dashboard可视化页面-1.18.6版本(二)
736 0
部署Kubernetes集群+Dashboard可视化页面-1.18.6版本(二)
|
Kubernetes 数据可视化 算法
部署Kubernetes集群+Dashboard可视化页面-1.18.6版本(一)
部署Kubernetes集群+Dashboard可视化页面-1.18.6版本(一)
176 0
部署Kubernetes集群+Dashboard可视化页面-1.18.6版本(一)