10.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
  keepYoungerThanDuration: 60m 4
  keepYoungerThan: 3600000000000 5
  resources: {} 6
  affinity: {} 7
  nodeSelector: {} 8
  tolerations: [] 9
  successfulJobsHistoryLimit: 3 10
  failedJobsHistoryLimit: 3 11
status:
  observedGeneration: 2 12
  conditions: 13
  - 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 です。新規クラスターの初期値は false です。
3
keepTagRevisions: 保持するタグ別のリビジョン数です。これはオプションのフィールドで、デフォルトは 3 です。初期値は 3 です。
4
keepYoungerThanDuration: 指定の期間よりも後に作成されたイメージを保持します。これはオプションのフィールドです。値の指定がない場合は、keepYoungerThan またはデフォルト値 60m (60 分) のいずれかが使用されます。
5
keepYoungerThan: 非推奨。keepYoungerThanDuration と同じですが、期間は整数 (ナノ秒単位) で指定されます。これはオプションのフィールドです。keepYoungerThanDuration を設定すると、このフィールドは無視されます。
6
resources: 標準の Pod リソースの要求および制限です。これはオプションのフィールドです。
7
affinity: 標準の Pod のアフィニティーです。これはオプションのフィールドです。
8
nodeSelector: 標準の Pod ノードセレクターです。これはオプションのフィールドです。
9
tolerations: 標準の Pod の容認です。これはオプションのフィールドです。
10
successfulJobsHistoryLimit: 保持する成功したジョブの最大数です。メトリクスがレポートされるようにするには >= 1 にする必要があります。これはオプションのフィールドで、デフォルトは 3 です。初期値は 3 です。
11
failedJobsHistoryLimit: 保持する失敗したジョブの最大数です。メトリクスがレポートされるようにするには >= 1 にする必要があります。これはオプションのフィールドで、デフォルトは 3 です。初期値は 3 です。
12
observedGeneration: Operator によって観察される生成です。
13
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 に設定されます。