×

先决条件

  • 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.17 发行版镜像,大约需要 12 GB,或者对于 OpenShift Container Platform 4.17 发行版镜像和 OpenShift Container Platform 4.17 Red Hat Operator 镜像,大约需要 358 GB。建议每个流最多 1 TB 或更多。

    这些要求基于仅使用发行版镜像和 Operator 镜像的本地测试结果。存储需求可能会根据您组织的需求而有所不同。例如,当您镜像多个 z 流时,您可能需要更多空间。您可以使用标准的Red Hat Quay 功能或适当的API 调用来删除不需要的镜像并释放空间。

Red Hat OpenShift 镜像注册表简介

对于 OpenShift Container Platform 的脱机部署,需要一个容器注册表来执行集群的安装。要在这样的集群上运行生产级注册表服务,您必须创建一个单独的注册表部署来安装第一个集群。Red Hat OpenShift 镜像注册表解决了此需求,并包含在每个 OpenShift 订阅中。它可在OpenShift 控制台的**下载**页面上下载。

Red Hat OpenShift 镜像注册表允许用户使用mirror-registry命令行界面 (CLI) 工具安装 Red Hat Quay 及其所需组件的小型版本。Red Hat OpenShift 镜像注册表使用预配置的本地存储和本地数据库自动部署。它还包括自动生成的用户名凭据和访问权限,只需一组输入即可,无需其他配置选项即可开始使用。

Red Hat OpenShift 镜像注册表提供预定的网络配置,并在成功后报告已部署组件的凭据和访问 URL。还提供了一组有限的可选配置输入,例如完全限定域名 (FQDN) 服务、超级用户名称和密码以及自定义 TLS 证书。这为用户提供了一个容器注册表,以便他们在受限网络环境中运行 OpenShift Container Platform 时可以轻松创建所有 OpenShift Container Platform 发行版内容的脱机镜像。

如果安装环境中已存在其他容器注册表,则Red Hat OpenShift镜像注册表的使用是可选的。

Red Hat OpenShift镜像注册表的限制

以下限制适用于Red Hat OpenShift镜像注册表

  • Red Hat OpenShift镜像注册表不是高可用性注册表,仅支持本地文件系统存储。它并非旨在替代Red Hat Quay或OpenShift Container Platform的内部镜像注册表。

  • Red Hat OpenShift镜像注册表并非旨在替代Red Hat Quay的生产部署。

  • Red Hat OpenShift镜像注册表仅支持托管安装断开连接的OpenShift Container Platform集群所需的镜像,例如发行版镜像或Red Hat Operator镜像。它使用Red Hat Enterprise Linux (RHEL)机器上的本地存储,RHEL支持的存储也受Red Hat OpenShift镜像注册表支持。

    由于Red Hat OpenShift镜像注册表使用本地存储,因此您应注意镜像镜像时消耗的存储使用情况,并使用Red Hat Quay的垃圾回收功能来减轻潜在问题。有关此功能的更多信息,请参见“Red Hat Quay垃圾回收”。

  • 对于出于引导目的而推送到Red Hat OpenShift镜像注册表的Red Hat产品镜像的支持,涵盖了每个相应产品的有效订阅。可在Red Hat OpenShift自管理规模和订阅指南中找到进一步启用引导体验的例外情况列表。

  • 客户构建的内容不应由Red Hat OpenShift镜像注册表托管。

  • 不建议将Red Hat OpenShift镜像注册表与多个集群一起使用,因为多个集群在更新集群群时可能会创建一个单点故障。建议利用Red Hat OpenShift镜像注册表来安装可以托管生产级高可用性注册表(例如Red Hat Quay)的集群,该注册表可以为其他集群提供OpenShift Container Platform内容。

使用Red Hat OpenShift镜像注册表在本地主机上镜像

此过程说明如何使用mirror-registry安装程序工具在本地主机上安装Red Hat OpenShift镜像注册表。通过这样做,用户可以创建一个在端口443上运行的本地主机注册表,用于存储OpenShift Container Platform镜像的镜像。

