3.12. 自动修剪任务运行和管道运行
过时的 TaskRun
和 PipelineRun
对象及其执行的实例占用了可用于活跃运行的物理资源。为了获得最佳性能,Red Hat OpenShift Pipelines 提供了一个修剪器组件,它会自动删除各种命名空间中未使用的对象及其实例。
您可以使用 TektonConfig
自定义资源并使用命名空间注解修改命名空间的配置,为整个安装配置修剪器。但是,您无法选择性地自动修剪命名空间中的单个任务运行或管道运行。
3.12.1. 配置修剪器
您可以使用 TektonConfig
自定义资源配置定期修剪与管道运行和任务运行关联的资源。
以下示例与默认配置对应:
修剪器配置示例
apiVersion: operator.tekton.dev/v1alpha1 kind: TektonConfig metadata: name: config # ... spec: pruner: resources: - taskrun - pipelinerun keep: 100 prune-per-resource: false schedule: "* 8 * * *" startingDeadlineSeconds: 60 # ...
参数 | 描述 |
---|---|
| 运行修剪器进程的 Cron 调度。默认调度每天 08:00 运行进程。如需有关 Cron schedule 语法的更多信息,请参阅 Kubernetes 文档中的 Cron schedule 语法。 |
|
修剪器应用到的资源类型。可用的资源类型为 |
| 要保留的每个类型的最新资源数量。 |
|
如果设置为
如果设置为 |
|
保存资源的最长时间,以分钟为单位。例如,若要保留在五天内创建的资源,请将 |
| 这个参数是可选的。如果因任何原因而在调度时间没有启动修剪器作业,此设置将配置持续启动任务的最长时间,以秒为单位。如果作业没有在指定时间内启动,OpenShift Pipelines 会考虑这个作业失败,并在下一次调度的时间启动修剪器。如果没有指定此参数,且修剪器作业不会在调度的时间启动,OpenShift Pipelines 会尝试稍后启动作业。 |
keep
和 keep-since
参数是互斥的。在您的配置中只使用其中之一。
3.12.2. 自动修剪任务运行和管道运行的注解
要修改在命名空间中运行和管道运行的配置,您可以在命名空间中设置注解。
以下命名空间注解的含义与 TektonConfig
自定义资源中的对应键相同:
-
operator.tekton.dev/prune.schedule
-
operator.tekton.dev/prune.resources
-
operator.tekton.dev/prune.keep
-
operator.tekton.dev/prune.prune-per-resource
-
operator.tekton.dev/prune.keep-since
operator.tekton.dev/prune.resources
注解接受以逗号分隔的列表。要修剪任务运行和管道运行,请将此注解设置为 "taskrun, pipelinerun"
。
可用的额外命名空间注解如下:
-
operator.tekton.dev/prune.skip
:设置为true
时,配置注解的命名空间不会被修剪。 -
operator.tekton.dev/prune.strategy
:将此注解的值设置为keep
或keep-since
。
例如,以下注解会保留在最后 5 天中创建的所有任务运行和管道运行,并删除旧的资源:
auto-pruning 注解示例
kind: Namespace apiVersion: v1 # ... spec: annotations: operator.tekton.dev/prune.resources: "taskrun, pipelinerun" operator.tekton.dev/prune.keep-since: 7200 # ...