9.5. イメージの自動プルーニング

使用年数、ステータス、または制限の超過のためにシステムで不要となったイメージは、自動的にプルーニングされます。クラスター管理者は、Pruning Custom Resource を設定したり、これを保留にしたりすることができます。

前提条件

  • クラスター管理者のパーミッション。
  • oc CLI をインストールしている。

手順

  • imagepruners.imageregistry.operator.openshift.io/cluster という名前のオブジェクトに以下の spec および status フィールドが含まれることを確認します。
spec:
  schedule: 0 0 * * * 1
  suspend: false 2
  keepTagRevisions: 3 3
  keepYoungerThan: 3600000000000 4
  resources: {} 5
  affinity: {} 6
  nodeSelector: {} 7
  tolerations: [] 8
  successfulJobsHistoryLimit: 3 9
  failedJobsHistoryLimit: 3 10
status:
  observedGeneration: 2 11
  conditions: 12
  - type: Available
    status: "True"
    lastTransitionTime: 2019-10-09T03:13:45
    reason: Ready
    message: "Periodic image pruner has been created."
  - type: Scheduled
    status: "True"
    lastTransitionTime: 2019-10-09T03:13:45
    reason: Scheduled
    message: "Image pruner job has been scheduled."
  - type: Failed
    staus: "False"
    lastTransitionTime: 2019-10-09T03:13:45
    reason: Succeeded
    message: "Most recent image pruning job succeeded."
1
schedule: CronJob 形式のスケジュールこれはオプションのフィールドで、デフォルトは dayly で午前 0 時でに設定されます。
2
suspend: true に設定されている場合、プルーニングを実行している CronJob は中断されます。これはオプションのフィールドで、デフォルトは false です。新規クラスターの初期値は true です。
3
keepTagRevisions: 保持するタグ別のりビジョン数です。これはオプションのフィールドで、デフォルトは 3 です。初期値は 3 です。
4
keepYoungerThan: 指定の期間よりも後に作成されたイメージを保持します (ナノ秒単位)。これはオプションのフィールドで、デフォルトは 3600000000000 (60 分) です。
5
resources: 標準の Pod リソースの要求および制限です。これはオプションのフィールドです。
6
affinity: 標準の Pod のアフィニティーです。これはオプションのフィールドです。
7
nodeSelector: イメージプルーナー Pod の標準の Pod ノードセレクター。これはオプションのフィールドです。
8
tolerations: 標準の Pod の容認です。これはオプションのフィールドです。
9
successfulJobsHistoryLimit: 保持する成功したジョブの最大数です。メトリクスがレポートされるようにするには >= 1 にする必要があります。これはオプションのフィールドで、デフォルトは 3 です。初期値は 3 です。
10
failedJobsHistoryLimit: 保持する失敗したジョブの最大数です。メトリクスがレポートされるようにするには >= 1 にする必要があります。これはオプションのフィールドで、デフォルトは 3 です。初期値は 3 です。
11
observedGeneration: Operator によって観察される生成です。
12
conditions: 以下のタイプの標準条件オブジェクトです。
  • Available: プルーニングジョブが作成されているかどうかを示します。理由には Ready または Error のいずれかを使用できます。
  • Scheduled: 次のプルーニングジョブがスケジュールされているかどうかを示します。理由には、Scheduled、Suspended、または Error を使用できます。
  • Failed: 最新のプルーニングジョブが失敗したかどうかを示します。
重要

プルーナーを管理するためのイメージレジストリー Operator の動作は、イメージレジストリー Operator の ClusterOperator オブジェクトで指定される managementState とは独立しています。イメージレジストリー Operator が Managed 状態ではない場合、イメージプルーナーは Pruning Custom Resource によって設定され、管理できます。

ただし、イメージレジストリー Operator の managementState は、デプロイされたイメージプルーナージョブの動作を変更します。

  • Managed: イメージプルーナーの --prune-registry フラグは true に設定されます。
  • Removed: イメージプルーナーの --prune-registry フラグは false に設定されます。つまり、これは etcd のイメージメタデータのみのプルーニングを実行します。
  • Unmanaged: イメージプルーナーの --prune-registry フラグは false に設定されます。