Tekton Pipelines管道入门

半兽人 发表于: 2022-01-14   最后更新时间: 2022-01-20 14:23:54  
{{totalSubscript}} 订阅, 1,609 游览

使用第二个任务和管道扩展你之前第一个CI/CD工作流

正如之前所了解的,使用Tekton,CI/CD工作流程中的每个操作都成为一个步骤(Step),用你指定的容器镜像执行。然后将步骤组织到任务中,在集群中作为Kubernetes pod运行。你可以进一步将任务组织到管道(Pipelines)中,管道可以控制几个任务的执行顺序。

要创建第二个任务,使用Tekton API创建一个Kubernetes对象,其类型为任务(Task)。下面的YAML文件指定了一个具有简单步骤的任务,该任务使用Ubuntu官方镜像来打印一句Goodbye World!

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: goodbye
spec:
  steps:
    - name: goodbye
      image: ubuntu
      script: |
        #!/bin/bash
        echo "Goodbye World!"

将上述YAML写入一个名为task-goodbye.yaml的文件,并将其应用于你的Kubernetes集群:

kubectl apply -f task-goodbye.yaml

要用Tekton运行这个任务,你需要创建一个TaskRun,这是另一个Kubernetes对象,用于指定任务的运行时间信息。

要查看此 TaskRun 对象,可运行以下 Tekton CLI (tkn) 命令。

tkn task start goodbye --dry-run

运行上述命令后,应显示以下TaskRun定义:

apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
  generateName: goodbye-run-
spec:
  taskRef:
    name: goodbye

要使用上面的TaskRun来启动echo任务,你可以使用tknkubectl

tkn开始:

tkn task start goodbye

kubectl开始:

# 使用 tkn 的 --dry-run 选项,将 TaskRun 保存到一个文件中
tkn task start goodbye --dry-run > taskRun-goodbye.yaml

# 创建TaskRun
kubectl create -f taskRun-goodbye.yaml

Tekton 现在将开始运行你的任务。要查看最后一次TaskRun的日志,请运行以下 tkn命令:

tkn taskrun logs --last -f

Task可能需要一些时间才能完成。 当它执行时,它应该显示以下输出:

[goodbye] Goodbye World!

要创建Pipeline,请使用Tekton API创建一个具有Pipeline类型的Kubernetes对象。下面的YAML文件指定了一个Pipeline

apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
  name: hello-goodbye
spec:
  tasks:
  - name: hello
    taskRef:
      name: hello
  - name: goodbye
    runAfter:
     - hello
    taskRef:
      name: goodbye

将上述YAML写入一个名为pipeline-hello-goodbye.yaml的文件,并将其应用于你的Kubernetes集群:

kubectl apply -f pipeline-hello-goodbye.yaml

要用Tekton运行这个pipeline,你需要创建一个pipelineRun,这是另一个Kubernetes对象,用于指定Pipeline的运行时间信息。

要查看这个pipelineRun对象,你可以运行以下Tekton CLI(tkn)命令。

tkn pipeline start hello-goodbye --dry-run

运行上述命令后,应显示以下PipelineRun定义:

apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
  generateName: hello-goodbye-run-
spec:
  pipelineRef:
    name: hello-goodbye

要使用上面的 pipelineRun 启动 echo Pipeline,可以使用 tknkubectl

tkn 开始:

tkn pipeline start hello-goodbye

kubectl 开始:

# 使用tkn的-dry-run选项将pipelineRun保存到文件中
tkn pipeline start hello-goodbye --dry-run > pipelineRun-hello-goodbye.yaml

# 创建pipelineRun
kubectl create -f pipelineRun-hello-goodbye.yaml

Tekton 现在将开始运行你的Pipeline。要查看pipelineRun的日志,请运行以下 "tkn"命令:

tkn pipelinerun logs --last -f

在你的Pipeline完成之前可能需要一些时间。当它执行时,它应该显示以下输出:

[hello : hello] Hello World!

[goodbye : goodbye] Goodbye World!
更新于 2022-01-20

查看Tekton更多相关的文章或提一个关于Tekton的问题,也可以与我们一起分享文章