使用mirror-registry CLI工具安装Red Hat OpenShift镜像注册表会对您的机器进行一些更改。安装后,将创建一个$HOME/quay-install目录,其中包含安装文件、本地存储和配置包。如果部署目标是本地主机,则会生成受信任的SSH密钥,并设置主机机器上的systemd文件以确保容器运行时持久存在。此外,将创建一个名为init的初始用户,并使用自动生成的密码。所有访问凭据都将在安装例程结束时打印。

步骤
  1. OpenShift控制台**下载**页面下载Red Hat OpenShift镜像注册表最新版本的mirror-registry.tar.gz软件包。

  2. 使用mirror-registry工具,使用您当前的用户帐户在本地主机上安装Red Hat OpenShift镜像注册表。有关可用标志的完整列表,请参见“Red Hat OpenShift镜像注册表标志”。

    $ ./mirror-registry install \
      --quayHostname <host_example_com> \
      --quayRoot <example_directory_name>
  3. 使用安装过程中生成的用户名和密码登录注册表,运行以下命令:

    $ 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登录。

  4. 登录后,您可以镜像OpenShift Container Platform镜像。根据您的需求,请参阅本文档的“镜像OpenShift Container Platform镜像存储库”或“镜像与断开连接的集群一起使用的Operator目录”部分。

    如果由于存储层问题而导致Red Hat OpenShift镜像注册表存储的镜像出现问题,您可以重新镜像OpenShift Container Platform镜像,或在更稳定的存储上重新安装镜像注册表。

从本地主机更新Red Hat OpenShift镜像注册表

此过程说明如何使用upgrade命令从本地主机更新Red Hat OpenShift镜像注册表。更新到最新版本可确保获得新功能、错误修复和安全漏洞修复。

从版本1升级到版本2时,请注意以下约束条件:

  • 工作程序计数设置为1,因为SQLite不允许进行多次写入。

  • 您不得使用Red Hat OpenShift镜像注册表用户界面(UP)。

  • 在升级期间不要访问sqlite-storage Podman卷。

  • 您的镜像注册表会间歇性停机,因为它在升级过程中会重新启动。

  • PostgreSQL数据备份在/$HOME/quay-instal/quay-postgres-backup/目录下,用于恢复。

先决条件
  • 您已在本地主机上安装了Red Hat OpenShift镜像注册表

步骤
  • 如果您正在将Red Hat OpenShift镜像注册表从1.3升级到2.y,并且您的安装目录是默认的/etc/quay-install,则可以输入以下命令:

    $ sudo ./mirror-registry upgrade -v
    • Red Hat OpenShift镜像注册表会将Quay存储、Postgres数据和/etc/quay-install数据的Podman卷迁移到新的$HOME/quay-install位置。这允许您在将来的升级中无需--quayRoot标志即可使用Red Hat OpenShift镜像注册表

    • 使用./mirror-registry upgrade -v标志升级Red Hat OpenShift镜像注册表的用户必须包含创建镜像注册表时使用的相同凭据。例如,如果您使用--quayHostname <host_example_com>--quayRoot <example_directory_name>安装了Red Hat OpenShift镜像注册表,则必须包含该字符串才能正确升级镜像注册表。

  • 如果您正在将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
  • 如果您正在将Red Hat OpenShift镜像注册表从1.3升级到2.y,并且想要指定自定义的SQLite存储路径,则必须传入--sqliteStorage标志,例如:

    $ sudo ./mirror-registry upgrade --sqliteStorage <example_directory_name>/sqlite-storage -v

使用Red Hat OpenShift镜像注册表在远程主机上镜像

此过程说明如何使用mirror-registry工具在远程主机上安装Red Hat OpenShift镜像注册表。通过这样做,用户可以创建一个注册表来保存OpenShift Container Platform镜像的镜像。

使用mirror-registry CLI工具安装Red Hat OpenShift镜像注册表会对您的机器进行一些更改。安装后,将创建一个$HOME/quay-install目录,其中包含安装文件、本地存储和配置包。如果部署目标是本地主机,则会生成受信任的SSH密钥,并设置主机机器上的systemd文件以确保容器运行时持久存在。此外,将创建一个名为init的初始用户,并使用自动生成的密码。所有访问凭据都将在安装例程结束时打印。

