4.7. 将镜像集镜像(mirror)到镜像 registry
您可以使用 oc-mirror CLI 插件在 部分断开连接的环境中或完全断开连接的环境中将镜像镜像到镜像 registry。
这些步骤假定您已设置了镜像 registry。
4.7.1. 在部分断开连接的环境中镜像设置的镜像
在部分断开连接的环境中,您可以直接镜像到目标镜像 registry 的镜像。
4.7.1.1. 镜像(mirror)到镜像(mirror)的镜像
您可以使用 oc-mirror 插件将镜像直接设置为在镜像设置过程中可访问的目标镜像 registry。
您必须在镜像设置配置文件中指定存储后端。这个存储后端可以是本地目录或 Docker v2 registry。oc-mirror 插件在创建镜像的过程中将元数据存储在这个存储后端中。
不要删除或修改 oc-mirror 插件生成的元数据。每次针对同一镜像 registry 运行 oc-mirror 插件时,都必须使用相同的存储后端。
先决条件
- 您可以访问互联网来获取所需的容器镜像。
-
已安装 OpenShift CLI(
oc
)。 -
已安装
oc-mirror
CLI 插件。 - 您已创建了镜像设置配置文件。
流程
运行
oc mirror
命令将指定镜像集配置中的镜像镜像到指定的 registry:$ oc mirror --config=./imageset-config.yaml \1 docker://registry.example:5000 2
验证
-
进入生成的
oc-mirror-workspace/
目录。 -
导航到结果目录,例如,
results-1639608409/
。 -
验证
ImageContentSourcePolicy
和CatalogSource
资源是否存在 YAML 文件。
后续步骤
- 配置集群以使用 oc-mirror 生成的资源。
故障排除
4.7.2. 镜像在完全断开连接的环境中设置的镜像
要镜像在完全断开连接的环境中设置的镜像,您必须首先将镜像集镜像到磁盘, 然后将磁盘上的镜像集文件镜像到一个镜像。
4.7.2.1. 从镜像镜像到磁盘
您可以使用 oc-mirror 插件生成镜像集,并将内容保存到磁盘。然后,生成的镜像集可以转移到断开连接的环境中,并镜像到目标 registry。
根据镜像设置配置文件中指定的配置,使用 oc-mirror 的镜像可能会将几百 GB 数据下载到磁盘。
您填充镜像 registry 时初始镜像集下载通常是最大镜像。因为您只下载自上次运行命令以来更改的镜像,所以再次运行 oc-mirror 插件时,所生成的镜像集通常比较小。
您必须在镜像设置配置文件中指定存储后端。这个存储后端可以是本地目录或 docker v2 registry。oc-mirror 插件在创建镜像的过程中将元数据存储在这个存储后端中。
不要删除或修改 oc-mirror 插件生成的元数据。每次针对同一镜像 registry 运行 oc-mirror 插件时,都必须使用相同的存储后端。
先决条件
- 您可以访问互联网来获取所需的容器镜像。
-
已安装 OpenShift CLI(
oc
)。 -
已安装
oc-mirror
CLI 插件。 - 您已创建了镜像设置配置文件。
流程
运行
oc mirror
命令将指定镜像集配置镜像到磁盘:$ oc mirror --config=./imageset-config.yaml \1 file://<path_to_output_directory> 2
验证
进入您的输出目录:
$ cd <path_to_output_directory>
验证是否创建了镜像设置
.tar
文件:$ ls
输出示例
mirror_seq1_000000.tar
后续步骤
- 将镜像集 .tar 文件移动到断开连接的环境中。
故障排除
4.7.2.2. 从磁盘镜像到镜像
您可以使用 oc-mirror 插件将生成的镜像集的内容镜像到目标镜像 registry。
先决条件
-
您已在断开连接的环境中安装了 OpenShift CLI(
oc
)。 -
您已在断开连接的环境中安装了
oc-mirror
CLI 插件。 -
已使用
oc mirror
命令生成镜像集文件。 - 您已将镜像集文件传送到断开连接的环境中。
流程
运行
oc mirror
命令,以处理磁盘上镜像集文件,并将内容镜像到目标镜像 registry:$ oc mirror --from=./mirror_seq1_000000.tar \1 docker://registry.example:5000 2
此命令使用镜像集更新镜像 registry,并生成
ImageContentSourcePolicy
和CatalogSource
资源。
验证
-
进入生成的
oc-mirror-workspace/
目录。 -
导航到结果目录,例如,
results-1639608409/
。 -
验证
ImageContentSourcePolicy
和CatalogSource
资源是否存在 YAML 文件。
后续步骤
- 配置集群以使用 oc-mirror 生成的资源。
故障排除