6.8. 导入和使用镜像和镜像流
以下小节介绍了如何导入和使用镜像流。
6.8.1. 从私有容器镜像仓库(registry)导入镜像和镜像流 复制链接链接已复制到粘贴板!
要安全地管理外部源的内容,请将镜像流配置为从需要身份验证的私有 registry 中导入标签和镜像元数据。如果您将 Cluster Samples Operator 用来拉取内容的 registry 改为默认 registry.redhat.io 以外的内容,这个过程非常重要。
从不安全或安全容器镜像仓库导入时,secret 中定义的容器镜像仓库 URL 必须包含 :80 端口后缀,或在尝试从容器仓库仓库导入时不使用 secret。
流程
您必须通过输入以下命令来创建一个用于存储凭证的
secret对象:oc create secret generic <secret_name> --from-file=.dockerconfigjson=<file_absolute_path> --type=kubernetes.io/dockerconfigjson
$ oc create secret generic <secret_name> --from-file=.dockerconfigjson=<file_absolute_path> --type=kubernetes.io/dockerconfigjsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置 secret 后,请创建新镜像流或输入
oc import-image命令:oc import-image <imagestreamtag> --from=<image> --confirm
$ oc import-image <imagestreamtag> --from=<image> --confirmCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在导入过程中,OpenShift Container Platform 会提取 secret,并将其提供给远程方。
6.8.2. 使用清单列表 复制链接链接已复制到粘贴板!
要精确管理清单列表中包含的多架构或变体镜像,请使用 oc 标志。通过此功能,您可以导入单个子清单或清单列表的所有清单,从而对镜像流内容提供精细的控制。
import-image 或 oc tag CLI 命令的--import-mode
在某些情况下,用户可能想直接使用子清单。当运行 oc adm prune images 或 CronJob 修剪器运行时,它们无法检测何时使用子清单列表。因此,使用 oc adm prune images 或 CronJob 修剪器的管理员可能会删除整个清单列表,包括子清单列表。
为避免这种限制,您可以根据标签或摘要使用清单列表。
流程
输入以下命令来创建包含多架构镜像的镜像流,并将导入模式设置为
PreserveOriginal:oc import-image <multiarch-image-stream-tag> --from=<registry>/<project_name>/<image-name> \ --import-mode='PreserveOriginal' --reference-policy=local --confirm
$ oc import-image <multiarch-image-stream-tag> --from=<registry>/<project_name>/<image-name> \ --import-mode='PreserveOriginal' --reference-policy=local --confirmCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,输入以下命令使用
Legacy导入模式导入镜像,这会丢弃清单列表并导入单个子清单:oc import-image <multiarch-image-stream-tag> --from=<registry>/<project_name>/<image-name> \ --import-mode='Legacy' --confirm
$ oc import-image <multiarch-image-stream-tag> --from=<registry>/<project_name>/<image-name> \ --import-mode='Legacy' --confirmCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意--import-mode=默认值为Legacy。排除这个值,或者没有指定Legacy或PreserveOriginal,会导入单个子清单。无效的导入模式会返回以下错误:error: valid ImportMode values are Legacy or PreserveOriginal。
6.8.2.1. 配置定期导入清单列表 复制链接链接已复制到粘贴板!
要维护复杂、多架构镜像的最新镜像引用,请配置定期导入清单列表。要定期重新导入清单列表,您可以使用- scheduled 标志,确保镜像流跟踪外部 registry 的最新版本。
流程
输入以下命令将镜像流设置为定期更新清单列表:
oc import-image <multiarch-image-stream-tag> --from=<registry>/<project_name>/<image-name> \ --import-mode='PreserveOriginal' --scheduled=true
$ oc import-image <multiarch-image-stream-tag> --from=<registry>/<project_name>/<image-name> \ --import-mode='PreserveOriginal' --scheduled=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.8.2.2. 在导入清单列表时配置 SSL/TLS 复制链接链接已复制到粘贴板!
要控制来自外部存储库的清单列表的连接安全性和访问策略,请在镜像导入过程中配置 SSL/TLS 设置。要在导入清单列表时配置 SSL/TLS,如果需要,您可以使用- insecure 标志来绕过标准证书验证要求。
流程
set--
insecure=true,导入清单列表会跳过 SSL/TLS 验证。例如:oc import-image <multiarch-image-stream-tag> --from=<registry>/<project_name>/<image-name> \ --import-mode='PreserveOriginal' --insecure=true
$ oc import-image <multiarch-image-stream-tag> --from=<registry>/<project_name>/<image-name> \ --import-mode='PreserveOriginal' --insecure=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.8.3. 为 --import-mode 指定架构 复制链接链接已复制到粘贴板!
要控制导入的镜像的架构并确保正确部署,请使用 --import-mode= 标志。您可以根据需要,通过排除或包含- import-mode= 标志来在多架构和单一架构之间交换导入的镜像流。
流程
运行以下命令,通过排除
--import-mode=标志,将镜像流从多架构更新至单一架构:oc import-image <multiarch-image-stream-tag> --from=<registry>/<project_name>/<image-name>
$ oc import-image <multiarch-image-stream-tag> --from=<registry>/<project_name>/<image-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,将镜像流从单架构更新至多架构:
oc import-image <multiarch_image_stream_tag> --from=<registry>/<project_name>/<image_name> \ --import-mode='PreserveOriginal'
$ oc import-image <multiarch_image_stream_tag> --from=<registry>/<project_name>/<image_name> \ --import-mode='PreserveOriginal'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.8.4. --import-mode 的配置字段 复制链接链接已复制到粘贴板!
要使用- import-mode 标志实施多架构镜像管理,请参考必要的配置字段。这些字段定义用于选择和将特定清单导入到 OpenShift Container Platform 集群的精确参数。
下表描述了 --import-mode= 标志可用的选项:
| 参数 | 描述 |
|---|---|
| Legacy |
|
| PreserveOriginal | 指定后,会保留原始清单。对于清单列表,将导入清单列表及其所有子清单。 |