步骤
  1. OpenShift控制台**下载**页面下载Red Hat OpenShift镜像注册表最新版本的mirror-registry.tar.gz软件包。

  2. 使用mirror-registry工具,使用您当前的用户帐户在本地主机上安装Red Hat OpenShift镜像注册表。有关可用标志的完整列表,请参见“Red Hat OpenShift镜像注册表标志”。

    $ ./mirror-registry install -v \
      --targetHostname <host_example_com> \
      --targetUsername <example_user> \
      -k ~/.ssh/my_ssh_key \
      --quayHostname <host_example_com> \
      --quayRoot <example_directory_name>
  3. 使用安装过程中生成的用户名和密码,运行以下命令登录镜像注册表:

    $ 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登录。

  4. 登录后,您可以镜像OpenShift Container Platform镜像。根据您的需求,请参阅本文档的“镜像OpenShift Container Platform镜像存储库”或“镜像与断开连接的集群一起使用的Operator目录”部分。

    如果由于存储层问题而导致Red Hat OpenShift镜像注册表存储的镜像出现问题,您可以重新镜像OpenShift Container Platform镜像,或在更稳定的存储上重新安装镜像注册表。

从远程主机更新 Red Hat OpenShift 的镜像注册表

此过程说明如何使用 upgrade 命令从远程主机更新 *Red Hat OpenShift 的镜像注册表*。更新到最新版本可确保修复错误并解决安全漏洞。

从版本1升级到版本2时,请注意以下约束条件:

  • 工作程序计数设置为1,因为SQLite不允许进行多次写入。

  • 您不得使用Red Hat OpenShift镜像注册表用户界面(UP)。

  • 在升级期间不要访问sqlite-storage Podman卷。

  • 您的镜像注册表会间歇性停机,因为它在升级过程中会重新启动。

  • PostgreSQL数据备份在/$HOME/quay-instal/quay-postgres-backup/目录下,用于恢复。

先决条件
  • 您已在远程主机上安装了 *Red Hat OpenShift 的镜像注册表*。

步骤
  • 要从远程主机升级 *Red Hat OpenShift 的镜像注册表*,请输入以下命令:

    $ ./mirror-registry upgrade -v --targetHostname <remote_host_url> --targetUsername <user_name> -k ~/.ssh/my_ssh_key

    使用 ./mirror-registry upgrade -v 标志升级 *Red Hat OpenShift 的镜像注册表* 的用户必须包含创建镜像注册表时使用的相同凭据。例如,如果您使用 --quayHostname <host_example_com>--quayRoot <example_directory_name> 安装了 *Red Hat OpenShift 的镜像注册表*,则必须包含该字符串才能正确升级镜像注册表。

  • 如果您正在将Red Hat OpenShift镜像注册表从1.3升级到2.y,并且想要指定自定义的SQLite存储路径,则必须传入--sqliteStorage标志,例如:

    $ ./mirror-registry upgrade -v --targetHostname <remote_host_url> --targetUsername <user_name> -k ~/.ssh/my_ssh_key --sqliteStorage <example_directory_name>/quay-storage

替换 Red Hat OpenShift 镜像注册表的 SSL/TLS 证书

在某些情况下,您可能需要更新 *Red Hat OpenShift 的镜像注册表* 的 SSL/TLS 证书。这在以下情况下很有用:

  • 如果您要替换当前的 *Red Hat OpenShift 的镜像注册表* 证书。

  • 如果您使用与之前的 *Red Hat OpenShift 的镜像注册表* 安装相同的证书。

  • 如果您定期更新 *Red Hat OpenShift 的镜像注册表* 证书。

请使用以下步骤替换 *Red Hat OpenShift 的镜像注册表* SSL/TLS 证书。

