4.11. 以 OCI 格式镜像基于文件的目录 Operator 镜像
您可以使用 oc-mirror 插件以 Open Containerprojects (OCI)镜像格式而不是 Docker v2 格式镜像 Operator。您可以使用 OCI 格式将 Operator 镜像复制到磁盘上基于文件的目录。然后,您可以将本地 OCI 镜像复制到目标镜像 registry。
使用 oc-mirror 插件以 OCI 格式镜像 Operator 镜像只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
使用 OCI 功能时,镜像不会自动从目标镜像 registry 中修剪。
先决条件
- 您可以访问互联网来获取所需的容器镜像。
-
已安装 OpenShift CLI(
oc
)。 -
已安装
oc-mirror
CLI 插件。
流程
可选:检索您需要的目录和镜像,并将其保存到磁盘上。如果您已在磁盘上有 OCI 格式的目录镜像,您可以跳过这一步。
创建镜像设置配置文件:
复制到磁盘的镜像设置配置文件示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意使用 OCI 功能时,只有
mirror.operators.catalog
设置可供使用。storageConfig
设置将被忽略,而是传递给oc mirror
命令的位置。运行
oc mirror
命令将指定镜像集配置镜像到磁盘:oc mirror --config=./imageset-config.yaml \ --use-oci-feature \ --oci-feature-action=copy \ oci://my-oci-catalog
$ oc mirror --config=./imageset-config.yaml \
1 --use-oci-feature \
2 --oci-feature-action=copy \
3 oci://my-oci-catalog
4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可以选择使用
--oci-registries-config
标志来指定到 TOML 格式的registry.conf
文件的路径。您可以使用它来从不同的 registry 中镜像,如用于测试的预生产位置,而无需更改镜像设置配置文件。registry.conf 文件示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
registry.mirror
部分中的location
字段设置为您要从中拉取镜像的替代 registry 位置。registry
部分中的location
字段必须与您在镜像设置配置文件中指定的 registry 位置相同。列出目录内容并验证是否已创建以下目录:
ls -l
$ ls -l
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
my-oci-catalog oc-mirror-workspace olm_artifacts
my-oci-catalog
1 oc-mirror-workspace
2 olm_artifacts
3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow
更新镜像设置配置文件,以指定磁盘上要镜像到目标镜像 registry 的目录位置:
镜像设置配置文件示例,用于镜像 registry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定磁盘上 OCI 目录位置的绝对路径。此流程假设您使用
my-oci-catalog
作为目录并镜像redhat-operator-index
目录。该路径必须以oci://
开头。
运行 oc mirror 命令,以处理磁盘上镜像集文件,并将内容镜像到目标镜像 registry:
oc mirror --config=./imageset-config.yaml \ --use-oci-feature \ --oci-feature-action=mirror \ docker://registry.example:5000
$ oc mirror --config=./imageset-config.yaml \
1 --use-oci-feature \
2 --oci-feature-action=mirror \
3 docker://registry.example:5000
4 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可以选择使用
--oci-insecure-signature-policy
标志将签名推送到目标镜像 registry。
后续步骤
- 配置集群以使用 oc-mirror 生成的资源。