13.5. イメージの自動プルーニング
OpenShift Container Platform の OpenShift イメージレジストリー内のストレージを回収し、イメージの保持期間を定義するために、自動イメージプルーナーを設定できます。
プルーニング用カスタムリソース (CR) で、スケジュール、停止、および保持オプションを設定します。
前提条件
- クラスター管理者権限を持つアカウントを使用して、OpenShift Container Platform クラスターにアクセスできる。
-
ocCLI がインストールされている。
プルーナーを管理するための Image Registry Operator の動作は、Image Registry Operator の ClusterOperator オブジェクトで指定された managementState とは無関係です。Image Registry Operator が Managed 状態ではない場合、イメージプルーナーは Pruning Custom Resource によって設定され、管理できます。
ただし、Image Registry Operator の managementState は、デプロイされたイメージプルーナージョブの動作を変更します。
-
Managed: イメージプルーナーの--prune-registryフラグはtrueに設定されます。 -
Removed: イメージプルーナーの--prune-registryフラグはfalseに設定されます。つまり、etcd のイメージメタデータのみプルーニングされます。
手順
imagepruners.imageregistry.operator.openshift.io/clusterという名前のオブジェクトに以下のspecおよびstatusフィールドが含まれることを確認します。spec: schedule: 0 0 * * * suspend: false keepTagRevisions: 3 keepYoungerThanDuration: 60m keepYoungerThan: 3600000000000 resources: {} affinity: {} nodeSelector: {} tolerations: [] successfulJobsHistoryLimit: 3 failedJobsHistoryLimit: 3 status: observedGeneration: 2 conditions: - 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."各項目の説明:
spec.schedule-
CronJob形式のスケジュール。これはオプションのフィールドで、デフォルトは daily で午前 0 時でに設定されます。 spec.suspend-
trueに設定されている場合、プルーニングを実行しているCronJobは中断されます。これはオプションのフィールドで、デフォルトはfalseです。新規クラスターの初期値はfalseです。 spec.keepTagRevisions-
タグごとに保持するリビジョン数。これはオプションのフィールドで、デフォルトは
3です。初期値は3です。 spec.keepYoungerThanDuration-
指定された期間よりも後に作成されたイメージを保持します。これはオプションのフィールドです。値の指定がない場合は、
keepYoungerThanまたはデフォルト値60m(60 分) のいずれかが使用されます。 spec.keepYoungerThan-
非推奨。
keepYoungerThanDurationと同じですが、期間は整数 (ナノ秒単位) で指定されます。これはオプションのフィールドです。keepYoungerThanDurationを設定すると、このフィールドは無視されます。 spec.resources- 標準的な Pod リソースの要求と制限。これはオプションのフィールドです。
spec.affinity- 標準の Pod のアフィニティーです。これはオプションのフィールドです。
nodeSelector- 標準の Pod ノードセレクター。これはオプションのフィールドです。
spec.tolerations- 標準の Pod の toleration。これはオプションのフィールドです。
spec.successfulJobsHistoryLimit-
成功したジョブの最大保持数。メトリクスがレポートされるようにするには、
1以上にする必要があります。これはオプションのフィールドで、デフォルトは3です。初期値は3です。 spec.failedJobsHistoryLimit-
失敗したジョブの最大保持数。メトリクスがレポートされるようにするには、
1以上にする必要があります。これはオプションのフィールドで、デフォルトは3です。初期値は3です。 status.observedGeneration- Operator によって観測された生成。
status.conditions以下のタイプの標準条件オブジェクト。
-
Available: プルーニングジョブが作成されているかどうかを示します。理由にはReadyまたはErrorのいずれかを使用できます。 -
Scheduled: 次のプルーニングジョブがスケジュールされているかどうかを示します。理由には、Scheduled、Suspended、またはErrorを使用できます。 -
Failed: 最新のプルーニングジョブが失敗したかどうかを示します。
-