13.6.6. 镜像修剪 CLI 选项
下表描述了您可以与 oc adm prune images <image_prune_option> 命令一起使用的选项。
| 选项 | 描述 |
|---|---|
|
|
包括没有推送到 registry 但已通过 pullthrough 镜像的镜像。默认为开启。要将修剪限制为已被推送到集成 registry 的镜像,请传递 |
|
| 与 OpenShift Container Platform 管理的 registry 通信时使用的证书颁发机构文件的路径。默认为来自当前用户配置文件的证书颁发机构数据。如果提供,则发起安全连接。 |
|
|
指明应该执行修剪,而不是空运行。这需要具有指向集成容器镜像 registry 的有效路由。如果此命令在集群网络外运行,则必须使用 |
|
| 谨慎使用这个选项。允许与通过 HTTP 托管或具有无效 HTTPS 证书的容器 registry 进行不安全连接。 |
|
|
对于每个镜像流,每个标签最多保留 |
|
|
不修剪相对于当前时间年龄不到 |
|
|
修剪超过同一项目中定义的最小限值的每个镜像。此标志不能与 |
|
|
联系 registry 时使用的地址。此命令尝试使用由受管镜像和镜像流决定的集群内部 URL。如果失败(registry 无法解析或访问),则需要使用此标志提供一个替代路由。可以在 registry 主机名中加上前缀 |
|
| 此选项与其他选项指定的条件结合,可以控制是否修剪 registry 中与 OpenShift Container Platform 镜像 API 对象对应的数据。默认情况下,镜像修剪同时处理镜像 API 对象和 registry 中对应的数据。 当您只关注移除 etcd 内容时(可能要减少镜像对象的数量,但并不关心清理 registry)或要通过硬修剪 registry 来单独进行操作(可能在 registry 的适当维护窗口期间),此选项很有用处。 |
13.6.6.1. 有关 --prune-registry 标志的附加信息 复制链接链接已复制到粘贴板!
您可以通过传递 --prune-registry=false 标志,将 OpenShift Container Platform 镜像 API 对象从 registry 中删除镜像数据分开。例如,以下命令只修剪 API 对象,registry 存储保持不变:
$ oc adm prune images --keep-tag-revisions=3 --keep-younger-than=60m --confirm --prune-registry=false
然后,您可以对 registry 执行硬修剪,以删除关联的镜像数据。与在单个命令中修剪这两者相比,这种方法可以缩小出现竞争条件的时间窗口。
但是,这并不能完全消除时间窗口。例如,在标识该镜像以进行修剪时,仍有可能会创建引用相关镜像的 pod。您应该跟踪在修剪过程中创建的任何 API 对象,以确保它们不引用已删除的内容。
在不使用 --prune-registry 选项或使用 --prune-registry=true 的情况下重新运行修剪,不会删除之前使用 --prune-registry=false 修剪的镜像的相关 registry 存储。这些镜像只能通过执行 registry 硬修剪来从 registry 存储中删除。如需更多信息,请参阅"硬修剪 registry"。