3.13. タスク実行とパイプライン実行の自動プルーニング


古い TaskRun オブジェクトと PipelineRun オブジェクト、およびそれらの実行されたインスタンスは、アクティブな実行に使用できる物理リソースを占有します。これらのリソースを最適に利用するために、Red Hat OpenShift Pipelines は、さまざまな namespace 内の未使用のオブジェクトとそのインスタンスを自動的に削除するプルーナーコンポーネントを提供します。

注記

TektonConfig カスタムリソースを使用してインストール全体のプルーナーを設定し、namespace のアノテーションを使用して namespace の設定を変更できます。ただし、namespace で個々のタスク実行とパイプライン実行を選択的に自動プルーニングすることはできません。

3.13.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
# ...
Copy to Clipboard Toggle word wrap

Expand
表3.3 プルーナー設定でサポートされているパラメーター
パラメーター説明

schedule

プルーナープロセスを実行するための Cron スケジュール。デフォルトのスケジュールでは、プロセスは毎日 08:00 に実行されます。Cron スケジュール構文の詳細は、Kubernetes ドキュメントの Cron schedule syntax を参照してください。

resources

プルーナーが適用されるリソースのタイプ。使用可能なリソースの種類は、taskrunpipelinerun です。

keep

保持するすべてのタイプの最新のリソースの数。

prune-per-resource

false に設定した場合、keep パラメーターの値はタスク実行またはパイプライン実行の合計数を示します。たとえば、keep100 に設定されている場合、プルーナーは最新のタスク実行 100 件と最新のパイプライン実行 100 件を保持し、他のすべてのリソースを削除します。

true に設定すると、keep パラメーターの値は、各パイプラインを参照するパイプライン実行と、各タスクを参照するタスク実行に対して個別に計算されます。たとえば、keep100 に設定されていると、プルーナーは Pipeline1 の最新のパイプライン実行 100 件、Pipeline2 の最新のパイプライン実行 100 件、Task1 の最新のタスク実行 100 件などを保持し、他のすべてのリソースを削除します。

keep-since

リソースを保持する最大時間 (分単位)。たとえば、6 日以上前に作成されたリソースを保持するには、keep-since7200 に設定します。

startingDeadlineSeconds

このパラメーターは任意です。何らかの理由でプルーナージョブがスケジュールされたタイミングで開始しない場合、この設定でジョブを開始できる最大時間を秒単位で設定します。指定された時間内にジョブが開始されないと、OpenShift Pipelines はこのジョブが失敗したと見なし、次のスケジュールされた時間にプルーナーを開始します。このパラメーターを指定せず、プルーナージョブがスケジュールされたタイミングで開始されないと、可能な限り、OpenShift Pipelines は後からジョブを開始しようとします。

注記

keep パラメーターと keep-since パラメーターは相互に排他的です。設定ではそのうちの 1 つだけを使用してください。

3.13.2. タスク実行とパイプライン実行を自動的にプルーニングするためのアノテーション

ネームスペース内のタスク実行とパイプライン実行の自動プルーニングの設定を変更するには、namespace にアノテーションを設定します。

次の namespace のアノテーションは、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" に設定します。

次の追加の namespace アノテーションを使用できます。

  • Operator.tekton.dev/prune.skip: true に設定すると、アノテーションが設定されている namespace はプルーニングされません。
  • operator.tekton.dev/prune.strategy: このアノテーションの値を keep または keep-since のいずれかに設定します。

たとえば、次のアノテーションは、過去 5 日間に作成されたすべてのタスク実行とパイプライン実行を保持し、古いリソースを削除します。

自動プルーニングアノテーションの例

kind: Namespace
apiVersion: v1
# ...
metadata:
  annotations:
    operator.tekton.dev/prune.resources: "taskrun, pipelinerun"
    operator.tekton.dev/prune.keep-since: 7200
# ...
Copy to Clipboard Toggle word wrap

3.13.3. イベントベースのプルーナーの有効化

重要

イベントベースのプルーナーはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

イベントベースの tektonpruner コントローラーを使用すると、設定可能なポリシーに基づいて、PipelineRunsTaskRuns などの完了したリソースを自動的に削除できます。デフォルトのジョブベースのプルーナーとは異なり、イベントベースのプルーナーはリソースイベントをリッスンし、ほぼリアルタイムでリソースをプルーニングします。

イベントベースのプルーナーは以下と一緒に使用できます。

リソースアノテーション Tekton Results パイプライン as Code

注記

Operator はイベントベースのプルーナーでのこれらの機能の使用を制限しません。ただし、将来のリリースでは、競合が検出されると検証が導入される可能性があります。

重要

