3.6. 从 oc-mirror 插件 v1 迁移到 v2
oc-mirror v2 插件对镜像 mirror 工作流进行了重大更改。本指南为迁移提供了步骤说明,同时确保与 oc-mirror 插件 v2 兼容。
您必须通过修改 API 版本并删除已弃用的字段来手动更新配置。如需更多信息,请参阅"从 oc-mirror 插件 v1 改为 v2"。
3.6.1. 从 oc-mirror 插件 v1 改为 v2 复制链接链接已复制到粘贴板!
在从 oc-mirror 插件 v1 迁移到 v2 之前,请参阅 oc-mirror 插件 v1 和 v2 之间的以下区别:
-
显式版本选择:在使用
oc-mirror
时,用户必须明确指定--v2
。如果没有指定版本,则默认执行 v1。此行为预期会在以后的版本中改变,其中--v2
是默认设置。 更新了命令:镜像工作流的命令已更改为与 oc-mirror 插件 v2 的新工作流保持一致。
对于 mirror-to-disk,请运行以下命令:
oc-mirror --config isc.yaml file://<directory_name> --v2
$ oc-mirror --config isc.yaml file://<directory_name> --v2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 disk-to-mirror,运行以下命令:
oc-mirror --config isc.yaml --from file://<directory_name> docker://<remote_registry> --v2
$ oc-mirror --config isc.yaml --from file://<directory_name> docker://<remote_registry> --v2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 mirror-to-mirror,运行以下命令:
oc-mirror --config isc.yaml --workspace file://<directory_name> docker://<remote_registry> --v2
$ oc-mirror --config isc.yaml --workspace file://<directory_name> docker://<remote_registry> --v2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意mirror-to-mirror 操作现在需要
--workspace
。
-
API 版本更新:
ImageSetConfiguration
API 版本从v1alpha2
(v1)改为v2alpha1
(v2)。迁移前,您必须手动更新配置文件。 配置更改:
-
storageConfig
必须在 oc-mirror 插件 v2 中删除。 - 现在,通过工作目录或本地缓存自动处理增量镜像。
-
在结果目录中更改:要应用到断开连接的集群的所有自定义资源都会在迁移后的
<workspace_path>/working-dir/cluster-resources
目录中生成。- oc-mirror 插件 v2 中的输出不会存储在与 oc-mirror 插件 v1 相同的位置。
您必须检查工作目录中的
cluster-resources
文件夹以查找以下资源:-
ImageDigestMirrorSet
(IDMS) -
ImageTagMirrorSet
(ITMS) -
CatalogSource
-
ClusterCatalog
-
UpdateService
-
工作区和目录命名:遵循新的 oc-mirror v2 约定,以防止在不同版本间进行转换时潜在的数据不一致。
-
oc-mirror 插件 v1
oc-mirror-workspace
目录不再需要。 - 为 oc-mirror 插件 v2 使用新目录以避免冲突。
-
oc-mirror 插件 v1
将
ImageContentSourcePolicy
(ICSP) 资源替换为 IDMS/ITMS :重要删除所有
ImageContentSourcePolicy
(ICSP)资源可能会删除与 oc-mirror 无关的配置。为了避免意外删除,请在删除前识别 oc-mirror 生成的 ICSP 资源。如果您不确定,请与集群管理员进行检查。如需更多信息,请参阅"使用 oc-mirror 插件 v2 为断开连接的安装镜像镜像"。
-
在 oc-mirror 插件 v2 中,ICSP 资源由
ImageDigestMirrorSet
(IDMS)和ImageTagMirrorSet
(ITMS)资源替代。
-
在 oc-mirror 插件 v2 中,ICSP 资源由
3.6.2. 迁移到 oc-mirror 插件 v2 复制链接链接已复制到粘贴板!
要从 oc-mirror 插件 v1 迁移到 v2,您必须手动更新 ImageSetConfiguration
文件,修改镜像命令并清理 v1 工件。按照以下步骤完成迁移。
流程
修改 API 版本并删除
ImageSetConfiguration
中的已弃用字段。带有 oc-mirror 插件 v1 配置的
ImageSetConfiguration
文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 带有 oc-mirror 插件 v2 配置的
ImageSetConfiguration
文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,检查工作目录中的 IDMS、ITMS、
CatalogSource
和ClusterCatalog
资源中的cluster-resources
目录:ls <v2_workspace>/working-dir/cluster-resources/
$ ls <v2_workspace>/working-dir/cluster-resources/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 迁移完成后,验证镜像的镜像和目录是否可用:
- 确保镜像过程中没有发生错误或警告。
-
确保没有生成错误文件(
working-dir/logs/mirroring_errors_YYYYMMdd_HHmmss.txt
)。
使用以下命令验证镜像镜像和目录是否可用:
oc get catalogsource -n openshift-marketplace
$ oc get catalogsource -n openshift-marketplace
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get imagedigestmirrorset,imagetagmirrorset -n openshift-config
$ oc get imagedigestmirrorset,imagetagmirrorset -n openshift-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如需更多信息,请参阅"使用 oc-mirror 插件 v2 为断开连接的安装镜像镜像"。
可选:使用 oc-mirror 插件 v1 删除镜像镜像:
- 使用 oc-mirror 插件 v1 镜像镜像。
将
ImageSetConfiguration
文件中的 API 版本从v1alpha2
(v1)更新至v2alpha1
(v2),然后运行以下命令:oc-mirror -c isc.yaml file://some-dir --v2
$ oc-mirror -c isc.yaml file://some-dir --v2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意storageConfig
不是ImageSetConfiguration
和DeleteImageSetConfiguration
文件中的有效字段。当升级到 oc-mirror 插件 v2 时删除此字段。运行以下命令生成删除清单并删除 v1 镜像:
oc-mirror delete --config=delete-isc.yaml --generate --delete-v1-images --workspace file://some-dir docker://registry.example:5000 --v2
$ oc-mirror delete --config=delete-isc.yaml --generate --delete-v1-images --workspace file://some-dir docker://registry.example:5000 --v2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要oc-mirror 插件 v2 不会自动修剪目标 registry,这与 oc-mirror 插件 v1 不同。要清理不再需要的镜像,请使用 v2 中的删除功能及
--delete-v1-images
命令标志。删除所有使用 oc-mirror 插件 v1 的镜像后,您不再需要使用此标志。如果您需要删除使用 oc-mirror 插件 v2 镜像,请不要设置
--delete-v1-images
。有关删除镜像的更多信息,请参阅"从断开连接的环境中删除镜像"。
运行以下命令,根据生成的清单删除镜像:
oc-mirror delete --delete-yaml-file some-dir/working-dir/delete/delete-images.yaml docker://registry.example:5000 --v2
$ oc-mirror delete --delete-yaml-file some-dir/working-dir/delete/delete-images.yaml docker://registry.example:5000 --v2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow