快速开始

本指南帮助您快速了解并创建第一个 Tekton Pruner 配置。

目录

前提条件

  1. 环境要求
  • 已安装 Tekton Operator
  • 确保通过 Operator 安装并准备好 Tekton Pipelines
  1. 所需工具
  • kubectl 命令行工具

第 1 步:配置 Tekton Pruner

WARNING

重要提示:Tekton Pruner 是基于 event-based 的清理器,默认情况下处于禁用状态。要启用 event-based 清理器,必须禁用现有的基于 job-based 的清理器。

  • 两种清理器(job-basedevent-based)不能同时启用
  • event-based 清理器实时响应资源事件,提供更高效的清理

如果您想使用基于 job-based 的清理器,请参阅 TaskRun 和 PipelineRun 资源的定期清理

通过应用以下配置,将 Tekton Pruner 配置为在完成后 5 分钟删除资源,并保留最近 3 次运行:

kubectl patch tektonconfigs.operator.tekton.dev config --type=merge -p='{
  "spec": {
    "pruner": {
      "disabled": true
    },
    "tektonpruner": {
      "disabled": false,
      "global-config": {
        "enforcedConfigLevel": "global",
        "ttlSecondsAfterFinished": 300,
        "successfulHistoryLimit": 3,
        "failedHistoryLimit": 3
      }
    }
  }
}'
# tektonconfig.operator.tekton.dev/config patched
设置描述示例
ttlSecondsAfterFinished保留已完成运行的秒数,超过该时间后进行清理300(5 分钟)
successfulHistoryLimit保留的最大成功运行次数3
failedHistoryLimit保留的最大失败运行次数3
historyLimit每种状态下保留的最大运行次数(分别独立应用于成功和失败运行)5
enforcedConfigLevel配置层级globalnamespace

enforcedConfigLevel 决定配置层级:

  • global:集群范围的默认配置,适用于所有命名空间(不允许命名空间覆盖)
  • namespace:允许通过各命名空间中的 ConfigMap 进行命名空间级别的覆盖

更多信息,请参阅 Pruner 配置

第 2 步:测试配置

创建测试 PipelineRun 以验证清理功能:

# 创建一个简单的 pipeline
kubectl apply -f - <<EOF
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
  name: hello-pipeline
spec:
  tasks:
    - name: hello
      taskSpec:
        steps:
          - name: echo
            image: busybox:latest
            command: ['echo']
            args: ['hello world']
EOF

# 创建多个运行实例
for i in {1..5}; do
  kubectl create -f - <<EOF
apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
  generateName: hello-pipeline-run-
spec:
  pipelineRef:
    name: hello-pipeline
EOF
done

# 观察清理效果(5 分钟 + 完成时间后)
kubectl get pipelineruns -w

后续步骤