第 3 章 配置 Red Hat Quay

在将 Red Hat Quay 服务作为容器运行前,您需要使用同一 Quay 容器来创建部署 Red Hat Quay 所需的配置文件(config.yaml)。为此,您需要将 config 参数和一个密码 (在此替换 my-secret-password) 传递给 Quay 容器。之后,您可以使用该密码以 quayconfig 用户身份登录配置工具。

以下是如何进行此操作的示例:

  1. 以设置模式启动 quay :在第一个 quay 节点上运行以下命令:

    # sudo podman run --rm -it --name quay_config -p 8080:8080 registry.redhat.io/quay/quay-rhel8:v3.9.0 config my-secret-password
  2. 打开浏览器 :在 quay 配置工具启动时,打开浏览器指向您要在其上运行配置工具的系统的 URL 和端口 8080 (例如 http://myquay.example.com:8080)。会提示您输入用户名和密码。
  3. quayconfig 身份登录 :在提示时,输入 quayconfig 用户名和密码( podman run 命令行中的一个)。
  4. 填写所需字段 :当您在不挂载现有配置捆绑包的情况下启动配置工具时,您将引导至初始设置会话。在设置会话中,将自动填写默认值。以下步骤将了解如何填写剩余的必填字段。
  5. 识别数据库 :对于初始设置,您必须包含有关 Red Hat Quay 使用的数据库类型和位置的信息:

    • 数据库类型 :选择 MySQL 或 PostgreSQL。MySQL 将在基本示例中使用;PostgreSQL 与 OpenShift 示例上的高可用性 Red Hat Quay 一起使用。
    • 数据库服务器 :识别数据库的 IP 地址或主机名,如果不是端口 3306,则标识其端口号。
    • 用户名 :识别对数据库具有完全访问权限的用户。
    • 密码 :输入您分配给所选用户的密码。
    • 数据库名称 :输入您在启动数据库服务器时分配的数据库名称。
    • SSL 证书 :对于生产环境,您应该提供 SSL 证书以连接到数据库。

      下图显示了识别 Red Hat Quay 使用的数据库的屏幕示例:

      Identifying the database Red Hat Quay will use

  6. 识别 Redis 主机名、服务器配置并添加其他所需设置 :您可以添加其他设置 来完成设置,如下所示。用于基本部署的高可用性 Red Hat Quay 部署的更多设置:

    • 对于基本测试配置,标识 Redis 主机名 应该都是您需要做的。但是,您可以添加其他功能,如 Clair Scanning 和 Repository Mirroring,如此过程末尾所述。
    • 对于高可用性和 OpenShift 配置,需要更多设置(如下所述),以允许共享存储、系统和其他功能间的安全通信。

      以下是您需要考虑的设置:

    • 自定义 SSL 证书 :上传自定义或自签名 SSL 证书,供 Red Hat Quay 使用。详情请参阅 使用 SSL 保护到 Red Hat Quay 的连接。建议高可用性。

      重要

      对于基本和高可用性部署,建议使用 SSL 证书。如果您决定不使用 SSL,您必须将容器客户端配置为使用新的 Red Hat Quay 设置作为不安全的 registry,如 Test a Insecure Registry 所述。

    • 基本配置 :上传公司徽标以重新构建您的 Red Hat Quay registry。
    • 服务器配置 :用于访问 Red Hat Quay 服务的主机名或 IP 地址,以及 TLS 表示(在生产环境中安装推荐)。所有 Red Hat Quay 部署都需要 Server Hostname。TLS 终止可以通过两种不同的方式完成:

      • 在实例本身上,具有由 Quay 容器中 nginx 服务器管理的所有 TLS 流量(推荐)。
      • 在负载均衡器中。不建议这样做。如果没有在负载均衡器上正确完成 TLS 设置,则对 Red Hat Quay 的访问可能会丢失。
    • 数据一致性设置 :选择放宽日志记录一致性保证以提高性能和可用性。
    • 时间机器 :允许旧镜像标签在存储库中保留,并允许用户选择自己的标签过期时间。
    • Redis :标识主机名或 IP 地址(及可选密码)以连接到 Red Hat Quay 使用的 redis 服务。
    • Repository Mirroring :选择 Enable Repository Mirroring 复选框。启用后,您可以在 Red Hat Quay 集群中创建软件仓库,从远程 registry 中镜像所选存储库。在启用存储库镜像前,请启动存储库镜像 worker,如此流程所述。
    • Registry Storage :识别存储位置。有各种云和本地存储选项。高可用性需要远程存储。如果您遵循 Red Hat Quay 高可用性存储示例,请识别 Ceph 存储位置。在 OpenShift 上,示例使用 Amazon S3 存储。
    • action Log Storage Configuration: Action 日志默认存储在 Red Hat Quay 数据库中。如果您有大量操作日志,可以让这些日志定向到 Elasticsearch,以便稍后进行搜索和分析。为此,请将 Action Logs Storage 的值改为 Elasticsearch,并配置相关的设置,如 Configure action log storage 所述。
    • 操作日志轮转和存档 :选择启用日志轮转,这会将超过 30 天的日志移到存储中,然后指示存储区域。
    • 安全扫描器 :选择安全扫描程序端点和身份验证密钥来启用安全扫描。要设置 Clair 以进行镜像扫描,请参阅 Clair 设置和配置 Clair。建议高可用性。
    • Application Registry :启用包含 Kubernetes 清单或 Helm chart 等其它应用程序 registry (请参阅 App Registry 规格)。
    • rkt Conversion :允许使用 rkt fetch 从 Red Hat Quay registry 获取镜像。需要公钥和私有 GPG2 密钥。此字段已弃用。
    • 电子邮件 :启用用于通知和用户密码重置的电子邮件。
    • 内部身份验证 :将 registry 的默认身份验证从 Local Database 更改为 LDAP、Keystone (OpenStack)、JWT 自定义身份验证或外部应用令牌。
    • 外部授权(OAuth) :允许 GitHub 或 GitHub Enterprise 向 registry 进行身份验证。
    • Google Authentication :允许 Google 向 registry 进行身份验证。
    • 访问设置 :默认启用基本用户名/密码身份验证。其他可启用的身份验证类型包括:外部应用程序令牌(用户生成的令牌用于 docker 或 rkt 命令)、匿名访问(对可获取 registry 的任何人具有公共访问权限)、用户创建(加载用户创建自己的帐户)、加密的客户端密码(需要命令行用户访问,使其包含加密密码),以及前缀 username autocompletion (禁用在自动完成时需要完全的用户名匹配)。
    • registry 协议设置 :启用 Restrict V1 Push Support 复选框来限制对 Docker V1 协议推送的访问。虽然红帽建议不要启用 Docker V1 push 协议,但如果您确实允许它,则必须明确将启用它的命名空间列入白名单。
    • Dockerfile 构建支持 :允许用户提交 Dockerfile,并推送到 Red Hat Quay。不建议在多租户环境中这样做。
  7. 验证更改 :选择 Validate Configuration Changes。如果验证成功,您将看到以下 Download Configuration 模式:

    Download the Red Hat Quay configuration tarball to the local system

  8. 下载配置 :选择 Download Configuration 按钮,并将 tarball (quay-config.tar.gz)保存到本地目录中,供以后使用来启动 Red Hat Quay。

此时,您可以关闭 Red Hat Quay 配置工具并关闭浏览器。接下来,将 tarball 文件复制到您要在其上安装第一个 Red Hat Quay 节点的系统中。对于基本安装,您可能只在同一系统上运行 Red Hat Quay。