k8s安装tekton,编写task
原创
©著作权归作者所有:来自51CTO博客作者运维灬小兵的原创作品,请联系作者获取转载授权,否则将追究法律责任
文章目录
- `安装tekton`
- `安装dashboard`
- `安装CLI`
- `编写task.yaml`
- `编写taskRun.yaml`
- `使用tkn命令查看`
一、官方安装
地址:https://tekton.dev/docs/installation/pipelines/#installing-tekton-pipelines-on-kubernetes
注意:官方安装需要能够去国外网站拉取镜像,如果不能,建议使用国内资源安装
二、国内资源安装
我的k8s版本是V1.17.17,推荐安装的tekton版本为v0.19.0
安装tekton
mkdir /opt/tekton/ && cd /opt/tekton/
git clone https://gitee.com/CloudLemon/tekton-install.git
cd tekton-install/v0.19.0
kubectl apply -f install.yaml
kubectl get pod -n tekton-pipelines
会启动controller和webhook两个Pod

安装dashboard
cd /opt/tekton/tekton-install/dashboard
vim 0.17.0.yaml #镜像地址有问题,删除红框处内容

kubectl apply -f 0.17.0.yaml
kubectl get pod -n tekton-pipelines
会增加一个dashboard的Pod

kubectl get svc -n tekton-pipelines
查看dashboard的nodePort端口

浏览器访问:http://192.168.1.2:29813/

安装CLI
Tekton除了使用kubectl操作之外,本身也有客户端,可以到https://github.com/tektoncd/cli/releases进行下载,如下
cd /opt/tekton/
wget https://github.com/tektoncd/cli/releases/download/v0.22.0/tkn_0.22.0_Linux_x86_64.tar.gz
tar xvf tkn_0.22.0_Linux_x86_64.tar.gz
mv tkn /usr/local/bin/
tkn task list -n tekton-pipelines #查看task列表
如果报一下错误,需要创建~/.kube/config文件

由于我用的是rancher,因此直接从页面上拷贝kubeconfig文件的内容,并创建~/.kube/config文件

三、demo
编写task.yaml
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: hello
namespace: tekton-pipelines
spec:
steps:
- name: echo
image: alpine
script: |
#!/bin/sh
echo "Hello World"
查看task
kubectl apply -f task.yaml
kubectl get task -n tekton-pipelines

编写taskRun.yaml
仅仅创建Task是没有用的,Task只是声明了我们要做什么,是一个静态的对象,如果要得到其结果,需要借助TaskRun才行
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
name: hello-task-run
namespace: tekton-pipelines
spec:
taskRef:
name: hello #该名字需与Task的名字保持一致
kubectl apply -f taskRun.yaml
kubectl get taskrun -n tekton-pipelines
执行成功

还可以看到具体的Pod
kubectl get pod -n tekton-pipelines
执行完的Pod的状态是Completed状态,这个状态的Pod在运行完成后并不会消失,会保留以便查看具体的信息

查看Pod的日志
kubectl logs hello-task-run-pod-24xlb -n tekton-pipelines
日志内容符合预期

去dashboard查看



使用tkn命令查看
tkn task list -n tekton-pipelines #查看task列表
tkn taskrun list -n tekton-pipelines #查看taskrun列表
参考文章
Tekton系列之安装篇[一]