Getting started with Tekton

Jeff Yen
8 min readSep 30, 2024

--

123

https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.linkedin.com%2Fpulse%2Ftekton-pipelines-quick-look-kubernetes-native-devops-magic-abhilash-a&psig=AOvVaw27VlinIj91yEUIottTHlLf&ust=1727773894326000&source=images&cd=vfe&opi=89978449&ved=0CBcQjhxqFwoTCKiytLyp6ogDFQAAAAAdAAAAABAE

設置並運行你的第一個Tekton Task

本教程將指導您如何:

  1. 使用minikube創建一個Kubernetes集群
  2. 安裝Tekton pipelines
  3. 創建一個Task
  4. 使用TaskRun來實例化並運行Task

前置條件

  1. 安裝minikube。
  2. 安裝kubectl。

Create a Kubernetes cluster

minikube start --kubernetes-version v1.31.0

您可以使用kubectl來確認集群是否成功創建:

kubectl cluster-info

Install Tekton Pipelines

要安裝最新版本的 Tekton Pipelines,請使用 kubectl

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

監控安裝進度

kubectl get pods --namespace tekton-pipelines --watch

tekton-pipelines-controllertekton-pipelines-webhookREADY 欄位下都顯示 1/1 時,您就可以繼續下一步了。

Create and run a basic Task

Task,在 API 中表示為 Task 類型的對象,定義了一系列按順序運行的 Steps,用來執行 Task 所需的邏輯。每個 Task 都作為一個 pod 在 Kubernetes 集群上運行,每個步驟都在自己的容器中運行。

1.要創建一個 Task,請打開您喜歡的編輯器,並創建一個名為 hello-world.yaml 的檔案,內容如下:

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: hello
spec:
steps:
- name: echo
image: alpine
script: |
#!/bin/sh
echo "Hello World"

2.將變更應用到您的集群:

kubectl apply --filename hello-world.yaml
  1. TaskRun 對象會實例化並執行這個 Task。創建另一個名為 hello-world-run.yaml 的檔案,內容如下:
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
name: hello-task-run
spec:
taskRef:
name: hello

2.將變更應用到您的集群以啟動 Task:

kubectl apply --filename hello-world-run.yaml

3.驗證一切是否正常運作和查看日誌:

kubectl apply --filename hello-world-run.yaml

kubectl logs --selector=tekton.dev/taskRun=hello-task-run

SUCCEEDED 欄位下的 True 值確認 TaskRun 已成功完成,沒有出現錯誤。輸出顯示 Hello World

Getting Started with Pipelines

創建並運行您的第一個 Tekton Pipeline

本教程將指導您如何:

  • 創建兩個 Tasks。
  • 創建一個包含您的 Tasks 的 Pipeline。
  • 使用 PipelineRun 來實例化並運行包含您的 Tasks 的 Pipeline。

前置條件
1. 完成之前的練習
2. 安裝 tkn,Tekton 命令行工具。

Create and run a second Task

您已經有一個 “Hello World!” Task。要創建第二個 “Goodbye!” Task:

  1. 創建一個名為 goodbye-world.yaml 的新檔案,並添加以下內容:
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: goodbye
spec:
params:
- name: username
type: string
steps:
- name: goodbye
image: ubuntu
script: |
#!/bin/bash
echo "Goodbye $(params.username)!"

這個 Task 接受一個參數 username。每當使用這個 Task 時,必須為該參數傳遞一個值。

kubectl apply --filename goodbye-world.yaml

Create and run a Pipeline

Pipeline 定義了一系列有序的 Tasks,這些 Tasks 按照特定的執行順序排列,作為 CI/CD 工作流程的一部分。

在本節中,您將創建您的第一個 Pipeline,它將包含 “Hello World!” 和 “Goodbye!” 兩個 Tasks。

  1. 創建一個名為 hello-goodbye-pipeline.yaml 的新檔案,並添加以下內容:
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
name: hello-goodbye
spec:
params:
- name: username
type: string
tasks:
- name: hello
taskRef:
name: hello
- name: goodbye
runAfter:
- hello
taskRef:
name: goodbye
params:
- name: username
value: $(params.username)

Pipeline 定義了參數 username,然後將其傳遞給 goodbye Task。

kubectl apply --filename hello-goodbye-pipeline.yaml

PipelineRun,在 API 中表示為 PipelineRun 類型的對象,為參數設置值並執行 Pipeline。要創建 PipelineRun,請創建一個名為 hello-goodbye-pipeline-run.yaml 的新檔案,內容如下:

apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
name: hello-goodbye-run
spec:
pipelineRef:
name: hello-goodbye
params:
- name: username
value: "Tekton"

通過將 PipelineRun 配置應用到您的集群來啟動 Pipeline:

kubectl apply --filename hello-goodbye-pipeline-run.yaml

要查看 PipelineRun 的日誌,請使用以下命令:

tkn pipelinerun logs hello-goodbye-run -f -n default

輸出顯示兩個 Tasks 都成功完成:

--

--

Jeff Yen
Jeff Yen

No responses yet