イベントベースのプルーナーを有効にする前に、TektonConfig カスタムリソース(CR)でデフォルトのプルーナーを無効にする必要があります。プルーナータイプの両方が有効になっている場合、デプロイメントの readiness ステータスが False に変更され、以下のエラーメッセージが出力に表示されます。

Components not in ready state: Invalid Pruner Configuration!! Both pruners, tektonpruner(event based) and pruner(job based) cannot be enabled simultaneously. Please disable one of them.
Copy to Clipboard Toggle word wrap

手順

  1. TektonConfig CR で、spec.pruner.disabled フィールドを true に設定してデフォルトのプルーナーを無効にし、spec.tektonpruner.disabled フィールドを false に設定してイベントベースのプルーナーを有効にします。

    apiVersion: operator.tekton.dev/v1alpha1
    kind: TektonConfig
    metadata:
     name: config
    spec:
      # ...
      pruner:
        disabled: true
      # ...
      tektonpruner:
        disabled: false
        options: {}
      # ...
    Copy to Clipboard Toggle word wrap

    更新された CR を適用すると、Operator は tekton-pruner-controller Pod を openshift-pipelines namespace にデプロイします。

  2. 以下の設定マップが openshift-pipelines namespace に表示されることを確認します。

    Expand
    ConfigMap目的

    tekton-pruner-default-spec

    デフォルトのプルーニング動作を定義する

    pruner-info

    コントローラーが使用する内部ランタイムデータを保存する

    config-logging-tekton-pruner

    プルーナーのロギング設定を行う

    config-observability-tekton-pruner

    メトリクスやトレーシングなどの可観測性機能を有効にする

重要

デフォルトのプルーナーとは異なり、TektonConfig CR を変更することによってのみイベントベースのプルーナーを有効または無効にすることができます。tekton-pruner-default-spec 設定マップを変更して他のすべてのプルーニング動作を設定します。

検証

  1. tekton-pruner-controller Pod が実行中であることを確認するには、次のコマンドを実行します。

    $ oc get pods -n openshift-pipelines
    Copy to Clipboard Toggle word wrap
  2. 出力に Running 状態の tekton-pruner-controller Pod が含まれていることを確認します。出力例:

    $ tekton-pruner-controller-<id>    Running
    Copy to Clipboard Toggle word wrap

3.13.4. イベントベースのプルーナーの設定

重要

イベントベースのプルーナーはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

イベントベースのプルーナーのプルーニング動作を設定するには、openshift-pipelines namespace の tekton-pruner-default-spec 設定マップを変更します。この設定マップは、グローバルプルーニングポリシーとオプションの namespace 固有のオーバーライドの両方をサポートします。

以下の例は、グローバルプルーニングルールを使用するデフォルトの tekton-pruner-default-spec 設定マップを示しています。

apiVersion: v1
kind: ConfigMap
metadata:
  name: tekton-pruner-default-spec
  namespace: openshift-pipelines
data:
  global-config: |
    enforcedConfigLevel: global
    ttlSecondsAfterFinished: 300
    successfulHistoryLimit: 3
    failedHistoryLimit: 3
    historyLimit: 5
# ...
Copy to Clipboard Toggle word wrap
  • ttlSecondsAfterFinished: 300: リソース 300 秒(5 分)を削除します。
  • successfulHistoryLimit: 3 Retain 3 successful の実行。
  • failedHistoryLimit: 3: Retain 3 failed runs.
  • historyLimit: 5: 保持を 5 の実行に制限します。この設定は、ステータス固有の制限が定義されていない場合に使用されます。

enforcedConfigLevelnamespace に設定し、namespaces セクションでポリシーを設定することで、個々の namespace のプルーニングルールを定義できます。次の例では、dev-project namespace 内のリソースに 60 秒の有効期間 (TTL) が適用されます。

# ...
data:
  global-config: |
    enforcedConfigLevel: namespace
    ttlSecondsAfterFinished: 300
    namespaces:
      dev-project:
        ttlSecondsAfterFinished: 60
# ...
Copy to Clipboard Toggle word wrap

以下のパラメーターは、tekton-pruner-default-spec Config Map の global-config セクションで使用できます。

Expand
パラメーター説明

ttlSecondsAfterFinished

完了後の固定期間(秒数)後にリソースを削除します。

successfulHistoryLimit

最近成功した実行の指定数を保持し、以前に成功した実行を削除します。

failedHistoryLimit

最近失敗した実行の指定数を保持し、以前に失敗した実行を削除します。

historyLimit

ステータス固有の制限が定義されていない場合は、一般的な履歴制限を適用します。

enforcedConfigLevel

プルーナーが設定を適用するレベルを指定します。受け入れられる値: global または namespace

namespaces

namespace ごとのプルーニングルールを定義します。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat