5.7. 在断开连接的环境中删除镜像
在使用 oc-mirror 插件 v2 之前,您必须删除之前部署的镜像。oc-mirror 插件 v2 不再执行自动修剪。
在使用 oc-mirror 插件 v2 时,您必须创建 DeleteImageSetConfiguration 文件来删除镜像配置。这可防止在使用 ImageSetConfig.yaml 更改时意外删除必要的或部署的镜像。
在以下示例中,DeleteImageSetConfiguration 会删除以下内容:
- OpenShift Container Platform release 4.13.3 的所有镜像。
-
目录镜像
redhat-operator-indexv4.12。 -
aws-load-balancer-operatorv0.0.1 捆绑包及其所有相关镜像。 -
相应的摘要引用的额外镜像
ubi和ubi-minimal。
示例: DeleteImageSetConfig
考虑使用 mirror-to-disk 和 disk-to-mirror 工作流来减少镜像问题。
在镜像删除工作流中,oc-mirror 插件 v2 只删除镜像的清单,这不会减少 registry 中占用的存储。
要从不必要的镜像(如带有删除的清单)中释放存储空间,您必须在容器 registry 上启用垃圾收集器。启用垃圾收集器后,registry 将删除不再引用任何清单的镜像 Blob,从而减少之前由已删除 Blob 占用的存储。启用垃圾收集器会因容器 registry 而异。
要在删除镜像时跳过删除 Operator 目录镜像,您必须在 DeleteImageSetConfiguration 文件中的 Operator 目录镜像下列出特定的 Operator。这样可确保只有指定的 Operator 被删除,而不是目录镜像。
如果只指定 Operator 目录镜像,则该目录中的所有 Operator 以及目录镜像本身都将被删除。
5.7.1. 从断开连接的环境中删除镜像 复制链接链接已复制到粘贴板!
要使用 oc-mirror 插件 v2 从断开连接的环境中删除镜像,请按照以下步骤操作。
流程
创建删除之前镜像的 YAML 文件:
oc mirror delete --config delete-image-set-config.yaml --workspace file://<previously_mirrored_work_folder> --v2 --generate docker://<remote_registry>
$ oc mirror delete --config delete-image-set-config.yaml --workspace file://<previously_mirrored_work_folder> --v2 --generate docker://<remote_registry>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
-
<previously_mirrored_work_folder>:使用镜像之前在镜像过程中镜像或存储的目录。 -
<remote_registry>: 插入从中删除镜像的远程容器 registry 的 URL 或地址。
-
-
进入创建的
<previously_mirrored_work_folder>/delete directory。 -
验证
delete-images.yaml文件是否已生成。 - 手工确保文件中列出的每个镜像不再被集群需要,可以安全地从 registry 中删除。
在生成
deleteYAML 文件后,从远程 registry 中删除镜像:oc mirror delete --v2 --delete-yaml-file <previously_mirrored_work_folder>/delete/delete-images.yaml docker:/ <remote_registry>
$ oc mirror delete --v2 --delete-yaml-file <previously_mirrored_work_folder>/delete/delete-images.yaml docker:/ <remote_registry>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中:
<previously_mirrored_work_folder>:指定之前镜像的工作文件夹。重要使用 mirror-to-mirror 时,镜像不会在本地缓存,因此您无法从本地缓存中删除镜像。