2.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 镜像存储库。
2.2.1. 先决条件
- OpenShift Container Platform 订阅。
- 安装了 Podman 3.4.2 或更高版本以及 OpenSSL 的 Red Hat Enterprise Linux (RHEL) 8 和 9。
- Red Hat Quay 服务的完全限定域名,它必须通过 DNS 服务器解析。
- 目标主机上的基于密钥的 SSH 连接。为本地安装自动生成 SSH 密钥。对于远程主机,您必须生成自己的 SSH 密钥。
- 2 个或更多 vCPU。
- 8 GB RAM。
OpenShift Container Platform 4.16 发行镜像大约需要 12 GB;OpenShift Container Platform 4.16 发行镜像和 OpenShift Container Platform 4.16 Red Hat Operator 镜像大约需要 358 GB。每个流推荐具有 1 TB 或更多空间。
重要这些要求基于本地测试结果,且只测试了发行镜像和 Operator 镜像。存储要求可能会因您的组织的需求而有所不同。例如,当镜像了多个 z-streams 时,则可能需要更多空间。您可以使用标准 Red Hat Quay 功能 或适当的 API 调用来删除不必要的镜像并释放空间。
2.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 发行版本内容的离线镜像。
如果在安装环境中已有另一个容器 registry,则使用 mirror registry for Red Hat OpenShift 是可选的。
2.2.2.1. Mirror registry for Red Hat OpenShift 限制
以下限制适用于 mirror registry for Red Hat OpenShift :
- mirror registry for Red Hat OpenShift 并不是一个高度可用的 registry,且只支持本地文件系统存储。它并不适用于 OpenShift Container Platform 替换 Red Hat Quay 或内部镜像 registry。
- mirror registry for Red Hat OpenShift 的目的并不是替代 Red Hat Quay 的生产环境部署。
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 的垃圾回收功能来缓解潜在的问题。有关此功能的更多信息,请参阅"Red Hat Quay 垃圾回收"。
- 对推送到 mirror registry for bootstrap 的红帽产品镜像的支持会被每个相应产品的有效订阅涵盖。进一步启用 bootstrap 体验的例外列表可在 自助管理的 Red Hat OpenShift 大小和订阅指南 中找到。
- 由客户创建的内容不应由 mirror registry for Red Hat OpenShift 托管。
- 不建议将 mirror registry for Red Hat OpenShift 与多个集群一起使用,因为多个集群可以在更新集群时造成单点故障。建议利用 mirror registry for Red Hat OpenShift 安装一个集群,通过这个集群托管一个生产环境级别的、具有高可用性的 registry(如 Red Hat Quay)的集群,用于为其他集群提供 OpenShift Container Platform 内容。
2.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。
2.2.4. 从一个本地主机为 Red Hat OpenShift 更新 mirror registry
此流程解释了如何使用 upgrade
命令从本地主机更新 Red Hat OpenShift 的镜像 registry。更新至最新版本可确保新的功能、错误修复和安全漏洞修复。
当从版本 1 升级到版本 2 时,请注意以下限制:
-
worker 数量被设置为
1
,因为 SQLite 中不允许多个写入。 - 您不能将 mirror registry 用于 Red Hat OpenShift 用户界面(UP)。
-
不要在升级过程中访问
sqlite-storage
Podman 卷。 - 镜像 registry 会出现间歇性停机时间,因为它会在升级过程中重启。
-
PostgreSQL 数据在
/$HOME/quay-instal/quay-postgres-backup/
目录下备份,以进行恢复。
先决条件
- 您已在本地主机上安装了 Red Hat OpenShift 的镜像 registry。
流程
如果您要将 mirror registry for Red Hat OpenShift 从 1.3
2.y 升级,且您的安装目录默认为 /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.3
2.y 升级,且您在 1.y 部署中使用自定义 quay 配置和存储目录,则必须传递-- quayRoot
和-quayStorage
标志。例如:$ sudo ./mirror-registry upgrade --quayHostname <host_example_com> --quayRoot <example_directory_name> --quayStorage <example_directory_name>/quay-storage -v
如果您要从 1.3
2.y 升级 mirror registry for Red Hat OpenShift,并希望指定自定义 SQLite 存储路径,您必须传递-- sqliteStorage
标志,例如:$ sudo ./mirror-registry upgrade --sqliteStorage <example_directory_name>/sqlite-storage -v
2.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。
2.2.6. 从一个远程主机为 Red Hat OpenShift 更新 mirror registry
此流程解释了如何使用 upgrade
命令从远程主机更新 Red Hat OpenShift 的镜像 registry。更新至最新版本可确保程序错误修复和安全漏洞。
当从版本 1 升级到版本 2 时,请注意以下限制:
-
worker 数量被设置为
1
,因为 SQLite 中不允许多个写入。 - 您不能将 mirror registry 用于 Red Hat OpenShift 用户界面(UP)。
-
不要在升级过程中访问
sqlite-storage
Podman 卷。 - 镜像 registry 会出现间歇性停机时间,因为它会在升级过程中重启。
-
PostgreSQL 数据在
/$HOME/quay-instal/quay-postgres-backup/
目录下备份,以进行恢复。
先决条件
- 您已在远程主机上安装了 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。如果您要从 1.3
2.y 升级 mirror registry for Red Hat OpenShift,并希望指定自定义 SQLite 存储路径,您必须传递-- sqliteStorage
标志,例如:$ ./mirror-registry upgrade -v --targetHostname <remote_host_url> --targetUsername <user_name> -k ~/.ssh/my_ssh_key --sqliteStorage <example_directory_name>/quay-storage
2.2.7. 替换 mirror registry for Red Hat OpenShift SSL/TLS 证书
在某些情况下,您可能想要为 mirror registry for Red Hat OpenShift 更新 SSL/TLS 证书。这在以下情况中很有用:
- 如果您需要替换当前的 mirror registry for Red Hat OpenShift 证书。
- 如果您使用与之前 mirror registry for Red Hat OpenShift 安装相同的证书。
- 如果您希望定期更新 mirror registry for Red Hat OpenShift 证书。
使用以下步骤替换 mirror registry for Red Hat OpenShift SSL/TLS 证书。
先决条件
-
您已从 OpenShift 控制台 Downloads 页面下载
./mirror-registry
二进制文件。
流程
输入以下命令安装 mirror registry for Red Hat OpenShift:
$ ./mirror-registry install \ --quayHostname <host_example_com> \ --quayRoot <example_directory_name>
这会将 mirror registry for Red Hat OpenShift 安装到
$HOME/quay-install
目录中。-
准备一个新的证书颁发机构(CA)捆绑包,并生成新的
ssl.key
和ssl.crt
密钥文件。如需更多信息,请参阅使用 SSL/TLS 保护到 Red Hat Quay 的连接。 输入以下命令为
/$HOME/quay-install
分配一个环境变量,如QUAY
:$ export QUAY=/$HOME/quay-install
输入以下命令将新的
ssl.crt
文件复制到/$HOME/quay-install
目录中:$ cp ~/ssl.crt $QUAY/quay-config
输入以下命令将新的
ssl.key
文件复制到/$HOME/quay-install
目录中:$ cp ~/ssl.key $QUAY/quay-config
输入以下命令重启
quay-app
应用程序 pod:$ systemctl restart quay-app
2.2.8. 为 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 会在删除前提示用户。您可以使用
2.2.9. Mirror registry for Red Hat OpenShift 标记
以下标记可用于 mirror registry for Red Hat OpenShift :
标记 | 描述 |
---|---|
|
禁用交互式提示的布尔值。如果设置为 |
| 在 Quay 安装过程中创建的 init 用户的密码。必须至少包含八个字符,且不包含空格。 |
|
显示初始用户的用户名。若未指定,则默认为 |
| 允许用户禁用颜色序列,在运行安装、卸载和升级命令时将其传播到 Ansible。 |
|
客户端用来联系 registry 的镜像 registry 的完全限定域名。等同于 Quay |
|
保存 Quay 持久性存储数据的文件夹。默认为 |
|
保存容器镜像层和配置数据的目录,包括 |
|
保存 SQLite 数据库数据的文件夹。如果没有指定,则默认为 |
|
SSH 身份密钥的路径。如果未指定,则默认为 |
|
SSL/TLS 公钥/证书的路径。默认为 |
|
跳过对 |
|
用于 HTTPS 通信的 SSL/TLS 私钥路径。默认为 |
|
要安装 Quay 的目标的主机名。默认为 |
|
目标主机上的用户,将用于 SSH。默认为 |
| 显示调试日志和 Ansible playbook 输出。 |
| 显示 mirror registry for Red Hat OpenShift 的版本。 |
-
如果您的系统的公共 DNS 名称与本地主机名不同,则必须修改
--quayHostname
。另外,--quayHostname
标志不支持使用 IP 地址的安装。需要使用主机名进行安装。 -
当镜像 registry 在代理后面设置时,会使用
--sslCheckSkip
,并且公开的主机名与内部 Quay 主机名不同。当用户不希望在安装过程中对提供的 Quay 主机名验证证书时,也可以使用它。
2.2.10. Mirror registry for Red Hat OpenShift 发行注记
mirror registry for Red Hat OpenShift 是一个小型、简化的容器 registry,可用于为断开连接的安装镜像 OpenShift Container Platform 所需的容器镜像。
本发行注记介绍了 OpenShift Container Platform 中 mirror registry for Red Hat OpenShift 的开发。
2.2.10.1. Mirror registry for Red Hat OpenShift 2.0 发行注记
以下小节详细介绍了 mirror registry for Red Hat OpenShift 的每个 2.0 发行版本
2.2.10.1.1. Mirror registry for Red Hat OpenShift 2.0.1
发布日期:24 年 9 月 26 日
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.12.1 中。
以下公告可用于 Red Hat OpenShift 的镜像 registry :
2.2.10.1.2. Mirror registry for Red Hat OpenShift 2.0.0
发布日期: 2024 年 9 月 3 日
Mirror registry for Red Hat OpenShift 现在包括在 Red Hat Quay 3.12.0 中。
以下公告可用于 Red Hat OpenShift 的镜像 registry :
2.2.10.1.2.1. 新功能
随着 Red Hat OpenShift 的镜像 registry 的发布,内部数据库已从 PostgreSQL 升级到 SQLite。因此,数据现在默认存储在
sqlite-storage
Podman 卷中,整个 tarball 大小会减少 300 MB。新的安装默认使用 SQLite。在升级到 2.0 之前,请参阅"根据您的环境,"从本地主机更新 mirror registry for Red Hat OpenShift"或"从远程主机更新 mirror registry for Red Hat OpenShift"。
-
添加了新功能标志
--sqliteStorage
。使用这个标志,您可以手动设置保存 SQLite 数据库数据的位置。
2.2.10.2. Mirror registry for Red Hat OpenShift 1.3 发行注记
要查看 mirror registry for Red Hat OpenShift 1.3 发行注记,请参阅 Mirror registry for Red Hat OpenShift 1.3 发行注记。
2.2.10.3. Mirror registry for Red Hat OpenShift 1.2 发行注记
要查看 mirror registry for Red Hat OpenShift 1.2 发行注记,请参阅 Mirror registry for Red Hat OpenShift 1.2 发行注记。
2.2.10.4. Mirror registry for Red Hat OpenShift 1.1 发行注记
要查看 mirror registry for Red Hat OpenShift 1.1 发行注记,请参阅 Mirror registry for Red Hat OpenShift 1.1 发行注记。
2.2.11. 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>