13.5. 自动修剪镜像
要在 OpenShift Container Platform 中回收 OpenShift 镜像 registry 中的存储,并定义镜像保留周期,您可以配置自动镜像修剪器。
您可以在修剪自定义资源(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."其中:
规格表-
CronJob格式的调度。这是可选字段,默认为每日的午夜。 spec.suspend-
如果设置为
true,则运行修剪的CronJob将暂停。这是可选字段,默认为false。新集群上的初始值为false。 spec.keepTagRevisions-
要保留的每个标签的修订版本数量。这是可选字段,默认为
3。初始值为3。 spec.keepYoungerThanDuration-
保留比此持续时间更早的镜像。这是可选字段。如果没有指定值,则使用
keepYoungerThan,或默认值60m(60分钟)。 spec.keepYoungerThan-
已弃用。与
keepYoungerThanDuration相同,但持续时间被指定为纳秒的整数。这是可选字段。当设置keepYoungerThanDuration时,会忽略此字段。 规格资源- 标准 pod 资源请求和限值。这是可选字段。
spec.affinity- 标准 pod 关联性。这是可选字段。
nodeSelector- 标准 pod 节点选择器。这是可选字段。
spec.tolerations- 标准 pod 容限。这是可选字段。
.spec.successfulJobsHistoryLimit-
要保留的作业的最大数量。必须大于或等于
1以确保报告指标。这是可选字段,默认为3。初始值为3。 .spec.failedJobsHistoryLimit-
要保留的最大失败作业数。必须大于或等于
1以确保报告指标。这是可选字段,默认为3。初始值为3。 status.observedGeneration- Operator 观察到的生成。
status.conditions具有以下类型的标准条件对象:
-
可用:指示修剪任务是否已创建。原因可以是Ready或Error。 -
调度:指示是否调度了下一个修剪任务。原因可以是Scheduled,Suspended, 或Error。 -
失败:指示最新修剪任务是否失败。
-