5.7. 在断开连接的环境中删除镜像


在使用 oc-mirror 插件 v2 之前,您必须删除之前部署的镜像。oc-mirror 插件 v2 不再执行自动修剪。

在使用 oc-mirror 插件 v2 时,您必须创建 DeleteImageSetConfiguration 文件来删除镜像配置。这可防止在使用 ImageSetConfig.yaml 更改时意外删除必要的或部署的镜像。

在以下示例中,DeleteImageSetConfiguration 会删除以下内容:

  • OpenShift Container Platform release 4.13.3 的所有镜像。
  • 目录镜像 redhat-operator-index v4.12
  • aws-load-balancer-operator v0.0.1 捆绑包及其所有相关镜像。
  • 相应的摘要引用的额外镜像 ubiubi-minimal

示例: DeleteImageSetConfig

apiVersion: mirror.openshift.io/v2alpha1
kind: DeleteImageSetConfiguration
delete:
  platform:
    channels:
      - name: stable-4.13
        minVersion: 4.13.3
        maxVersion: 4.13.3
  operators:
    - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.12
      packages:
      - name: aws-load-balancer-operator
         minVersion: 0.0.1
         maxVersion: 0.0.1
  additionalImages:
    - name: registry.redhat.io/ubi8/ubi@sha256:bce7e9f69fb7d4533447232478fd825811c760288f87a35699f9c8f030f2c1a6
    - name: registry.redhat.io/ubi8/ubi-minimal@sha256:8bedbe742f140108897fb3532068e8316900d9814f399d676ac78b46e740e34e
Copy to Clipboard Toggle word wrap

重要

考虑使用 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 从断开连接的环境中删除镜像,请按照以下步骤操作。

流程

  1. 创建删除之前镜像的 YAML 文件:

    $ oc mirror delete --config delete-image-set-config.yaml --workspace file://<previously_mirrored_work_folder> --v2 --generate docker://<remote_registry>
    Copy to Clipboard Toggle word wrap

    其中:

    • <previously_mirrored_work_folder> :使用镜像之前在镜像过程中镜像或存储的目录。
    • <remote_registry> : 插入从中删除镜像的远程容器 registry 的 URL 或地址。
  2. 进入创建的 <previously_mirrored_work_folder>/delete directory
  3. 验证 delete-images.yaml 文件是否已生成。
  4. 手工确保文件中列出的每个镜像不再被集群需要,可以安全地从 registry 中删除。
  5. 在生成 delete YAML 文件后,从远程 registry 中删除镜像:

    $ oc mirror delete --v2 --delete-yaml-file <previously_mirrored_work_folder>/delete/delete-images.yaml docker:/ <remote_registry>
    Copy to Clipboard Toggle word wrap

    其中:

    • <previously_mirrored_work_folder>:指定之前镜像的工作文件夹。

      重要

      使用 mirror-to-mirror 时,镜像不会在本地缓存,因此您无法从本地缓存中删除镜像。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat