3.2. 为 Red Hat OpenShift 创建带有 mirror registry 的 mirror registry
mirror registry for Red Hat OpenShift 是一个小型灵活的容器 registry,作为目标,用于为断开连接的安装镜像(mirror)的 OpenShift Container Platform 所需的容器镜像。
如果您已有容器镜像 registry(如 Red Hat Quay),您可以跳过本节并直接 镜像 OpenShift Container Platform 镜像存储库。
3.2.1. 先决条件
- OpenShift Container Platform 订阅。
- 安装了 Podman 3.3 和 OpenSSL 的 Red Hat Enterprise Linux (RHEL) 8 和 9。
- Red Hat Quay 服务的完全限定域名,它必须通过 DNS 服务器解析。
- 目标主机上的基于密钥的 SSH 连接。为本地安装自动生成 SSH 密钥。对于远程主机,您必须生成自己的 SSH 密钥。
- 2 个或更多 vCPU。
- 8 GB RAM。
OpenShift Container Platform 4.10 发行镜像大约需要 12 GB;OpenShift Container Platform 4.10 发行镜像和 OpenShift Container Platform 4.10 Red Hat Operator 镜像大约需要 358 GB。每个流推荐具有 1 TB 或更多空间。
重要这些要求基于本地测试结果,且只测试了发行镜像和 Operator 镜像。存储要求可能会因您的组织的需求而有所不同。例如,当镜像了多个 z-streams 时,则可能需要更多空间。您可以使用标准 Red Hat Quay 功能 或适当的 API 调用来删除不必要的镜像并释放空间。
3.2.2. Red Hat OpenShift 简介的镜像(mirror)registry
对于断开连接的 OpenShift Container Platform 部署,需要一个容器 registry 来安装集群。要在这样的集群中运行 production-grade registry 服务,您必须创建一个单独的 registry 部署来安装第一个集群。mirror registry for Red Hat OpenShift 可以解决这个问题,它包括在每个 OpenShift 订阅中。它可用于从 OpenShift 控制台 Downloads页面下载。
mirror registry for Red Hat OpenShift 允许用户使用 mirror-registry
命令行界面(CLI)工具安装一个较小的 Red Hat Quay 版本及其所需的组件。mirror registry for Red Hat OpenShift 会自动部署,它带有预先配置的本地存储和一个本地的数据库。它还包括自动生成的用户凭证和访问权限,其中只有一个输入集,且不需要额外配置选项。
mirror registry for Red Hat OpenShift 提供了一个预先确定的网络配置,并在成功时报告部署的组件凭证并访问 URL。另外还提供了一组有限的可选配置输入,如完全限定域名(FQDN)服务、超级用户名称和密码,以及自定义 TLS 证书。这为用户提供了一个容器 registry,以便在受限网络环境中运行 OpenShift Container Platform 时,轻松创建所有 OpenShift Container Platform 发行版本内容的离线镜像。
mirror registry for Red Hat OpenShift 仅限于托管安装断开连接的 OpenShift Container Platform 集群(如发行镜像或 Red Hat Operator 镜像)所需的镜像。它使用 Red Hat Enterprise Linux(RHEL)机器上的本地存储,而 RHEL 支持的存储也被 mirror registry for Red Hat OpenShift 支持。由客户创建的内容不应由 mirror registry for Red Hat OpenShift 托管。
与 Red Hat Quay 不同,mirror registry for Red Hat OpenShift 并不是一个高度可用的 registry,且只支持本地文件系统存储。对于多个集群的环境,不推荐使用 mirror registry for Red Hat OpenShift,因为有多个集群可以在更新集群时会存在单点故障。建议利用 mirror registry for Red Hat OpenShift 安装一个集群,通过这个集群托管一个生产环境级别的、具有高可用性的 registry(如 Red Hat Quay)的集群,用于为其他集群提供 OpenShift Container Platform 内容。
如果在安装环境中已有另一个容器 registry,则使用 mirror registry for Red Hat OpenShift 是可选的。
3.2.3. 使用 Red Hat OpenShift 的镜像 registry 在本地主机上镜像(mirror)
此流程解释了如何使用 mirror-registry
安装程序工具在本地主机上安装 mirror registry for Red Hat OpenShift。这样,用户可以创建在端口 443 上运行的本地主机 registry,以存储 OpenShift Container Platform 镜像的镜像。
使用 mirror-registry
CLI 工具安装 mirror registry for Red Hat OpenShift 对您的系统会有一些变化。安装后,会创建一个 $HOME/quay-install
目录,其中包含安装文件、本地存储和配置捆绑包。如果部署目标是本地主机,则生成可信 SSH 密钥,并且设置主机计算机上的 systemd 文件,以确保容器运行时持久。另外,会创建一个名为 init
的初始用户,并自动生成的密码。所有访问凭证都会在安装例程的末尾打印。
流程
-
从 OpenShift console Downloads 页下载最新版本的 mirror registry for Red Hat OpenShift 的
mirror-registry.tar.gz
软件包。 使用
mirror-registry
工具,在本地主机上安装 mirror registry for Red Hat OpenShift。有关可用标志的完整列表,请参阅 "mirror registry for Red Hat OpenShift flags"。$ ./mirror-registry install \ --quayHostname <host_example_com> \ --quayRoot <example_directory_name>
运行以下命令,使用安装期间生成的用户名和密码登录 registry:
$ podman login -u init \ -p <password> \ <host_example_com>:8443> \ --tls-verify=false 1
- 1
- 您可以通过将您的系统配置为信任生成的 rootCA 证书来避免运行
--tls-verify=false
。如需更多信息,请参阅"使用 SSL 保护到 Red Hat Quay 的连接"和"配置系统以信任证书认证机构"。
注意您还可以在安装后通过
https://<host.example.com>:8443
访问 UI 登录。您可以在登录后镜像 OpenShift Container Platform 镜像。根据您的需要,请参阅本文档的"镜像 OpenShift Container Platform 镜像存储库"或"镜像 Operator 目录"部分以用于此文档。
注意如果因为存储层问题导致 Red Hat OpenShift 镜像存储了镜像 registry 存在问题,您可以在更稳定的存储上对 OpenShift Container Platform 镜像重新镜像(mirror)或重新安装 registry。
3.2.4. 从一个本地主机为 Red Hat OpenShift 更新 mirror registry
此流程解释了如何使用 upgrade
命令从本地主机更新 Red Hat OpenShift 的镜像 registry。更新至最新版本可确保新的功能、错误修复和安全漏洞修复。
更新时,镜像 registry 会发生间歇性停机时间,因为它在更新过程中重启。
先决条件
- 您已在本地主机上安装了 Red Hat OpenShift 的镜像 registry。
流程
如果要将 mirror registry for Red Hat OpenShift 从 1.2.z 升级到 1.3.0,您的安装目录默认为
/etc/quay-install
,您可以输入以下命令:$ sudo ./mirror-registry upgrade -v
注意-
mirror registry for Red Hat OpenShift 将 Quay 的 Podman 卷、Postgres 数据和
/etc/quay-install
数据迁移到新的$HOME/quay-install
位置。这可让让您在以后的升级过程中,在没有--quayRoot
标志的情况下,使用 mirror registry for Red Hat OpenShift。 -
在使用
./mirror-registry upgrade -v
标记升级 mirror registry for Red Hat OpenShift 时需要包括在创建 mirror registry 时使用的相同的凭证。例如,如果使用--quayHostname <host_example_com>
和--quayRoot <example_directory_name>
安装 Red Hat OpenShift 镜像 registry,则必须包括该字符串来正确地升级镜像 registry。
-
mirror registry for Red Hat OpenShift 将 Quay 的 Podman 卷、Postgres 数据和
如果您要将 mirror registry for Red Hat OpenShift 从 1.2.z 升级到 1.3.0,且您在 1.2.z 部署中使用了指定目录,则必须传递新的
--pgStorage' 和 '--quayStorage
标志。例如:$ sudo ./mirror-registry upgrade --quayHostname <host_example_com> --quayRoot <example_directory_name> --pgStorage <example_directory_name>/pg-data --quayStorage <example_directory_name>/quay-storage -v
3.2.5. 使用 Red Hat OpenShift 的镜像 registry 在远程主机上镜像(mirror)
此流程解释了如何使用 mirror-registry
工具在远程主机上安装 mirror registry for Red Hat OpenShift。这样,用户可以创建 registry 来保存 OpenShift Container Platform 镜像的镜像。
使用 mirror-registry
CLI 工具安装 mirror registry for Red Hat OpenShift 对您的系统会有一些变化。安装后,会创建一个 $HOME/quay-install
目录,其中包含安装文件、本地存储和配置捆绑包。如果部署目标是本地主机,则生成可信 SSH 密钥,并且设置主机计算机上的 systemd 文件,以确保容器运行时持久。另外,会创建一个名为 init
的初始用户,并自动生成的密码。所有访问凭证都会在安装例程的末尾打印。
流程
-
从 OpenShift console Downloads 页下载最新版本的 mirror registry for Red Hat OpenShift 的
mirror-registry.tar.gz
软件包。 使用
mirror-registry
工具,在本地主机上安装 mirror registry for Red Hat OpenShift。有关可用标志的完整列表,请参阅 "mirror registry for Red Hat OpenShift flags"。$ ./mirror-registry install -v \ --targetHostname <host_example_com> \ --targetUsername <example_user> \ -k ~/.ssh/my_ssh_key \ --quayHostname <host_example_com> \ --quayRoot <example_directory_name>
运行以下命令,使用安装期间生成的用户名和密码登录 到镜像的 registry:
$ podman login -u init \ -p <password> \ <host_example_com>:8443> \ --tls-verify=false 1
- 1
- 您可以通过将您的系统配置为信任生成的 rootCA 证书来避免运行
--tls-verify=false
。如需更多信息,请参阅"使用 SSL 保护到 Red Hat Quay 的连接"和"配置系统以信任证书认证机构"。
注意您还可以在安装后通过
https://<host.example.com>:8443
访问 UI 登录。您可以在登录后镜像 OpenShift Container Platform 镜像。根据您的需要,请参阅本文档的"镜像 OpenShift Container Platform 镜像存储库"或"镜像 Operator 目录"部分以用于此文档。
注意如果因为存储层问题导致 Red Hat OpenShift 镜像存储了镜像 registry 存在问题,您可以在更稳定的存储上对 OpenShift Container Platform 镜像重新镜像(mirror)或重新安装 registry。
3.2.6. 从一个远程主机为 Red Hat OpenShift 更新 mirror registry
此流程解释了如何使用 upgrade
命令从远程主机更新 Red Hat OpenShift 的镜像 registry。更新至最新版本可确保程序错误修复和安全漏洞。
更新时,镜像 registry 会发生间歇性停机时间,因为它在更新过程中重启。
先决条件
- 您已在远程主机上安装了 Red Hat OpenShift 的镜像 registry。
流程
要从远程主机升级 Red Hat OpenShift 的镜像 registry,请输入以下命令:
$ ./mirror-registry upgrade -v --targetHostname <remote_host_url> --targetUsername <user_name> -k ~/.ssh/my_ssh_key
注意在使用
./mirror-registry upgrade -v
标记升级 mirror registry for Red Hat OpenShift 时需要包括在创建 mirror registry 时使用的相同的凭证。例如,如果使用--quayHostname <host_example_com>
和--quayRoot <example_directory_name>
安装 Red Hat OpenShift 镜像 registry,则必须包括该字符串来正确地升级镜像 registry。
3.2.7. 为 Red Hat OpenShift 卸载镜像 registry
您可以运行以下命令来从本地主机中卸载 mirror registry for Red Hat OpenShift:
$ ./mirror-registry uninstall -v \ --quayRoot <example_directory_name>
注意-
删除 mirror registry for Red Hat OpenShift 会在删除前提示用户。您可以使用
--autoApprove
来跳过此提示。 -
如果使用
--quayRoot
标志安装了 mirror registry for Red Hat OpenShift,则卸载时也需要使用--quayRoot
标志。例如,如果使用--quayRoot example_directory_name
安装了 mirror registry for Red Hat OpenShift,则在卸载镜像 registry 时也需要包括这个字符串才能正确卸载。
-
删除 mirror registry for Red Hat OpenShift 会在删除前提示用户。您可以使用
3.2.8. Mirror registry for Red Hat OpenShift 标记
以下标记可用于 mirror registry for Red Hat OpenShift :
标记 | 描述 |
---|---|
|
禁用交互式提示的布尔值。如果设置为 |
| 在 Quay 安装过程中创建的 init 用户的密码。必须至少包含八个字符,且不包含空格。 |
|
显示初始用户的用户名。若未指定,则默认为 |
| 允许用户禁用颜色序列,在运行安装、卸载和升级命令时将其传播到 Ansible。 |
|
保存 Postgres 持久性存储数据的文件夹。默认为 |
|
客户端用来联系 registry 的镜像 registry 的完全限定域名。等同于 Quay |
|
保存 Quay 持久性存储数据的文件夹。默认为 |
|
保存容器镜像层和配置数据的目录,包括 |
|
SSH 身份密钥的路径。如果未指定,则默认为 |
|
SSL/TLS 公钥/证书的路径。默认为 |
|
跳过对 |
|
用于 HTTPS 通信的 SSL/TLS 私钥路径。默认为 |
|
要安装 Quay 的目标的主机名。默认为 |
|
目标主机上的用户,将用于 SSH。默认为 |
| 显示调试日志和 Ansible playbook 输出。 |
| 显示 mirror registry for Red Hat OpenShift 的版本。 |
-
如果您的系统的公共 DNS 名称与本地主机名不同,则必须修改
--quayHostname
。另外,--quayHostname
标志不支持使用 IP 地址的安装。需要使用主机名进行安装。 -
当镜像 registry 在代理后面设置时,会使用
--sslCheckSkip
,并且公开的主机名与内部 Quay 主机名不同。当用户不希望在安装过程中对提供的 Quay 主机名验证证书时,也可以使用它。
3.2.9. Mirror registry for Red Hat OpenShift 发现注记
mirror registry for Red Hat OpenShift 是一个小型灵活的容器 registry,作为目标,用于为断开连接的安装镜像(mirror)的 OpenShift Container Platform 所需的容器镜像。
本发行注记介绍了 OpenShift Container Platform 的 mirror registry for Red Hat OpenShift。
如需了解 mirror registry for Red Hat OpenShift,请参阅 Creating a mirror registry with mirror registry for Red Hat OpenShift。
3.2.9.1. Mirror registry for Red Hat OpenShift 1.3.8
发布日期:2023 年 8 月 16 日
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.8.11 中。
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.2. Mirror registry for Red Hat OpenShift 1.3.7
发布日期:2023 年 7 月 19 日
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.8.10 中。
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.3. Mirror registry for Red Hat OpenShift 1.3.6
发布日期:2023 年 5 月 30 日
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.8.8 中。
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.4. Mirror registry for Red Hat OpenShift 1.3.5
发布日期:2023 年 5 月 18 日
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.8.7 中。
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.5. Mirror registry for Red Hat OpenShift 1.3.4
发布日期:2023 年 4 月 25 日
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.8.6 中。
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.6. Mirror registry for Red Hat OpenShift 1.3.3
发布日期:2023 年 4 月 5 日
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.8.5 中。
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.7. Mirror registry for Red Hat OpenShift 1.3.2
发布日期:2023 年 3 月 21 日
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.8.4 中。
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.8. Mirror registry for Red Hat OpenShift 1.3.1
发布日期:2023 年 3 月 7 日
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.8.3 中。
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.9. Mirror registry for Red Hat OpenShift 1.3.0
发布日期:2023 年 2 月 20 日
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.8.1 中。
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.9.1. 新功能
- Mirror registry for Red Hat OpenShift 现在支持在 Red Hat Enterprise Linux (RHEL) 9 安装中。
现在,mirror registry for Red Hat OpenShift 本地主机安装提供了 IPv6 支持。
目前, mirror registry for Red Hat OpenShift 远程主机安装不支持 IPv6。
-
添加了新功能标志
--quayStorage
。使用这个标志,具有 root 特权的用户可以手动设置其 Quay 持久性存储的位置。 -
添加了新功能标志
--pgStorage
。使用这个标志,具有 root 特权的用户可以手动设置其 Postgres 持久性存储的位置。 在以前的版本中,用户需要具有 root 权限 (
sudo
) 才能安装 mirror registry for Red Hat OpenShift。在这个版本中,安装 mirror registry for Red Hat OpenShift 不再需要sudo
。当使用
sudo
安装 mirror registry for Red Hat OpenShift 时,会创建一个包含安装文件、本地存储和配置捆绑包的/etc/quay-install
目录。移除对sudo
的要求后,安装文件和配置捆绑包现在安装到$HOME/quay-install
中。本地存储(如 Postgres 和 Quay)现在由 Podman 自动创建的命名卷中。要覆盖存储这些文件的默认目录,您可以为 mirror registry for Red Hat OpenShift 使用命令行参数。如需有关 mirror registry for Red Hat OpenShift 命令行参数的更多信息,请参阅"Mirror registry for Red Hat OpenShift 标志"。
3.2.9.9.2. 程序错误修复
-
在以前的版本中,当试图卸载 mirror registry for Red Hat OpenShift 时会返回以下错误:
["Error: no container with name or ID \"quay-postgres\" found: no such container"], "stdout": "", "stdout_lines": []*
。在这个版本中,mirror registry for Red Hat OpenShift 服务的停止和卸载的顺序有所变化,因此在卸载 mirror registry for Red Hat OpenShift 时不再发生错误。如需更多信息,请参阅 PROJQUAY-4629。
3.2.9.10. Mirror registry for Red Hat OpenShift 1.2.9
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.7.10 中。
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.11. Mirror registry for Red Hat OpenShift 1.2.8
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.7.9 中。
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.12. Mirror registry for Red Hat OpenShift 1.2.7
限制,Red Hat Quay 3.7.8 提供了 Mirror registry for Red Hat OpenShift。
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.12.1. 程序错误修复
-
在以前的版本中,
getFQDN()
依赖于完全限定域名 (FQDN) 库来确定其 FQDN,FQDN 库会尝试直接读取/etc/hosts
文件夹。因此,在一些带有不常见的 DNS 配置的 Red Hat Enterprise Linux CoreOS (RHCOS) 安装中,FQDN 库将无法安装并导致安装过程被终止。在这个版本中,mirror registry for Red Hat OpenShift 使用hostname
来决定 FQDN。因此,FQDN 库不会导致安装被中止。(PROJQUAY-4139)
3.2.9.13. Mirror registry for Red Hat OpenShift 1.2.6
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.7.7 中。
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.13.1. 新功能
添加了新功能标志 --no-color
(-c
)。通过此功能标志,用户可以禁用颜色序列,在运行安装、卸载和升级命令时将其传播到 Ansible。
3.2.9.14. Mirror registry for Red Hat OpenShift 1.2.5
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.7.6 中。
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.15. Mirror registry for Red Hat OpenShift 1.2.4
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.7.5 中。
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.16. Mirror registry for Red Hat OpenShift 1.2.3
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.7.4 中。
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.17. Mirror registry for Red Hat OpenShift 1.2.2
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.7.3 中。
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.18. Mirror registry for Red Hat OpenShift 1.2.1
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.7.2 中。
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.19. Mirror registry for Red Hat OpenShift 1.2.0
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.7.1 中。
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.19.1. 程序错误修复
-
在以前的版本中,在 Quay pod Operator 内运行的所有组件和 worker 都被设置为
DEBUG
。因此,在创建大量流量日志时使用了不必要的空间。在这个版本中,日志级别被设置为WARN
,这可减少流量信息,同时突出了问题的情况。(PROJQUAY-3504)
3.2.9.20. Mirror registry for Red Hat OpenShift 1.1.0
以下公告适用于 mirror registry for Red Hat OpenShift:
3.2.9.20.1. 新功能
添加了一个新的命令
mirror-registry upgrade
。此命令升级所有容器镜像,而不会干扰配置或数据。注意如果
quayRoot
之前设为默认值以外的内容,则必须将其传递到 upgrade 命令。
3.2.9.20.2. 程序错误修复
-
在以前的版本中,没有
quayHostname
或targetHostname
默认为本地主机名。在这个版本中,如果缺少quayHostname
和targetHostname
,则将其默认为本地主机名。(PROJQUAY-3079) -
在以前的版本中,命令
./mirror-registry --version
返回一个unknown flag
错误。现在,运行./mirror-registry --version
会返回 mirror registry for Red Hat OpenShift 的当前版本。(PROJQUAY-3086) -
在以前的版本中,用户无法在安装过程中设置密码,例如在运行
./mirror-registry install --initUser <user_name> --initPassword <password> --verbose
时。在这个版本中,用户可以在安装过程中设置密码。(PROJQUAY-3149) - 在以前的版本中,如果已销毁,则 mirror registry for Red Hat OpenShift 不会重新创建 pod。现在,如果 pod 被销毁,则会重新创建 pod。(PROJQUAY-3261)
3.2.10. Mirror registry for Red Hat OpenShift 故障排除
为了更好地对 mirror registry for Red Hat OpenShift 进行故障排除,您可以收集由镜像 registry 安装的 systemd 服务的日志。安装以下服务:
- quay-app.service
- quay-postgres.service
- quay-redis.service
- quay-pod.service
先决条件
- 您已安装了 mirror registry for Red Hat OpenShift。
流程
如果使用 root 权限安装 mirror registry for Red Hat OpenShift,您可以输入以下命令获取其 systemd 服务的状态信息:
$ sudo systemctl status <service>
如果作为标准用户安装 mirror registry for Red Hat OpenShift,您可以输入以下命令获取其 systemd 服务的状态信息:
$ systemctl --user status <service>