7.5. 准备您的镜像主机
在使用 oc-mirror 插件镜像(mirror)前,您必须安装插件并创建容器镜像 registry 凭据文件,以允许从红帽镜像到您的镜像。
7.5.1. 安装 oc-mirror OpenShift CLI 插件 复制链接链接已复制到粘贴板!
安装 oc-mirror OpenShift CLI 插件以在断开连接的环境中管理镜像集。
先决条件
已安装 OpenShift CLI(
oc)。如果您在完全断开连接的环境中镜像镜像集,请确保以下内容:- 您已在可访问互联网的主机上安装了 oc-mirror 插件。
- 在断开连接的环境中的主机可以访问目标镜像 registry。
-
您已在使用 oc-mirror 的操作系统中,将
umask参数设置为0022。 - 您已为您要使用的 RHEL 版本安装了正确的二进制文件。
流程
下载 oc-mirror CLI 插件:
- 进入到 Red Hat Hybrid Cloud Console 的 Downloads 页。
- 在 OpenShift disconnected installation tools 部分中,从下拉菜单中选择 OpenShift Client (oc) mirror plugin 的OS type 和 Architecture type。
- 点 Download 保存文件。
运行以下命令来提取存档:
$ tar xvzf oc-mirror.tar.gz如有必要,运行以下命令来将插件文件更新为可执行:
$ chmod +x oc-mirror注意不要重命名
oc-mirror文件。运行以下命令,将文件放在
PATH中(如/usr/local/bin)来安装 oc-mirror CLI 插件:$ sudo mv oc-mirror /usr/local/bin/.
验证
运行以下命令验证 oc-mirror 插件 v1 是否已成功安装:
$ oc mirror help
7.5.2. 配置允许对容器镜像进行镜像的凭证 复制链接链接已复制到粘贴板!
创建容器镜像 registry 凭证文件,可让您将镜像从红帽 mirror 到您的镜像。在安装主机上完成以下步骤。
安装集群时不要使用此镜像 registry 凭据文件作为 pull secret。如果在安装集群时提供此文件,集群中的所有机器都将具有镜像 registry 的写入权限。
先决条件
- 您已将镜像 registry 配置为在断开连接的环境中使用。
- 您在镜像 registry 中标识了镜像仓库的位置,以将容器镜像镜像(mirror)到这个位置。
- 您置备了一个镜像 registry 帐户,允许将镜像上传到该镜像仓库。
- 对镜像 registry 有写权限。
流程
-
从 Red Hat OpenShift Cluster Manager 下载
registry.redhat.iopull secret。 运行以下命令,以 JSON 格式生成 pull secret 副本:
$ cat ./pull-secret | jq . > <path>/<pull_secret_file_in_json>指定到存储 pull secret 的目录的路径,以及您创建的 JSON 文件的名称。
pull secret 示例
{ "auths": { "cloud.openshift.com": { "auth": "b3BlbnNo...", "email": "you@example.com" }, "quay.io": { "auth": "b3BlbnNo...", "email": "you@example.com" }, "registry.connect.redhat.com": { "auth": "NTE3Njg5Nj...", "email": "you@example.com" }, "registry.redhat.io": { "auth": "NTE3Njg5Nj...", "email": "you@example.com" } } }将文件保存为
~/.docker/config.json或$XDG_RUNTIME_DIR/containers/auth.json:如果
.docker或$XDG_RUNTIME_DIR/containers目录不存在,请输入以下命令来创建:$ mkdir -p <directory_name>其中
<directory_name>是~/.docker或$XDG_RUNTIME_DIR/containers。输入以下命令将 pull secret 复制到适当的目录中:
$ cp <path>/<pull_secret_file_in_json> <directory_name>/<auth_file><directory_name>是~/.docker或$XDG_RUNTIME_DIR/containers;<auth_file>是config.json或auth.json
运行以下命令,为您的镜像 registry 生成 base64 编码的用户名和密码或令牌:
$ echo -n '<user_name>:<password>' | base64 -w0通过
<user_name>和<password>指定 registry 的用户名和密码。输出示例
BGVtbYk3ZHAtqXs=编辑 JSON 文件并添加描述 registry 的部分:
"auths": { "<mirror_registry>": { "auth": "<credentials>", "email": "you@example.com" } },-
对于
<mirror_registry>,指定 registry 域名,以及您的镜像 registry 用来提供内容的可选端口。例如:registry.example.com或registry.example.com:8443。 对于
<credentials>值,请指定 mirror registry 的 base64 编码用户名和密码。修改的 pull secret 示例
{ "auths": { "registry.example.com": { "auth": "BGVtbYk3ZHAtqXs=", "email": "you@example.com" }, "cloud.openshift.com": { "auth": "b3BlbnNo...", "email": "you@example.com" }, "quay.io": { "auth": "b3BlbnNo...", "email": "you@example.com" }, "registry.connect.redhat.com": { "auth": "NTE3Njg5Nj...", "email": "you@example.com" }, "registry.redhat.io": { "auth": "NTE3Njg5Nj...", "email": "you@example.com" } } }
-
对于