123
設置並運行你的第一個Tekton Task
本教程將指導您如何:
- 使用minikube創建一個Kubernetes集群
- 安裝Tekton pipelines
- 創建一個Task
- 使用
TaskRun
來實例化並運行Task
前置條件
- 安裝minikube。
- 安裝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-controller
和 tekton-pipelines-webhook
在 READY
欄位下都顯示 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
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:
- 創建一個名為
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。
- 創建一個名為
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 都成功完成: