Tekton系列之安装篇【一】

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 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等文章,欢迎大家关注。


相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
存储 JSON Kubernetes
Tekton 组件介绍
Tekton 组件介绍
|
Kubernetes 数据可视化 Cloud Native
可视化 Tekton 组件 Tekton Dashboard
Tekton Dashboard 使用指南。
4140 0
|
Docker Perl 容器
|
存储 JSON Kubernetes
openshift Tekton pipeline 实践
openshift Tekton pipeline 实践
|
自然语言处理 Kubernetes Devops
kustomize (四) generatorOptions详解
kustomize (四) generatorOptions详解
|
jenkins 持续交付
Tekton系列之实践篇-由Jenkins改成Tekton
Tekton系列之实践篇-由Jenkins改成Tekton
Tekton系列之实践篇-由Jenkins改成Tekton
|
存储 运维 Kubernetes
Tekton系列之实践篇-使用Tekton Trigger让Tekton使用更简单
Tekton系列之实践篇-使用Tekton Trigger让Tekton使用更简单
Tekton系列之实践篇-使用Tekton Trigger让Tekton使用更简单
|
运维 Kubernetes jenkins
Tekton系列之实践篇-如何用Jenkins来管理Tekton
Tekton系列之实践篇-如何用Jenkins来管理Tekton
Tekton系列之实践篇-如何用Jenkins来管理Tekton
|
运维 Kubernetes Ubuntu
Kubernetes 集群包管理器 Helm3 部署
Kuberbetes 能够很好地组织和编排容器,但它缺少一个更高层次的应用打包工具,而 Helm 就是解决这个问题的。
893 1
Kubernetes 集群包管理器 Helm3 部署
|
Kubernetes 负载均衡 算法
KubeSphere在项目中的使用
KubeSphere在项目中的使用
KubeSphere在项目中的使用