Tekton系列之安装篇【一】

简介: Tekton系列之安装篇【一】


大家好,我是乔克。从今天开始会给大家带来Tekton的系列文章,主要是自己学习总结,同时也希望对想了解Tekton的朋友有点用处。


今天主要分享安装以及简单使用,详细见下文。


安装


Tekton的安装非常简单,官方已经将具体的安装文件准备好了,直接安装即可。如下:


kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml


该方式安装的是最新版本的Tekton。不过如果你的机器不能访问gcr.io,是无法正常下载镜像的,你可以先通过一台可以访问国外的机器下载镜像再同步到国内镜像仓库。

如果想安装指定版本的tekton,则选择好对应的版本,比如选择v0.32.1版本,执行如下命令:


kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.32.1/release.yaml


更多的版本以及对应的安装方式可以到官网上(https://github.com/tektoncd/pipeline/releases)查看。

我自己也同步了需要的版本,保存在Gitee仓库(https://gitee.com/coolops/tekton-install),有需要的自己去查看。


当然,在安装的时候还需要注意Kubernetes版本,如果Kubernetes的版本太低,安装高版本的Tekton是安装不了的。由于我这里是Kubernetes 1.19.16,所以我安装的是Tekton 0.29.1版本。


运行测试


运行安装命令后,可以看到在Kubernetes集群中新增了哪些Tekton的crd,如下:


# kubectl get crd | grep tekton
clustertasks.tekton.dev                       2022-02-28T06:15:38Z
conditions.tekton.dev                         2022-02-28T06:15:38Z
extensions.dashboard.tekton.dev               2022-02-28T06:18:40Z
pipelineresources.tekton.dev                  2022-02-28T06:15:38Z
pipelineruns.tekton.dev                       2022-02-28T06:15:38Z
pipelines.tekton.dev                          2022-02-28T06:15:38Z
runs.tekton.dev                               2022-02-28T06:15:38Z
taskruns.tekton.dev                           2022-02-28T06:15:38Z
tasks.tekton.dev                              2022-02-28T06:15:38Z


并且可以看到安装了哪些具体的应用,如下:


# kubectl get po -n tekton-pipelines 
NAME                                           READY   STATUS    RESTARTS   AGE
tekton-pipelines-controller-75c456df85-qxvq2   1/1     Running   0          6m57s
tekton-pipelines-webhook-5bc8d6b7c4-w6pdn      1/1     Running   0          8m


到这里我们就可以使用Tekton了,比如创建一个最简单的Task,如下:


apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: hello
spec:
  steps:
    - name: hello
      image: ubuntu
      command:
        - echo
      args:
        - "Hello World!"


从上面的命令可以看到,该Task会输出"Hello World!"。


我们是使用kubectl命令创建,如下:


# kubectl apply -f test-task.yaml


然后通过如下命令查看创建结果:


# kubectl get task
NAME             AGE
test             20h



但是仅仅创建Task是没有用的,Task只是声明了我们要做什么,是一个静态的对象,如果要得到其结果,需要j借助TaskRun才行。TaskRun的声明也非常的简单,如下:


apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  name: hello
spec:
  taskRef:
    name: hello


在TaskRun中关联具体的Task即可。接下来就运行TaskRun,如下:


# kubectl apply -f taskrun.yaml


然后可以通过如下命令查看:


# kubectl get taskruns.tekton.dev 
NAME                                               SUCCEEDED   REASON      STARTTIME   COMPLETIONTIME
hello                                              True        Succeeded   41s         26s


我们可以看到状态是True,表示TaskRun执行成功。除此之外,还可以看到具体的Pod,如下:


kubectl get po
NAME                                                         READY   STATUS      RESTARTS   AGE
hello-pod-s86lh                                              0/2     Completed   1          98s


具体的Pod日志如下:


# kubectl logs hello-pod-s86lh
Hello World!


从日志来看符合为我们的预期。而且可以看到执行完的Pod的状态是Completed状态,这个状态是不是很熟悉?当我们运行一个Job对象的时候,运行完成后也是这个状态。这个状态的Pod在运行完成后并不会消失,会保留以便查看具体的信息。


安装Cli


Tekton除了使用kubectl操作之外,本身也有客户端,可以到https://github.com/tektoncd/cli/releases进行下载,如下:


wget https://github.com/tektoncd/cli/releases/download/v0.22.0/tkn_0.22.0_Linux_x86_64.tar.gz
tar xf tkn_0.22.0_Linux_x86_64.tar.gz
mv tkn /usr/local/bin/


当然也提供其他的安装方式,可以到https://tekton.dev/docs/getting-started/进行学习。


安装完成后,可以使用tkn --help查看具体的使用指南。


# tkn --help
CLI for tekton pipelines
Usage:
tkn [flags]
tkn [command]
Available Commands:
  bundle                Manage Tekton Bundles
  clustertask           Manage ClusterTasks
  clustertriggerbinding Manage ClusterTriggerBindings
  condition             Manage Conditions
  eventlistener         Manage EventListeners
  hub                   Interact with tekton hub
  pipeline              Manage pipelines
  pipelinerun           Manage PipelineRuns
  resource              Manage pipeline resources
  task                  Manage Tasks
  taskrun               Manage TaskRuns
  triggerbinding        Manage TriggerBindings
  triggertemplate       Manage TriggerTemplates
Other Commands:
  completion            Prints shell completion scripts
  version               Prints version information
Flags:
  -h, --help   help for tkn
Use "tkn [command] --help" for more information about a command.


比如说要查看所有task,如下:


# tkn task list
NAME             DESCRIPTION   AGE
build-and-push                 20 hours ago
hello                          21 hours ago
test                           21 hours ago


更多的操作指令需要自己去摸索了。


安装Dashboard


为了对用户更友好,Tekton也有一个Dashboard(https://tekton.dev/docs/dashboard/),可以使用如下命令进行安装:


kubectl apply --filename https://github.com/tektoncd/dashboard/releases/latest/download/tekton-dashboard-release.yaml


当然这依然有镜像拉取问题。操作方式和上面介绍的一样。


安装完成后,界面如下:


640.png


可以到这个界面上查看具体的资源,点点点的事情这里就不做多的介绍了。、


最后


好了,这篇文章主要是基础的安装篇,对于大佬来说是小意思,而且官网(https://tekton.dev/docs/getting-started/)上也比较全。但是我依然在这里记录一下,主要是想出Tekton的系列文章,后续会介绍Tekton的理论,Tekton pipeline编写以及如何从Jenkins切换到Tekton等文章,欢迎大家关注。


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
jenkins 持续交付 开发工具
阿里云容器服务Kubernetes之Jenkins X(1)-安装部署实践篇
"Jenkins X is a CI/CD solution for modern cloud applications on Kubernetes." 这是Jenkins社区对于Jenkins X 的官方总结和定义。
7083 0
|
Kubernetes 数据可视化 jenkins
可视化 Tekton 组件 Tekton Dashboard
Tekton Dashboard 使用指南。
4471 0
可视化 Tekton 组件 Tekton Dashboard
|
存储 Kubernetes 调度
【赵渝强老师】K8s的有状态控制器StatefulSet
在Kubernetes中,StatefulSets用于部署有状态应用程序,提供持久存储和唯一标识符。与Deployment不同,StatefulSets确保Pod的标识符在重新调度后保持不变,适用于需要稳定网络标识符和持久存储的场景。本文介绍了StatefulSets的创建、扩容与缩容、更新与回滚等操作,并提供了具体示例和视频讲解。
455 0
|
存储 消息中间件 弹性计算
统一观测丨借助 Prometheus 监控 ClickHouse 数据库
统一观测丨借助 Prometheus 监控 ClickHouse 数据库
1913 96
统一观测丨借助 Prometheus 监控 ClickHouse 数据库
|
移动开发 JSON Kubernetes
k8s异常诊断之no space left on device.
某用户反馈,特定节点一直拉不起来pod,提示no space left on device.,手动去docker run也是相同的报错 # docker run --name aestools-perf --cap-add CAP_SYS_ADMIN --privileged -ti --rm registry-vpc.cn-beijing.aliyuncs.com/my-nettools/aestools:onlyperf docker: Error response from daemon: error creating overlay mount to /var/li
3269 135
|
存储 Kubernetes 安全
第四章 Helm仓库介绍配置国内仓库地址
第四章 Helm仓库介绍配置国内仓库地址
6370 2
|
Kubernetes jenkins 持续交付
轻量快速的 CI 工具 Drone
本文介绍一款轻量级的 CI 工具 Drone ,同时也介绍在实践中遇到的一些坑,帮助你快速搭建持续集成流水线。
7735 0
|
Kubernetes 网络协议 关系型数据库
基于operator sdk轻松编写一个k8s自定义资源管理应用
operator 是一种 kubernetes 的扩展形式,可以帮助用户以 Kubernetes 的声明式 API 风格自定义来管理应用及服务,operator已经成为分布式应用在k8s集群部署的事实标准了,在云原生时代系统想迁移到k8s集群上编写operator应用是必不可少的能力,这里介绍用 CoreOS 的 operator framework 工具如何快速构建一个 operator 应用。
7892 0
|
JSON Kubernetes Cloud Native
云原生|kubernetes|删除不掉的namespace 一直处于Terminating状态的解决方案
云原生|kubernetes|删除不掉的namespace 一直处于Terminating状态的解决方案
1167 0
|
Dragonfly Kubernetes 调度
P2P镜像分发:Harbor+Dragonfly优化k8s集群镜像拉取速度(二)
本篇文章则分享在大规模的kubernetes集群中,通过Harbor与Dragonfly来优化镜像的拉取速度。
2132 0