5.4. 将镜像集镜像(mirror)到镜像 registry


将镜像集镜像到镜像 registry 可确保所需的镜像在安全且受控的环境中可用,从而促进平稳部署、更新和维护任务。

5.4.1. 创建镜像设置配置

在使用 oc-mirror 插件 v2 mirror 镜像之前,必须先创建镜像设置配置文件。此镜像设置配置文件定义哪些 OpenShift Container Platform 发行版本、Operator 和其他要 mirror 的镜像,以及 oc-mirror 插件 v2 的其他配置设置。

先决条件

  • 您已创建了容器镜像 registry 凭证文件。具体步骤,请参阅配置允许镜像镜像的凭证

流程

  • 创建 ImageSetConfiguration YAML 文件,并进行修改使其包含所需的镜像。

    ImageSetConfiguration YAML 文件示例

    kind: ImageSetConfiguration
    apiVersion: mirror.openshift.io/v2alpha1
    mirror:
      platform:
        channels:
        - name: stable-4.20 
    1
    
          minVersion: 4.20.2
          maxVersion: 4.20.2
        graph: true 
    2
    
      operators:
        - catalog: registry.redhat.io/redhat/redhat-operator-index:v4.20 
    3
    
          packages: 
    4
    
           - name: aws-load-balancer-operator
           - name: 3scale-operator
           - name: node-observability-operator
      additionalImages: 
    5
    
       - name: registry.redhat.io/ubi8/ubi:latest
       - name: registry.redhat.io/ubi9/ubi@sha256:20f695d2a91352d4eaa25107535126727b5945bff38ed36a3e59590f495046f0
    Copy to Clipboard Toggle word wrap

    1
    将频道设置为从中检索 OpenShift Container Platform 镜像。
    2
    添加 graph: true 以构建并推送 graph-data 镜像推送到镜像 registry。创建 OpenShift Update Service (OSUS) 需要 graph-data 镜像。graph: true 字段还会生成 UpdateService 自定义资源清单。oc 命令行界面 (CLI) 可以使用 UpdateService 自定义资源清单来创建 OSUS。如需更多信息,请参阅关于 OpenShift Update Service
    3
    将 Operator 目录设置为从中检索 OpenShift Container Platform 镜像。
    4
    仅指定要包含在镜像集中的某些 Operator 软件包。删除此字段以检索目录中的所有软件包。
    5
    指定要在镜像集中包含的任何其他镜像。

5.4.2. oc-mirror 工作流的比较

使用下表比较 mirror-to-disk (m2d), disk-to-mirror (d2m), 和 mirror-to-mirror (m2m) 支持的用例。

Expand
使用案例Mirror To Disk (m2d)和 Disk To Mirror (d2m)Mirror To Mirror (m2m)

目标 registry 存在于没有互联网访问且没有外部访问的环境中。

 

目标 registry 存在于没有互联网访问但可以从另一台机器访问的环境中。例如,目标 registry 位于堡垒主机中。

 

您必须使用一个物理方法(如使用 USB 设备)将内容移到断开连接的环境中。

 

工作流将内容直接移到目标 registry 中,而无需生成中间 tar 文件。

 

工作流使用一个内部缓存以在失败后恢复,但需要额外的磁盘空间。

 

工作流不使用缓存,在失败后需要重新开始整个过程,且不需要额外的磁盘空间。

 

您可以在带有受限互联网访问的环境中使用 oc-mirror 插件 v2 将镜像集镜像到 registry。

先决条件

  • 在运行 oc-mirror 插件 v2 的环境中,您可以访问互联网和镜像 registry。

流程

  • 运行以下命令,将指定镜像设置配置中的镜像镜像到指定的 registry:

    $ oc mirror -c <image_set_configuration> --workspace file://<file_path> docker://<mirror_registry_url> --v2 
    1
    Copy to Clipboard Toggle word wrap

    其中:

    <image_set_configuration>
    指定镜像设置配置文件的名称。
    <file_path>
    指定生成集群资源的目录。
    <mirror_registry_url>
    指定镜像存储并从中删除镜像 registry 的 URL 或地址。

验证

  1. 进入 <file_path> 目录中生成的 working-dir/cluster-resources 目录。
  2. 验证 ImageDigestMirrorSetImageTagMirrorSetCatalogSource 资源是否存在 YAML 文件。

后续步骤

  • 配置集群以使用 oc-mirror 插件 v2 生成的资源。

您可以在 OpenShift Container Platform 集群无法访问互联网的完全断开连接的环境中镜像镜像集。以下高级别工作流描述了镜像过程:

  1. Mirror to disk :将镜像集 mirror 到一个存档。
  2. Disk transfer :手动将存档传输到断开连接的镜像 registry 的网络。
  3. Disk to mirror: 将存档中的镜像集 mirror 到目标断开连接的 registry。

5.4.4.1. 从镜像镜像到磁盘

您可以使用 oc-mirror 插件 v2 生成镜像集,并将内容保存到磁盘。之后,您可以将生成的镜像设置为断开连接的环境,并将其镜像到目标 registry。

oc-mirror 插件 v2 从镜像设置配置中指定的源中检索容器镜像,并将它们打包到本地目录中的 tar 存档中。

流程

  • 运行以下命令,将指定镜像集配置中的镜像镜像到磁盘:

    $ oc mirror -c <image_set_configuration> file://<file_path> --v2
    Copy to Clipboard Toggle word wrap

    其中:

    <image_set_configuration>
    指定镜像设置配置文件的名称。
    <file_path>
    指定在其中生成包含镜像集的存档的目录。

验证

  1. 进入生成的 <file_path> 目录。
  2. 验证存档文件是否已生成。

后续步骤

  • 从磁盘镜像到镜像

5.4.4.2. 从磁盘镜像到镜像

您可以使用 oc-mirror 插件 v2 将磁盘中的镜像集镜像到目标镜像 registry。

oc-mirror 插件 v2 从本地磁盘检索容器镜像并将其传送到指定的镜像 registry。

流程

  1. 将包含 mirror 镜像集的磁盘传输到包含目标镜像 registry 的环境。
  2. 运行以下命令,处理磁盘上的镜像集文件,并将内容镜像到目标镜像 registry:

    $ oc mirror -c <image_set_configuration> --from file://<file_path> docker://<mirror_registry_url> --v2
    Copy to Clipboard Toggle word wrap

    其中:

    <image_set_configuration>
    指定镜像设置配置文件的名称。
    <file_path>
    指定包含存档的磁盘上的目录。此文件夹还包含您为集群生成的集群资源,如 ImageDigestMirrorSet (IDMS) 或 ImageTagMirrorSet (ITMS) 资源。
    <mirror_registry_url>
    指定用于存储镜像的 mirror registry 的 URL 或地址。

验证

  1. 进入到 working-dir 中的 cluster-resources 目录,它在 <file_path> 目录中生成。
  2. 验证 ImageDigestMirrorSetImageTagMirrorSetCatalogSource 资源是否存在 YAML 文件。

后续步骤

  • 配置集群以使用 oc-mirror 插件 v2 生成的资源。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat