可视化 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 Cloud Native 开发工具
Argo与Flux在云原生GitOps实践上的能力对比与分析
随着云原生技术的普及和落地,越来越多的云原生应用被部署到生产环境中,由于云原生应用通常都是基于云的分布式部署模式,且每个应用可能是由多个功能组件互相调用来一起提供完整的服务的,每个组件都有自己独立的迭代流程和计划。在这种情况下,功能组件越多,意味着应用的发布管理越复杂,如果没有一个好的方案或者系统来管理复杂应用的发布上线的话,业务面临的风险也是非常大的。开源社区在复杂应用发布管理方面逐渐开始发力,
5405 1
Argo与Flux在云原生GitOps实践上的能力对比与分析
|
Kubernetes 数据可视化 容器
『Kubernetes』在k8s中部署Dashboard可视化面板
📣读完这篇文章里你能收获到 - 保姆级的K8S安装Dashboard - 可视化管理Kubernetes
2178 1
『Kubernetes』在k8s中部署Dashboard可视化面板
|
Kubernetes 应用服务中间件 nginx
史上最全干货!Kubernetes 原理+实战总结(全文6万字,90张图,100个知识点)(上)
史上最全干货!Kubernetes 原理+实战总结(全文6万字,90张图,100个知识点)
53113 30
|
Kubernetes Ubuntu jenkins
超详细实操教程!在现有K8S集群上安装JenkinsX,极速提升CI/CD体验!
超详细实操教程!在现有K8S集群上安装JenkinsX,极速提升CI/CD体验!
|
存储 Kubernetes 应用服务中间件
Ingress-Nginx使用指南上篇
关于Ingress-Nginx在Kubernetes中的使用指南,涵盖了从基础安装到高级特性配置的详细步骤和实战案例。
5596 3
Ingress-Nginx使用指南上篇
|
JSON Kubernetes 数据格式
k8s集群namespace一直处于Terminating状态不释放解决办法
k8s集群namespace一直处于Terminating状态不释放解决办法
1349 0
|
Kubernetes 安全 Cloud Native
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
本文介绍了云原生环境下Kubernetes集群的安全问题及攻击方法。首先概述了云环境下的新型攻击路径,如通过虚拟机攻击云管理平台、容器逃逸控制宿主机等。接着详细解释了Kubernetes集群架构,并列举了常见组件的默认端口及其安全隐患。文章通过具体案例演示了API Server 8080和6443端口未授权访问的攻击过程,以及Kubelet 10250端口未授权访问的利用方法,展示了如何通过这些漏洞实现权限提升和横向渗透。
1853 0
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
|
Kubernetes NoSQL MongoDB
k8s安装YAPI
k8s安装YAPI
|
存储 Linux 数据库
k8s-dashboard、helm
k8s-dashboard、helm
908 1
解决helm部署报错Error: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress
在使用helm install 或者helm upgrade的时候,如果出现了异常中断操作, 经常会出现UPGRADE FAILED并且导致后续无法更新,那我们该如何处理呢?
6034 0

热门文章

最新文章