先决条件
步骤
  1. 输入以下命令安装 *Red Hat OpenShift 的镜像注册表*:

    $ ./mirror-registry install \
    --quayHostname <host_example_com> \
    --quayRoot <example_directory_name>

    这会将 *Red Hat OpenShift 的镜像注册表* 安装到 $HOME/quay-install 目录。

  2. 准备一个新的证书颁发机构 (CA) 捆绑包并生成新的 ssl.keyssl.crt 密钥文件。更多信息,请参见 使用 SSL/TLS 保护与 Red Hat Quay 的连接

  3. /$HOME/quay-install 分配一个环境变量,例如 QUAY,请输入以下命令:

    $ export QUAY=/$HOME/quay-install
  4. 通过输入以下命令将新的 ssl.crt 文件复制到 /$HOME/quay-install 目录:

    $ cp ~/ssl.crt $QUAY/quay-config
  5. 通过输入以下命令将新的 ssl.key 文件复制到 /$HOME/quay-install 目录:

    $ cp ~/ssl.key $QUAY/quay-config
  6. 通过输入以下命令重新启动 quay-app 应用程序 pod:

    $ systemctl restart quay-app

卸载 Red Hat OpenShift 的镜像注册表

  • 您可以通过运行以下命令从本地主机卸载 *Red Hat OpenShift 的镜像注册表*:

    $ ./mirror-registry uninstall -v \
      --quayRoot <example_directory_name>
    • 删除 *Red Hat OpenShift 的镜像注册表* 将会在删除前提示用户。您可以使用 --autoApprove 跳过此提示。

    • 使用 --quayRoot 标志安装 *Red Hat OpenShift 的镜像注册表* 的用户必须在卸载时包含 --quayRoot 标志。例如,如果您使用 --quayRoot example_directory_name 安装了 *Red Hat OpenShift 的镜像注册表*,则必须包含该字符串才能正确卸载镜像注册表。

Red Hat OpenShift 镜像注册表标志

以下是 *Red Hat OpenShift 的镜像注册表* 可用的标志:

标志 描述

--autoApprove

一个布尔值,用于禁用交互式提示。如果设置为 true,卸载镜像注册表时会自动删除 quayRoot 目录。如果未指定,则默认为 false

--initPassword

在 Quay 安装过程中创建的 init 用户的密码。必须至少八个字符,并且不包含空格。

--initUser string

显示初始用户的用户名。如果未指定,则默认为 init

--no-color, -c

允许用户禁用颜色序列并在运行安装、卸载和升级命令时将其传播到 Ansible。

--quayHostname

客户端将用于联系注册表的镜像注册表的完全限定域名。等同于 Quay config.yaml 中的 SERVER_HOSTNAME。必须通过 DNS 解析。如果未指定,则默认为 <targetHostname>:8443[1]

--quayStorage

保存 Quay 持久存储数据的文件夹。默认为 quay-storage Podman 卷。卸载需要 root 权限。

--quayRoot, -r

保存容器镜像层和配置数据的目录,包括 rootCA.keyrootCA.pemrootCA.srl 证书。如果未指定,则默认为 $HOME/quay-install

--sqliteStorage

保存 SQLite 数据库数据的文件夹。如果未指定,则默认为 sqlite-storage Podman 卷。卸载需要 root 权限。

--ssh-key, -k

您的 SSH 身份密钥的路径。如果未指定,则默认为 ~/.ssh/quay_installer

--sslCert

SSL/TLS 公钥/证书的路径。默认为 {quayRoot}/quay-config,如果未指定则自动生成。

--sslCheckSkip

跳过针对 config.yaml 文件中的 SERVER_HOSTNAME 检查证书主机名的步骤。[2]

--sslKey

用于 HTTPS 通信的 SSL/TLS 私钥的路径。默认为 {quayRoot}/quay-config,如果未指定则自动生成。

--targetHostname, -H

要安装 Quay 的目标的主机名。如果未指定,则默认为 $HOST,例如本地主机。

--targetUsername, -u

将在目标主机上用于 SSH 的用户。如果未指定,则默认为 $USER,例如当前用户。

--verbose, -v

显示调试日志和 Ansible 剧本输出。

--version

显示 *Red Hat OpenShift 的镜像注册表* 的版本。

  1. 如果系统的公共 DNS 名称与本地主机名不同,则必须修改 --quayHostname。此外,--quayHostname 标志不支持使用 IP 地址进行安装。必须使用主机名进行安装。

  2. 当镜像注册表设置在代理后面并且公开的主机名与内部 Quay 主机名不同时,使用 --sslCheckSkip。当用户不希望在安装期间针对提供的 Quay 主机名验证证书时,也可以使用它。

Red Hat OpenShift 镜像注册表发行说明

