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
    指定要在镜像集中包含的任何其他镜像。

您可以在带有受限互联网访问的环境中使用 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.3.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.3.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