3.12. 自动修剪任务运行和管道运行


过时的 TaskRunPipelineRun 对象及其执行的实例占用了可用于活跃运行的物理资源。为了获得最佳性能,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
# ...

表 3.3. 修剪器配置支持的参数
参数描述

调度

运行修剪器进程的 Cron 调度。默认调度每天 08:00 运行进程。如需有关 Cron schedule 语法的更多信息,请参阅 Kubernetes 文档中的 Cron schedule 语法

resources

修剪器应用到的资源类型。可用的资源类型为 taskrunpipelinerun

keep

要保留的每个类型的最新资源数量。

prune-per-resource

如果设置为 false,则 keep 参数的值表示任务运行或管道运行的总数。例如,如果 keep 设为 100,则修剪器会保持 100 个最新的任务运行和 100 个最新的管道运行,并删除所有其他资源。

如果设置为 true,则会单独计算 keep 参数的值,用于引用每个管道的管道运行,以及引用每个任务的任务运行。例如,如果 keep 设为 100,则修剪器为 Pipeline1 保留 100 个最新的管道运行,其中 100 个最新的管道为 Pipeline2 运行,100 个最新的任务运行 Task1,以此类推,并删除所有其他资源。

keep-since

保存资源的最长时间,以分钟为单位。例如,若要保留在五天内创建的资源,请将 keep-since 设置为 7200

startingDeadlineSeconds

这个参数是可选的。如果因任何原因而在调度时间没有启动修剪器作业,此设置将配置持续启动任务的最长时间,以秒为单位。如果作业没有在指定时间内启动,OpenShift Pipelines 会考虑这个作业失败,并在下一次调度的时间启动修剪器。如果没有指定此参数,且修剪器作业不会在调度的时间启动,OpenShift Pipelines 会尝试稍后启动作业。

注意

keepkeep-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:将此注解的值设置为 keepkeep-since

例如,以下注解会保留在最后 5 天中创建的所有任务运行和管道运行,并删除旧的资源:

auto-pruning 注解示例

kind: Namespace
apiVersion: v1
# ...
spec:
  annotations:
    operator.tekton.dev/prune.resources: "taskrun, pipelinerun"
    operator.tekton.dev/prune.keep-since: 7200
# ...

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.