*Red Hat OpenShift 的镜像注册表* 是一个小型且精简的容器注册表,您可以将其用作镜像 OpenShift Container Platform 断开连接安装所需的容器镜像的目标。

这些发行说明跟踪 OpenShift Container Platform 中 *Red Hat OpenShift 的镜像注册表* 的开发情况。

Red Hat OpenShift 2.0 版本镜像仓库发行说明

以下各节详细介绍了 Red Hat OpenShift 各个 2.0 版本的镜像仓库。

Red Hat OpenShift 2.0.5 镜像仓库

发布日期:2025年1月13日

Red Hat OpenShift 镜像仓库现已支持 Red Hat Quay 3.12.5。

Red Hat OpenShift 镜像仓库的以下安全公告可用:

Red Hat OpenShift 2.0.4 镜像仓库

发布日期:2025年1月6日

Red Hat OpenShift 镜像仓库现已支持 Red Hat Quay 3.12.4。

Red Hat OpenShift 镜像仓库的以下安全公告可用:

Red Hat OpenShift 2.0.3 镜像仓库

发布日期:2024年11月25日

Red Hat OpenShift 镜像仓库现已支持 Red Hat Quay 3.12.3。

Red Hat OpenShift 镜像仓库的以下安全公告可用:

Red Hat OpenShift 2.0.2 镜像仓库

发布日期:2024年10月31日

Red Hat OpenShift 镜像仓库现已支持 Red Hat Quay 3.12.2。

Red Hat OpenShift 镜像仓库的以下安全公告可用:

Red Hat OpenShift 2.0.1 镜像仓库

发布日期:2024年9月26日

Red Hat OpenShift 镜像仓库现已支持 Red Hat Quay 3.12.1。

Red Hat OpenShift 镜像仓库的以下安全公告可用:

Red Hat OpenShift 2.0.0 镜像仓库

发布日期:2024年9月3日

Red Hat OpenShift 镜像仓库现已支持 Red Hat Quay 3.12.0。

Red Hat OpenShift 镜像仓库的以下安全公告可用:

新增功能
  • 随着Red Hat OpenShift 镜像仓库的发布,内部数据库已从 PostgreSQL 升级到 SQLite。因此,数据现在默认存储在sqlite-storage Podman 卷中,整体 tar 包大小减少了 300 MB。

    新安装默认使用 SQLite。在升级到 2.0 版本之前,请根据您的环境查看“从本地主机更新 Red Hat OpenShift 镜像仓库”或“从远程主机更新 Red Hat OpenShift 镜像仓库”。

  • 新增了一个功能标志--sqliteStorage。使用此标志,您可以手动设置保存 SQLite 数据库数据的位置。

Red Hat OpenShift 1.3 版本镜像仓库发行说明

要查看Red Hat OpenShift 镜像仓库 1.3 版本的发行说明,请参阅 Red Hat OpenShift 1.3 版本镜像仓库发行说明

Red Hat OpenShift 1.2 版本镜像仓库发行说明

要查看Red Hat OpenShift 镜像仓库 1.2 版本的发行说明,请参阅 Red Hat OpenShift 1.2 版本镜像仓库发行说明

Red Hat OpenShift 1.1 版本镜像仓库发行说明

要查看Red Hat OpenShift 镜像仓库 1.1 版本的发行说明,请参阅 Red Hat OpenShift 1.1 版本镜像仓库发行说明

Red Hat OpenShift 镜像仓库故障排除

为了帮助您排除Red Hat OpenShift 镜像仓库的故障,您可以收集镜像仓库安装的 systemd 服务日志。已安装以下服务:

  • quay-app.service

  • quay-postgres.service

  • quay-redis.service

  • quay-pod.service

先决条件
  • 您已安装Red Hat OpenShift 镜像仓库

步骤
  • 如果您以 root 权限安装了Red Hat OpenShift 镜像仓库,则可以通过输入以下命令来获取其 systemd 服务的状态信息:

    $ sudo systemctl status <service>
  • 如果您以标准用户身份安装了Red Hat OpenShift 镜像仓库,则可以通过输入以下命令来获取其 systemd 服务的状态信息:

    $ systemctl --user status <service>