配置 Red Hat Quay
第 1 章 Red Hat Quay 配置入门 复制链接链接已复制到粘贴板!
Red Hat Quay 是一个安全工件 registry,可作为自我管理安装部署,或通过 Red Hat Quay 在 OpenShift Container Platform Operator 上部署。每种部署类型都提供了不同的配置和管理方法,但每种方法都依赖于同一组配置参数来控制 registry 行为。借助常见的配置参数,管理员可以定义其 registry 与用户、存储后端、身份验证提供程序、安全策略和其他集成服务交互的方式。
配置 Red Hat Quay 的方法有两种方法之一,具体取决于您的部署类型:
-
在 prem Red Hat Quay: 在 prem Red Hat Quay 部署中,一个 registry 管理员提供了一个
config.yaml文件,其中包含所有需要的参数。对于此部署类型,registry 无法在没有有效的配置的情况下启动。 -
Red Hat Quay Operator :默认情况下,Red Hat Quay Operator 通过生成最小必要值并为您部署所需组件来自动配置 Red Hat Quay Operator。在初始部署后,您可以通过修改
QuayRegistry自定义资源或使用 OpenShift Container Platform Web 控制台 来自定义 registry 的行为。
本指南概述了以下配置概念:
- 如何在 prem 和基于 Operator 的 Red Hat Quay 部署类型上检索、检查和修改您的当前配置。
- 启动所需的最小配置字段。
- 有关这些字段的所有可用 Red Hat Quay 配置字段和 YAML 示例概述。
第 2 章 Red Hat Quay configuration disclaimer 复制链接链接已复制到粘贴板!
在 Red Hat Quay 的自我管理和基于 Operator 的部署中,某些功能和配置参数不会被活跃使用或实现。因此,一些功能标记(如启用或禁用特定功能或未明确记录或支持的配置参数)只应谨慎修改。
未使用的或未记录的功能可能没有被充分测试、支持或与 Red Hat Quay 兼容。修改这些设置可能会导致部署意外行为或中断。
第 3 章 了解 Red Hat Quay 配置文件 复制链接链接已复制到粘贴板!
无论是在 OpenShift Container Platform Operator 中部署 Red Hat Quay 的内部,registry 的行为都由 config.yaml 文件定义。config.yaml 文件必须包含 registry 启动的所有必要配置字段。Red Hat Quay 管理员也可以定义自定义其 registry 的可选参数,如身份验证参数、存储参数、代理缓存参数等。
config.yaml 文件必须使用有效的 YAML ("YAML Ain't Markup Language")语法编写,如果文件本身包含任何格式化错误或缺少必填字段,则 Red Hat Quay 无法启动。无论部署类型是什么,无论处于内部环境还是由 Operator 配置的 OpenShift Container Platform 上的 Red Hat Quay,YAML 原则保持不变,即使所需的配置字段稍有不同。
以下部分概述了与创建和编辑 Red Hat Quay config.yaml 文件相关的基本 YAML 语法。有关 YAML 的完整概述,请参阅 什么是 YAML。
3.1. 键值对 复制链接链接已复制到粘贴板!
config.yaml 文件中的配置字段以键值对的形式编写:
# ... EXAMPLE_FIELD_NAME: <value> # ...
# ...
EXAMPLE_FIELD_NAME: <value>
# ...
config.yaml 文件中的每一行都包含一个字段名称,后跟一个冒号、一个空格,然后是与键匹配的相应值。以下示例演示了如何在 config.yaml 文件中格式化 AUTHENTICATION_TYPE 配置字段。
AUTHENTICATION_TYPE: Database # ...
AUTHENTICATION_TYPE: Database
# ...
- 1
- 用于凭证身份验证的身份验证引擎。
在前面的示例中,AUTHENTICATION_TYPE 设置为 Database,但不同的部署类型需要不同的值。以下示例显示了 config.yaml 文件如何查找 LDAP 或轻量级目录访问协议用于身份验证:
AUTHENTICATION_TYPE: LDAP # ...
AUTHENTICATION_TYPE: LDAP
# ...
3.2. 缩进和嵌套 复制链接链接已复制到粘贴板!
许多 Red Hat Quay 配置字段都需要缩进来表示嵌套结构。缩进必须使用 空格或字面 空格字符来完成;设计不允许使用制表符。缩进必须在文件中保持一致。以下 YAML 片段演示了如何 BUILDLOGS_REDIS 字段对 所需的主机 、password 和 port 字段使用缩进:
3.3. 列表 复制链接链接已复制到粘贴板!
在某些情况下,Red Hat Quay 配置字段依赖于列表来定义某些值。使用连字符(-)加一个空格来格式化列表。以下示例显示了 SUPER_USERS 配置字段如何使用列表来定义超级用户:
# ... SUPER_USERS: - quayadmin # ...
# ...
SUPER_USERS:
- quayadmin
# ...
3.4. quoted 值 复制链接链接已复制到粘贴板!
有些 Red Hat Quay 配置字段需要使用引号("")来正确地定义变量。这通常不需要。以下示例显示 FOOTER_LINKS 配置字段如何使用引号来定义 TERMS_OF_SERVICE_URL、PRIVACY_POLICY_URL、SECURITY_URL 和 ABOUT_URL :
FOOTER_LINKS: "TERMS_OF_SERVICE_URL": "https://www.index.hr" "PRIVACY_POLICY_URL": "https://www.jutarnji.hr" "SECURITY_URL": "https://www.bug.hr" "ABOUT_URL": "https://www.zagreb.hr"
FOOTER_LINKS:
"TERMS_OF_SERVICE_URL": "https://www.index.hr"
"PRIVACY_POLICY_URL": "https://www.jutarnji.hr"
"SECURITY_URL": "https://www.bug.hr"
"ABOUT_URL": "https://www.zagreb.hr"
3.5. 注释 复制链接链接已复制到粘贴板!
hash 符号或 #,可以放在行的开头,以添加注释或临时禁用配置字段。它们由配置解析器忽略,不会影响 registry 的行为。例如:
# ... # FEATURE_UI_V2: true # ...
# ...
# FEATURE_UI_V2: true
# ...
在本例中,解析器会忽略 FEATURE_UI_V2 配置,这意味着禁用使用 v2 UI 的选项。在所需配置字段中使用 # 符号会导致 registry 启动失败。
第 4 章 在 prem Red Hat Quay 配置概述 复制链接链接已复制到粘贴板!
对于 Red Hat Quay 的内部部署,由管理员管理的 config.yaml 文件会在启动时挂载到容器中,并在初始化过程中由 Red Hat Quay 读取。config.yaml 文件没有动态重新加载,这意味着对文件所做的任何更改都需要重启 registry 容器才能生效。
本章概述以下概念:
- 最小所需配置字段。
- 部署后如何编辑和管理您的配置。
本节特别适用于内部 Red Hat Quay 部署类型。有关在 OpenShift Container Platform 中配置 Red Hat Quay 的详情,请参考"Red Hat Quay on OpenShift Container Platform 配置概述"。
4.1. 所需的配置字段 复制链接链接已复制到粘贴板!
在 Red Hat Quay 的内部部署需要以下配置字段:
| 字段 | Type | 描述 |
|
AUTHENTICATION_TYPE | 字符串 |
用于凭证身份验证的身份验证引擎。 |
|
BUILDLOGS_REDIS | 对象 | 构建日志缓存的 redis 连接详情。 |
|
.host | 字符串 | 可以访问 Redis 的主机名。 |
| .password | 字符串 | 连接到 Redis 实例的密码。 |
|
DATABASE_SECRET_KEY | 字符串 |
用于加密数据库中敏感字段的密钥。设置后不应更改这个值,否则所有依赖字段(如存储库镜像用户名和密码配置)都无效。 |
|
DB_URI | 字符串 | 用于访问数据库的 URI,包括任何凭据。 |
|
DISTRIBUTED_STORAGE_CONFIG | 对象 |
在 Red Hat Quay 中使用的存储引擎的配置。每个键代表存储引擎的唯一标识符。该值由组成一个对象(键、值)的元组组成,用于描述存储引擎参数。 |
|
SECRET_KEY | 字符串 | 用于加密会话 Cookie 和正确解释用户会话所需的 CSRF 令牌的密钥。设置时不应更改该值。应该在所有 Red Hat Quay 实例中保留。如果没有在所有实例间具有持久性,则可能会出现登录失败以及与会话持久性相关的其他错误。 |
|
SERVER_HOSTNAME | 字符串 | 在没有方案的情况下可以访问 Red Hat Quay 的 URL。 |
|
SETUP_COMPLETE | 布尔值 |
这是一个来自早期版本的软件的工件,目前 必须使用 |
|
USER_EVENTS_REDIS | 对象 | 用于用户事件处理的 redis 连接详情。 |
|
.host | 字符串 | 可以访问 Redis 的主机名。 |
|
.port | Number | 可以访问 Redis 的端口。 |
| .password | 字符串 | 连接到 Redis 实例的密码。 |
4.1.1. 最小配置文件示例 复制链接链接已复制到粘贴板!
本节提供了两个最小配置文件示例:一个使用本地存储的示例,另一个示例使用带有 Google Cloud Platform 的基于云的存储。
4.1.1.1. 使用本地存储的最小配置 复制链接链接已复制到粘贴板!
以下示例显示了将本地存储用于镜像的示例。
仅在部署 registry 进行概念验证时使用本地存储。它不适用于生产环境。使用本地存储时,您必须在启动 registry 时将 registry 映射到容器中的 datastorage 路径。如需更多信息,请参阅 概念验证 - 部署 Red Hat Quay
本地存储最小配置
4.1.1.2. 使用基于云的存储的最小配置 复制链接链接已复制到粘贴板!
在大多数生产环境中,Red Hat Quay 管理员使用由受支持的供应商提供的云或企业级存储后端。以下示例演示了如何配置 Red Hat Quay 以使用 Google Cloud Platform 进行镜像存储。有关支持的存储提供程序的完整列表,请参阅 镜像存储。
使用云或企业级存储后端时,不需要额外的配置,如将 registry 映射到本地目录。
云存储最小配置
4.2. 部署后修改配置文件 复制链接链接已复制到粘贴板!
使用初始 config.yaml 文件部署 Red Hat Quay registry 后,Red Hat Quay 管理员可以更新配置文件,以根据需要启用或禁用功能。通过这种灵活性,管理员可以定制注册表来满足其具体环境需求,或满足某些安全策略。
因为 config.yaml 文件没有动态重新加载,因此您必须在更改后重启 Red Hat Quay 容器才能使它们生效。
以下流程演示了如何从 quay-registry 容器检索 config.yaml 文件,如何通过将该功能的配置字段添加到文件中来启用新功能,以及如何使用 Podman 重启 quay-registry 容器。
先决条件
- 您已部署了 Red Hat Quay。
- 您是 registry 管理员。
流程
如果可以访问
config.yaml文件:进入存储
config.yaml文件的目录。例如:cd /home/<username>/<quay-deployment-directory>/config
$ cd /home/<username>/<quay-deployment-directory>/configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过添加新的功能标记来更改
config.yaml文件。以下示例启用 v2 UI:# ... FEATURE_UI_V2: true # ...
# ... FEATURE_UI_V2: true # ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存对
config.yaml文件所做的更改。 输入以下命令重启
quay-registrypod:podman restart <container_id>
$ podman restart <container_id>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如果您无法访问
config.yaml文件,且需要创建新文件,同时保留相同的凭证:输入以下命令来检索
quay-registrypod 的容器 ID:podman ps
$ podman psCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5f2297ef53ff registry.redhat.io/rhel8/postgresql-13:1-109 run-postgresql 20 hours ago Up 20 hours 0.0.0.0:5432->5432/tcp postgresql-quay 3b40fb83bead registry.redhat.io/rhel8/redis-5:1 run-redis 20 hours ago Up 20 hours 0.0.0.0:6379->6379/tcp redis 0b4b8fbfca6d registry-proxy.engineering.redhat.com/rh-osbs/quay-quay-rhel8:v3.14.0-14 registry 20 hours ago Up 20 hours 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp, 7443/tcp, 9091/tcp, 55443/tcp quay
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5f2297ef53ff registry.redhat.io/rhel8/postgresql-13:1-109 run-postgresql 20 hours ago Up 20 hours 0.0.0.0:5432->5432/tcp postgresql-quay 3b40fb83bead registry.redhat.io/rhel8/redis-5:1 run-redis 20 hours ago Up 20 hours 0.0.0.0:6379->6379/tcp redis 0b4b8fbfca6d registry-proxy.engineering.redhat.com/rh-osbs/quay-quay-rhel8:v3.14.0-14 registry 20 hours ago Up 20 hours 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp, 7443/tcp, 9091/tcp, 55443/tcp quayCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令将
config.yaml文件从quay-registrypod 复制到目录中:podman cp <container_id>:/quay-registry/conf/stack/config.yaml ./config.yaml
$ podman cp <container_id>:/quay-registry/conf/stack/config.yaml ./config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过添加新的功能标记来更改
config.yaml文件。以下示例将AUTHENTICATION_TYPE设置为LDAP# ... AUTHENTICATION_TYPE: LDAP # ...
# ... AUTHENTICATION_TYPE: LDAP # ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令重新部署 registry,将
config.yaml文件挂载到quay-registry配置卷中:sudo podman run -d --rm -p 80:8080 -p 443:8443 \ --name=quay \ -v /home/<username>/<quay-deployment-directory>/config:/conf/stack:Z \ registry.redhat.io/quay/quay-rhel8:v3.14.0
$ sudo podman run -d --rm -p 80:8080 -p 443:8443 \ --name=quay \ -v /home/<username>/<quay-deployment-directory>/config:/conf/stack:Z \ registry.redhat.io/quay/quay-rhel8:v3.14.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. 对配置文件进行故障排除 复制链接链接已复制到粘贴板!
如果无法添加所有所需的配置字段,或者为某些参数提供正确的信息,可能会导致 quay-registry 容器无法部署。使用以下步骤查看和故障排除内部部署类型失败。
先决条件
- 您已创建了最小配置文件。
流程
输入以下命令尝试部署
quay-registry容器。请注意,这个命令会使用-it,它会显示调试信息:podman run -it --rm -p 80:8080 -p 443:8443 --name=quay -v /home/<username>/<quay-deployment-directory>/config:/conf/stack:Z -v /home/<username>/<quay-deployment-directory>/storage:/datastorage:Z 33f1c3dc86be
$ podman run -it --rm -p 80:8080 -p 443:8443 --name=quay -v /home/<username>/<quay-deployment-directory>/config:/conf/stack:Z -v /home/<username>/<quay-deployment-directory>/storage:/datastorage:Z 33f1c3dc86beCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,
quay-registry容器无法部署,因为提供了不正确的 LDAP 凭证。
第 5 章 Red Hat Quay on OpenShift Container Platform 配置概述 复制链接链接已复制到粘贴板!
在 OpenShift Container Platform 上使用 Operator 部署 Red Hat Quay 时,配置通过 QuayRegistry 自定义资源(CR)声明性地管理。此模型允许集群管理员定义 Red Hat Quay 部署的所需状态,包括启用哪些组件、存储后端、SSL/TLS 配置和其他核心功能。
使用 Operator 在 OpenShift Container Platform 上部署 Red Hat Quay 后,管理员可以通过更新 config.yaml 文件并在 Kubernetes secret 中引用它来进一步自定义其 registry。此配置捆绑包通过 configBundleSecret 字段链接到 QuayRegistry CR。
Operator 会协调 QuayRegistry CR 中定义的状态及其关联的配置,根据需要自动部署或更新 registry 组件。
本指南涵盖了 QuayRegistry CR 背后的基本概念,并在 OpenShift Container Platform 部署上的 Red Hat Quay 上修改 config.yaml 文件。在 OpenShift Container Platform 上部署 Red Hat Quay Operator 中,请参阅 在 QuayRegistry CR 中部署 Red Hat Quay Operator,如在 QuayRegistry CR 中使用非受管组件。
5.1. 了解 QuayRegistry CR 复制链接链接已复制到粘贴板!
默认情况下,Quay Registry CR 包含以下键字段:
-
configBundleSecret:包含定义额外配置参数的config.yaml文件的 Kubernetes Secret 名称。 -
Name:Red Hat Quay registry 的名称。 -
命名空间:创建 registry 的命名空间或项目。 spec.components:Operator 自动管理的组件列表。每个spec.component字段包含两个字段:-
kind:组件的名称 -
Managed: 一个布尔值,用于处理组件生命周期是否由 Red Hat Quay Operator 处理。将managed: true设置为QuayRegistryCR 中的组件意味着 Operator 管理组件。
-
除非另有指定,否则所有 QuayRegistry 组件会在协调时自动管理和自动填充。以下小节重点介绍了主要的 QuayRegistry 组件,并提供一个显示默认设置的 YAML 文件示例。
5.2. 受管组件 复制链接链接已复制到粘贴板!
默认情况下,Operator 处理 Red Hat Quay 管理组件所需的所有配置和安装。
如果 Red Hat Quay Operator 执行的 opinionated 部署不适合您的环境,您可以为 Red Hat Quay Operator 提供 非受管 资源,或覆盖,如 使用非受管组件 中所述。
| 字段 | 类型 | 描述 |
|---|---|---|
|
| 布尔值 |
包含覆盖用于在 OpenShift Container Platform 上部署 Red Hat Quay,如环境变量和副本数。此组件不能设置为 unmanaged ( |
|
| 布尔值 | 用于存储 registry 元数据目前使用 PostgreSQL 版本 13。 |
|
| 布尔值 | 提供镜像漏洞扫描。 |
|
| 布尔值 | 存储实时构建器日志和垃圾回收所需的锁定机制。 |
|
| 布尔值 |
根据您的内存和 CPU 消耗来调整 |
|
| 布尔值 |
存储镜像层 Blob。当设置为 |
|
| 布尔值 | 从 OpenShift Container Platform 外部为 Red Hat Quay registry 提供外部入口点。 |
|
| 布尔值 | 配置存储库镜像 worker 以支持可选存储库镜像。 |
|
| 布尔值 |
功能包括 Grafana 仪表板、访问单个指标以及频繁重启 |
|
| 布尔值 | 配置 SSL/TLS 是否自动处理。 |
|
| 布尔值 | 配置受管 Clair 数据库。这是部署 Red Hat Quay 的 PostgreSQL 数据库的独立数据库。 |
以下示例显示了 Red Hat Quay Operator 提供的 QuayRegistry 自定义资源的默认配置。它包括在 OpenShift Container Platform Web 控制台中。
QuayRegistry 自定义资源示例
5.3. 部署后修改 QuayRegistry CR 复制链接链接已复制到粘贴板!
安装 Red Hat Quay Operator 并创建了初始部署后,您可以修改 QuayRegistry 自定义资源(CR)以自定义或重新配置 Red Hat Quay 环境的各个方面。
Red Hat Quay 管理员可能会因为以下原因修改 QuayRegistry CR:
-
要更改组件管理 :将组件从
managed: true切换到managed: false,以便提供自己的基础架构。例如,您可以将kind: objectstorage设置为 unmanaged 以集成外部对象存储平台,如 Google Cloud Storage 或 Nutanix。 -
要应用自定义配置 :更新或替换
configBundleSecret以应用新的配置设置,如身份验证供应商、外部 SSL/TLS 设置、功能标记。 -
要启用或禁用功能 :通过修改
spec.components列表来切换存储库镜像、Clair 扫描或 Pod 横向自动扩展等功能。 - 要扩展部署 :为 Quay 应用程序调整环境变量或副本计数。
- 要与外部服务集成:为外部 PostgreSQL、Redis 或 Clair 数据库提供配置,并更新端点或凭证。
QuayRegistry 可使用 OpenShift Container Platform Web 控制台进行修改。这样,您可以将受管组件设置为 unamanged (managed: false),并使用您自己的基础架构。
先决条件
- 以具有 admin 权限的用户身份登录 OpenShift Container Platform。
- 已安装 Red Hat Quay Operator。
流程
- 在 OpenShift Container Platform web 控制台中,点 Operators → Installed Operators。
- 点 Red Hat Quay。
- 单击 Quay Registry。
- 点 Red Hat Quay registry 的名称,如 example-registry。
- 点 YAML。
-
将所需组件的
managed字段调整为True或False。 点击 Save。
注意将组件设置为非受管(
managed: false)可能需要进行额外的配置。有关在QuayRegistryCR 中设置非受管组件的更多信息,请参阅 使用非受管组件进行依赖项。
5.3.2. 使用 CLI 修改 QuayRegistry CR 复制链接链接已复制到粘贴板!
QuayRegistry CR 可以使用 CLI 修改。这样,您可以将受管组件设置为 unamanged (managed: false),并使用您自己的基础架构。
先决条件
- 以具有 admin 权限的用户身份登录 OpenShift Container Platform 集群。
流程
输入以下命令编辑
QuayRegistryCR:oc edit quayregistry <registry_name> -n <namespace>
$ oc edit quayregistry <registry_name> -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对
QuayRegistryCR 进行所需的更改。注意将组件设置为非受管(
managed: false)可能需要进行额外的配置。有关在QuayRegistryCR 中设置非受管组件的更多信息,请参阅 使用非受管组件进行依赖项。- 保存更改。
5.3.3. 了解 configBundleSecret 复制链接链接已复制到粘贴板!
spec.configBundleSecret 字段是对与 QuayRegistry 资源相同的命名空间中的 Secret 名称的可选引用。此 Secret 必须包含 config.yaml 键/值对,其中值为 Red Hat Quay 配置文件。
configBundleSecret 存储 config.yaml 文件。Red Hat Quay 管理员可以通过 config.yaml 文件定义以下设置:
- 身份验证后端(如 OIDC、LDAP)
- 外部 TLS 终止设置
- 仓库创建策略
- 功能标记
- 通知设置
Red Hat Quay 可能会因为以下原因更新此 secret:
- 启用一个新的验证方法
- 添加自定义 SSL/TLS 证书
- 启用功能
- 修改安全扫描设置
如果省略此字段,Red Hat Quay Operator 会自动根据默认值和受管组件设置生成配置 secret。如果提供了字段,则 config.yaml 的内容将用作基础配置,并且与来自受管组件的值合并,以组成最终配置,该配置被挂载到 quay 应用程序 Pod 中。
如何配置 QuayRegistry CR,决定哪些字段必须包含在 OpenShift Container Platform 上的 Red Hat Quay 的 configBundleSecret's 'config.yaml 文件中。以下示例显示,当所有组件都由 Operator 管理时,您是一个默认的 config.yaml 文件。请注意,此示例根据组件是管理的还是非受管(受管:false)而不同。
带有 Operator 管理的所有组件的 YAML 示例
在某些情况下,您可以选择自己管理某些组件,如对象存储。在这种情况下,您将修改 QuayRegistry CR,如下所示:
Unmanaged objectstorage 组件
# ...
- kind: objectstorage
managed: false
# ...
# ...
- kind: objectstorage
managed: false
# ...
如果您要管理自己的组件,则必须将部署配置为包含该组件的必要信息或资源。例如,如果 objectstorage 组件被设置为 managed: false,您可以根据 config.yaml 文件中的存储供应商包含相关信息。以下示例显示了使用 Google Cloud Storage 的分布式存储配置:
objectstorage 非受管时所需的信息
同样,如果您要管理 horizontalpodautoscaler 组件,您必须创建一个附带的 HorizontalPodAutoscaler 自定义资源。
5.3.3.1. 使用 OpenShift Container Platform Web 控制台修改配置文件 复制链接链接已复制到粘贴板!
使用 OpenShift Container Platform Web 控制台修改 configBundleSecret 存储的 config.yaml 文件。
先决条件
- 以具有 admin 权限的用户身份登录 OpenShift Container Platform 集群。
流程
- 在 OpenShift Container Platform web 控制台中,点 Operators → Installed Operators → Red Hat Quay。
- 单击 Quay Registry。
- 点 Red Hat Quay registry 的名称,如 example-registry。
- 在 QuayRegistry 详情页中,单击 Config Bundle Secret 的名称,如 example-registry-config-bundle。
- 点 Actions → Edit Secret。
在 Value 框中,添加所需的键/值对。例如,要将超级用户添加到 OpenShift Container Platform 部署的 Red Hat Quay 中,请添加以下引用:
SUPER_USERS: - quayadmin
SUPER_USERS: - quayadminCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 点击 Save。
验证
验证更改是否已接受:
- 在 OpenShift Container Platform web 控制台中,点 Operators → Installed Operators → Red Hat Quay。
- 单击 Quay Registry。
- 点 Red Hat Quay registry 的名称,如 example-registry。
单击 Events。如果成功,则会显示以下信息:
All objects created/updated successfully
All objects created/updated successfullyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
在将其放在 Secret 之前,您必须对任何更新的 config.yaml 进行 base64 编码。确保 Secret 名称与 spec.configBundleSecret 指定的值匹配。更新 Secret 后,Operator 会检测到更改,并自动推出对 Red Hat Quay pod 的更新。
具体步骤请参阅"通过 Red Hat Quay UI 更新配置 secret"。
5.3.3.2. 使用 CLI 修改配置文件 复制链接链接已复制到粘贴板!
您可以使用 CLI 下载现有配置来修改 configBundleSecret 存储的 config.yaml 文件。进行更改后,您可以重新上传 configBundleSecret 资源,以更改 Red Hat Quay registry。
修改 configBundleSecret 资源存储的 config.yaml 文件是一个多步骤,需要 base64 解码现有配置文件,然后上传更改。在大多数情况下,使用 OpenShift Container Platform Web 控制台对 config.yaml 文件进行更改更为简单。
先决条件
- 以具有 admin 权限的用户身份登录 OpenShift Container Platform 集群。
流程
输入以下命令描述
QuayRegistry资源:oc describe quayregistry -n <quay_namespace>
$ oc describe quayregistry -n <quay_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow # ... Config Bundle Secret: example-registry-config-bundle-v123x # ...
# ... Config Bundle Secret: example-registry-config-bundle-v123x # ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令来获取 secret 数据:
oc get secret -n <quay_namespace> <example-registry-config-bundle-v123x> -o jsonpath='{.data}'$ oc get secret -n <quay_namespace> <example-registry-config-bundle-v123x> -o jsonpath='{.data}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
{ "config.yaml": "RkVBVFVSRV9VU0 ... MDAwMAo=" }{ "config.yaml": "RkVBVFVSRV9VU0 ... MDAwMAo=" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过传递 >>
config.yaml 标志,将数据解码到当前目录中。例如:echo 'RkVBVFVSRV9VU0 ... MDAwMAo=' | base64 --decode >> config.yaml
$ echo 'RkVBVFVSRV9VU0 ... MDAwMAo=' | base64 --decode >> config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
对
config.yaml文件进行所需的更改,然后将该文件保存为config.yaml。 输入以下命令创建新的
configBundleSecretYAML。touch <new_configBundleSecret_name>.yaml
$ touch <new_configBundleSecret_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令来创建新的
configBundleSecret资源,传递config.yaml文件':oc -n <namespace> create secret generic <secret_name> \ --from-file=config.yaml=</path/to/config.yaml> \ --dry-run=client -o yaml > <new_configBundleSecret_name>.yaml
$ oc -n <namespace> create secret generic <secret_name> \ --from-file=config.yaml=</path/to/config.yaml> \1 --dry-run=client -o yaml > <new_configBundleSecret_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 其中
<config.yaml> 是您的base64 解码的config.yaml文件。
输入以下命令来创建
configBundleSecret资源:oc create -n <namespace> -f <new_configBundleSecret_name>.yaml
$ oc create -n <namespace> -f <new_configBundleSecret_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
secret/config-bundle created
secret/config-bundle createdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令更新
QuayRegistryYAML 文件来引用新的configBundleSecret对象:oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"configBundleSecret":"<new_configBundleSecret_name>"}}'$ oc patch quayregistry <registry_name> -n <namespace> --type=merge -p '{"spec":{"configBundleSecret":"<new_configBundleSecret_name>"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
quayregistry.quay.redhat.com/example-registry patched
quayregistry.quay.redhat.com/example-registry patchedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证
QuayRegistryCR 已使用新的configBundleSecret更新:oc describe quayregistry -n <quay_namespace>
$ oc describe quayregistry -n <quay_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
# ... Config Bundle Secret: <new_configBundleSecret_name> # ...
# ... Config Bundle Secret: <new_configBundleSecret_name> # ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修补 registry 后,Red Hat Quay Operator 会自动协调更改。
第 6 章 Red Hat Quay 3.14 的新配置字段 复制链接链接已复制到粘贴板!
以下小节详细介绍了 Red Hat Quay 3.14 中的新配置字段。
6.1. 模型卡渲染配置字段 复制链接链接已复制到粘贴板!
添加了以下配置字段来支持 v2 UI 上的模型卡渲染。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_UI_MODELCARD | 布尔值 |
在 UI 中启用 Model 卡 镜像标签页。默认值为 |
| UI_MODELCARD_ARTIFACT_TYPE | 字符串 | 定义模型卡工件类型。 |
| UI_MODELCARD_ANNOTATION | 对象 | 此可选字段定义存储在 OCI 镜像中的模型卡的层注解。 |
| UI_MODELCARD_LAYER_ANNOTATION | 对象 | 此可选字段定义存储在 OCI 镜像中的模型卡的层注解。 |
模型卡 YAML 示例
第 7 章 所需的配置字段 复制链接链接已复制到粘贴板!
Red Hat Quay 需要一组最小的配置字段才能正确 Operator。这些字段定义部署的基本方面,如如何访问 registry、存储镜像内容、元数据的持久化方式以及日志等后台服务的方式。
所需的配置字段分为五大类别:
- 常规必要配置字段。本节中介绍了如何验证类型、URL 方案、服务器主机名、数据库 secret 密钥和 secret 密钥等核心字段。
- 数据库配置字段.Red Hat Quay 需要一个 PostgreSQL 关系数据库来存储有关存储库、用户、团队和标签的元数据。
- 对象存储配置字段。对象存储定义了存储容器镜像 blob 和清单的后端。您的存储后端必须被 Red Hat Quay 支持,如 Ceph/RadosGW、AWS S3 存储、Google Cloud Storage、Nuty 等。
- Redis 配置字段。Redis 用作数据的后端,如推送日志、用户通知和其他操作。
7.1. 常规所需配置字段 复制链接链接已复制到粘贴板!
下表描述了 Red Hat Quay 部署所需的配置字段:
| 字段 | 类型 | 描述 |
|---|---|---|
|
AUTHENTICATION_TYPE | 字符串 |
用于凭证身份验证的身份验证引擎。 |
|
PREFERRED_URL_SCHEME | 字符串 |
访问 Red Hat Quay 时使用的 URL 方案。 |
|
SERVER_HOSTNAME | 字符串 |
可以访问 Red Hat Quay 的 URL,不包括网络协议。 |
|
DATABASE_SECRET_KEY | 字符串 |
用于加密数据库中敏感字段的密钥。设置后不应更改这个值,否则所有依赖字段(如存储库镜像用户名和密码配置)都无效。 |
|
SECRET_KEY | 字符串 | 用于加密会话 Cookie 和正确解释用户会话所需的 CSRF 令牌的密钥。设置时不应更改该值。应该在所有 Red Hat Quay 实例中保留。如果没有在所有实例间具有持久性,则可能会出现登录失败以及与会话持久性相关的其他错误。 |
|
SETUP_COMPLETE | 布尔值 |
这是一个来自早期版本的软件的工件,目前 必须使用 |
常规必填字段示例
7.2. 数据库配置字段 复制链接链接已复制到粘贴板!
本节论述了 Red Hat Quay 部署可用的数据库配置字段。
7.2.1. 数据库 URI 复制链接链接已复制到粘贴板!
使用 Red Hat Quay 时,使用所需的 DB_URI 字段配置与数据库的连接。
下表描述了 DB_URI 配置字段:
| 字段 | 类型 | 描述 |
|---|---|---|
|
DB_URI | 字符串 | 用于访问数据库的 URI,包括任何凭据。
postgresql://quayuser:quaypass@quay-server.example.com:5432/quay |
数据库 URI 示例
# ... DB_URI: postgresql://quayuser:quaypass@quay-server.example.com:5432/quay # ...
# ...
DB_URI: postgresql://quayuser:quaypass@quay-server.example.com:5432/quay
# ...
7.2.2. 数据库连接参数 复制链接链接已复制到粘贴板!
可选的连接参数由 DB_CONNECTION_ARGS 参数配置。DB_CONNECTION_ARGS 中定义的一些键值对是通用的,另一些则特定于数据库。
| 字段 | 类型 | 描述 |
|---|---|---|
| DB_CONNECTION_ARGS | 对象 | 数据库的可选连接参数,如超时和 SSL/TLS。 |
| .autorollback | 布尔值 |
是否使用 thread-local 连接。 |
| .threadlocals | 布尔值 |
是否使用自动滚动连接。 |
数据库连接参数示例
7.2.2.1. SSL/TLS 连接参数 复制链接链接已复制到粘贴板!
使用 SSL/TLS 时,配置取决于您部署的数据库。
sslmode 选项决定是否使用,安全 SSL/TLS TCP/IP 连接的优先级将与服务器协商。有六个模式:
| 模式 | 描述 |
|---|---|
| sslmode | 决定是否以及哪个优先级是安全的 SSL/TLS 或 TCP/IP 连接与服务器协商。 |
| *: disable | 您的配置只尝试非 SSL/TLS 连接。 |
| *: allow | 您的配置首先会尝试非 SSL/TLS 连接。失败时,尝试 SSL/TLS 连接。 |
|
*: 首选 | 您的配置首先会尝试 SSL/TLS 连接。失败时,尝试非 SSL/TLS 连接。 |
| *: require | 您的配置只尝试 SSL/TLS 连接。如果存在 root CA 文件,它将像指定了 verify-ca 一样验证证书。 |
| *: verify-ca | 您的配置只尝试 SSL/TLS 连接,并验证服务器证书是否由可信证书颁发机构(CA)发布。 |
| *: verify-full | 仅尝试 SSL/TLS 连接,并验证服务器证书是否由可信 CA 发布,并且请求的服务器主机名与证书中的主机名匹配。 |
有关 PostgreSQL 有效参数的更多信息,请参阅 数据库连接控制功能。
PostgreSQL SSL/TLS 配置
# ... DB_CONNECTION_ARGS: sslmode: <value> sslrootcert: path/to/.postgresql/root.crt # ...
# ...
DB_CONNECTION_ARGS:
sslmode: <value>
sslrootcert: path/to/.postgresql/root.crt
# ...
7.3. 存储对象配置字段 复制链接链接已复制到粘贴板!
存储字段定义存储容器镜像 blob 和清单的后端。Red Hat Quay 支持以下存储供应商:
- Amazon Web Services (AWS) S3
- AWS STS S3 (Security Token Service)
- AWS CloudFront (CloudFront S3Storage)
- Google Cloud Storage
- Microsoft Azure Blob Storage
- Swift Storage
- Nutanix 对象存储
- IBM Cloud Object Storage
- NetApp ONTAP S3 对象存储
- Hitachi Content Platform (HCP)对象存储
许多支持的存储供应商都使用 RadosGWStorage 驱动程序,因为它们兼容 S3 的 API。
7.3.1. 存储配置字段 复制链接链接已复制到粘贴板!
下表描述了 Red Hat Quay 的存储配置字段。配置后端存储时需要这些字段。
| 字段 | 类型 | 描述 |
|---|---|---|
|
DISTRIBUTED_STORAGE_CONFIG | 对象 |
在 Red Hat Quay 中使用的存储引擎的配置。每个键代表存储引擎的唯一标识符。该值由组成一个对象(键、值)的元组组成,用于描述存储引擎参数。 |
|
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS | 字符串数组 |
默认情况下,存储引擎(由 |
|
DISTRIBUTED_STORAGE_PREFERENCE | 字符串数组 |
要使用的 |
|
MAXIMUM_LAYER_SIZE | 字符串 |
镜像层允许的最大大小。 |
存储配置示例
DISTRIBUTED_STORAGE_CONFIG:
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
- default
MAXIMUM_LAYER_SIZE: 100G
DISTRIBUTED_STORAGE_CONFIG:
DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
DISTRIBUTED_STORAGE_PREFERENCE:
- default
MAXIMUM_LAYER_SIZE: 100G
7.3.2. 本地存储 复制链接链接已复制到粘贴板!
以下 YAML 显示了使用本地存储的示例配置。
仅在部署 registry 进行 概念验证 时使用本地存储。它不适用于生产环境。使用本地存储时,您必须在启动 registry 时将 registry 映射到容器中的 datastorage 路径。如需更多信息,请参阅 概念验证 - 部署 Red Hat Quay
本地存储示例
7.3.3. Red Hat OpenShift Data Foundation 复制链接链接已复制到粘贴板!
以下 YAML 显示了使用 Red Hat OpenShift Data Foundation 的示例配置:
7.3.4. Ceph 对象网关(RadosGW)存储示例 复制链接链接已复制到粘贴板!
Red Hat Quay 支持使用 Ceph 对象网关(RadosGW)作为对象存储后端。radosgw 是 Red Hat Ceph Storage 的一个组件,它是专为私有架构设计的存储平台。Red Hat Ceph Storage 提供 S3 兼容 REST API,用于与 Ceph 交互。
radosgw 是一个与内部兼容 S3 的存储解决方案。它实施 S3 API,并且需要相同的身份验证字段,如 access_key、secret_key 和 bucket_name。有关 Ceph 对象网关和 S3 API 的更多信息,请参阅 Ceph 对象网关。
以下 YAML 显示了使用 RadosGW 的示例配置。
带有常规 s3 访问示例的 radosgw
7.3.5. 支持的 AWS 存储后端 复制链接链接已复制到粘贴板!
Red Hat Quay 支持多个 Amazon Web Services (AWS)存储后端:
- S3 storage :对使用 AWS 原生对象存储服务的 AWS S3 存储桶的标准支持。
- STS S3 存储 :对 AWS 安全令牌服务(STS)的支持,以假定 IAM 角色,允许更安全的 S3 操作。
- CloudFront S3 存储 :与 AWS CloudFront 集成,以便在仍使用 AWS S3 作为源时启用内容高可用性分布。
以下小节提供了 YAMLs 示例,以及每个 AWS 存储后端的附加信息。
7.3.5.1. Amazon Web Services S3 存储 复制链接链接已复制到粘贴板!
Red Hat Quay 支持使用 AWS S3 作为对象存储后端。AWS S3 是一个对象存储服务,设计用于数据可用性、可扩展性、安全性和性能。以下 YAML 显示了使用 AWS S3 的示例配置。
AWS S3 示例
7.3.5.2. Amazon Web Services STS S3 存储 复制链接链接已复制到粘贴板!
AWS 安全令牌服务(STS)提供临时的、有有限权限的凭证来访问 AWS 资源,从而通过避免存储长期访问密钥来提高安全性。这在如 OpenShift Container Platform 等环境中很有用,其中可以通过 IAM 角色轮转或管理凭证。
以下 YAML 显示了在 OpenShift Container Platform 配置中使用带有 Red Hat Quay 的 AWS STS 的示例配置。
AWS STS S3 存储示例
7.3.5.3. AWS CloudFront 存储 复制链接链接已复制到粘贴板!
AWS CloudFront 是一个内容交付网络(CDN)服务,该服务缓存并更接近用户分发内容,以提高性能和降低延迟。Red Hat Quay 支持 CloudFrontedS3Storage 驱动程序的 CloudFront,它通过 CloudFront 发行版启用对 S3 存储桶的安全、签名访问。
在为 Red Hat Quay 部署配置 AWS CloudFront 时,请使用以下示例。
在配置 AWS Cloudfront 存储时,必须满足以下条件才能正确使用 Red Hat Quay:
-
您必须设置一个 Origin 路径,该路径 与
config.yaml文件中定义的 Red Hat Quay 的存储路径一致。如果无法满足这一要求,在拉取镜像时会导致403错误。如需更多信息,请参阅 Origin 路径。 - 您必须配置 Bucket 策略和 跨源资源共享(CORS) 策略。
-
您必须设置一个 Origin 路径,该路径 与
CloudFront S3 示例 YAML
bucket 策略示例
7.3.6. Google Cloud Storage 复制链接链接已复制到粘贴板!
Red Hat Quay 支持使用 Google Cloud Storage (GCS)作为对象存储后端。与 Red Hat Quay 一起使用时,它提供了一个云原生解决方案来存储容器镜像和工件。
以下 YAML 显示了使用 Google Cloud Storage 的示例配置。
Google Cloud Storage 示例
- 1
- 可选。从连接时抛出超时异常的时间(以秒为单位)。默认值为
60秒。另外,还包括时间(以秒为单位),直到尝试进行连接时抛出超时异常。默认值为60秒。
7.3.7. Microsoft Azure Blob Storage 复制链接链接已复制到粘贴板!
Red Hat Quay 支持使用 Microsoft Azure Blob Storage 作为对象存储后端。Azure Blob 存储可用于以安全且云原生的方式持久保留容器镜像、元数据和其他工件。
以下 YAML 显示了使用 Azure Storage 的示例配置。
Microsoft Azure Blob Storage 示例
- 1
- Azure 存储的
endpoint_url参数是可选的,可用于 Microsoft Azure Government (MAG)端点。如果留空,则endpoint_url将连接到普通的 Azure 区域。从 Red Hat Quay 3.7 开始,您必须使用 MAG Blob 服务的主端点。使用 MAG Blob 服务的二级端点将导致以下错误:
AuthenticationErrorDetail:Cannot find the claimed account when trying the account whusc8-secondary。
7.3.8. Swift 对象存储 复制链接链接已复制到粘贴板!
Red Hat Quay 支持使用 Red Hat OpenStack Platform (RHOSP) Object Storage 服务 或 Swift 作为对象存储后端。Swift 提供类似 S3 的功能,具有自己的 API 和身份验证机制。
以下 YAML 显示了使用 Swift 存储的示例配置。
Swift 对象存储示例
7.3.9. Nutanix Objects 存储 复制链接链接已复制到粘贴板!
Red Hat Quay 支持 Nutanix Objects Storage 作为对象存储后端。Nutanix Object Storage 适合使用 Nutanix 运行私有云基础架构的组织。
以下 YAML 显示了使用 Nutanix 对象存储的示例配置。
Nutanix Objects 存储示例
7.3.10. IBM Cloud Object Storage 复制链接链接已复制到粘贴板!
Red Hat Quay 支持 IBM Cloud Object Storage 作为对象存储后端。IBM Cloud Object Storage 适用于需要 IBM Cloud 上可扩展和安全存储的云原生应用程序。
以下 YAML 显示了使用 IBM Cloud Object Storage 的示例配置。
IBM Cloud Object Storage
7.3.11. NetApp ONTAP S3 对象存储 复制链接链接已复制到粘贴板!
Red Hat Quay 支持使用 NetApp ONTAP S3 作为对象存储后端。
以下 YAML 显示了使用 NetApp ONTAP S3 的示例配置。
NetApp ONTAP S3 示例
7.3.12. Hitachi Content Platform 对象存储 复制链接链接已复制到粘贴板!
Red Hat Quay 支持使用 Hitachi Content Platform (HCP) 作为对象存储后端。
以下 YAML 显示了使用 HCP 进行对象存储的示例配置。
HCP 存储配置示例
7.4. Redis 配置字段 复制链接链接已复制到粘贴板!
Redis 由 Red Hat Quay 用于支持后端任务和服务,如构建触发器和通知。有一些与 Redis 相关的配置类型:构建日志和用户事件。以下小节详细介绍了每种类型可用的配置字段。
7.4.1. 构建日志 复制链接链接已复制到粘贴板!
构建日志会在镜像构建过程中生成,并为调试和审计提供见解。Red Hat Quay 使用 Redis 来临时存储这些日志,然后再通过用户界面或 API 访问它们。
以下构建日志配置字段可用于 Redis 部署。
| 字段 | 类型 | 描述 |
|---|---|---|
|
BUILDLOGS_REDIS | 对象 | 构建日志缓存的 redis 连接详情。 |
|
.host | 字符串 |
可以访问 Redis 的主机名。 |
|
.port | Number |
可以访问 Redis 的端口。 |
| .password | 字符串 |
用于连接到 Redis 实例的密码。 |
|
.SSL | 布尔值 | 是否启用 Redis 和 Quay 之间的 TLS 通信。默认为false。 |
构建日志配置示例
7.4.2. 用户事件 复制链接链接已复制到粘贴板!
用户事件跟踪跨 Red Hat Quay 的活动,如存储库推送、标签创建、删除和权限更改。这些事件记录在 Redis 中作为活动流的一部分,并可通过 API 或 Web 界面访问。
以下用户事件字段可用于 Redis 部署。
| 字段 | 类型 | 描述 |
|---|---|---|
|
USER_EVENTS_REDIS | 对象 | 用于用户事件处理的 redis 连接详情。 |
|
.host | 字符串 |
可以访问 Redis 的主机名。 |
|
.port | Number |
可以访问 Redis 的端口。 |
| .password | 字符串 |
用于连接到 Redis 实例的密码。 |
| .ssl | 布尔值 | 是否启用 Redis 和 Quay 之间的 TLS 通信。默认为false。 |
|
.ssl_keyfile | 字符串 |
存储要使用的客户端证书的密钥数据库文件的名称。 |
|
.ssl_certfile | 字符串 |
用于指定 SSL 证书的文件路径。 |
|
.ssl_cert_reqs | 字符串 |
用于指定在 SSL/TLS 握手过程中要执行的证书验证级别。 |
|
.ssl_ca_certs | 字符串 |
用于指定包含可信证书颁发机构(CA)证书列表的文件的路径。 |
|
.ssl_ca_data | 字符串 |
用于指定包含 PEM 格式的可信 CA 证书的字符串。 |
|
.ssl_check_hostname | 布尔值 |
在设置到服务器的 SSL/TLS 连接时使用。它指定客户端是否应该检查服务器的 SSL/TLS 证书中的主机名是否与它所连接的服务器的主机名匹配。 |
redis 用户事件示例
第 8 章 自动化配置选项 复制链接链接已复制到粘贴板!
Red Hat Quay 支持各种自动化部署和配置的机制,允许将 Red Hat Quay 集成到 GitOps 和 CI/CD 管道中。通过定义这些选项并使用 API,可以在不使用 UI 的情况下初始化和管理 Red Hat Quay。
由于 Red Hat Quay Operator 通过 configBundleSecret 自定义资源(CR)管理 config.yaml 文件,所以在 OpenShift Container Platform 上预配置 Red Hat Quay 需要管理员使用所需的配置手动创建有效的 config.yaml 文件。然后,此文件必须捆绑到新的 Kubernetes Secret 中,并用于替换 QuayRegistry CR 引用的默认 configBundleSecret CR。这允许在 OpenShift Container Platform 上部署 Red Hat Quay,绕过基于 Web 的配置 UI。如需更多信息,请参阅 部署后修改 QuayRegistry CR。
对于内部 Red Hat Quay 部署,通过手动创建有效的 config.yaml 文件来部署 registry 来进行预配置。
自动化选项适用于需要声明 Red Hat Quay 部署的环境,如断开连接或 air-gapped 集群。
8.1. 自动化的预配置选项 复制链接链接已复制到粘贴板!
Red Hat Quay 提供了配置选项,可让 registry 管理员自动执行早期设置任务和 API 可访问性。这些选项对新部署很有用,并控制如何发出 API 调用。以下选项支持自动化和管理控制。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_USER_INITIALIZE | 布尔值 |
在新部署的 Red Hat Quay registry 中启用初始用户 bootstrap。当在部署前在 注意
与需要现有机构中 OAuth 应用程序的 OAuth 2 访问令牌 生成的所有其他 registry API 调用不同, |
| BROWSER_API_CALLS_XHR_ONLY | 布尔值 |
控制 registry API 是否只接受来自浏览器的调用。要允许基于浏览器的常规访问 API,管理员必须将此字段设置为 |
| SUPER_USERS | 字符串 |
定义管理用户列表或超级用户,其具有对 registry 的完整特权和不受限制的访问权限。在部署前,Red Hat Quay 管理员应该在 |
| FEATURE_USER_CREATION | 布尔值 |
当此字段设置为 |
以下 YAML 展示了推荐的自动化配置:
推荐的自动化配置
第 9 章 组件和功能配置字段 复制链接链接已复制到粘贴板!
Component 和 Feature Configuration 部分描述了可在各种子系统中微调 Red Hat Quay 的可配置字段。这些字段允许管理员自定义 registry 行为,启用或禁用特定功能,并与外部服务和基础架构集成。虽然基本部署不需要,但这些选项支持与安全性、自动化、可扩展性、合规性和性能相关的高级用例。
9.1. 核心配置概述 复制链接链接已复制到粘贴板!
使用这些核心字段配置 registry 的基本行为,包括主机名、协议、身份验证设置等。
9.1.1. registry 品牌和身份字段 复制链接链接已复制到粘贴板!
以下配置字段允许您修改 Red Hat Quay 部署中显示的品牌、身份和联系信息。使用这些字段,您可以通过指定在 UI 中显示的标题、标头、页脚和机构联系人链接来自定义 registry 如何出现在用户。
Red Hat Quay v2 UI 中不提供以下部分。
| 字段 | 类型 | 描述 |
|---|---|---|
| REGISTRY_TITLE | 字符串 |
如果指定,registry 的长格式标题。显示在 Red Hat Quay 部署的前端中,例如,位于您机构的登录页面中。不应超过 35 个字符。 |
| REGISTRY_TITLE_SHORT | 字符串 |
如果指定,registry 的简短格式标题。title 显示在您的机构的不同页面上,例如,作为您组织的 教程 标题。 |
| CONTACT_INFO | 字符串数组 | 如果指定,要在联系页面上显示联系信息。如果只指定了单个联系信息,请联系页脚将直接链接。 |
| [0] | 字符串 |
添加用于发送电子邮件的链接。 |
| [1] | 字符串 |
添加访问 IRC 聊天房的链接。 |
| [2] | 字符串 |
添加一个链接以调用电话号码。 |
| [3] | 字符串 |
添加指向定义的 URL 的链接。 |
| 字段 | 类型 | 描述 |
|---|---|---|
| 品牌 | 对象 | 在 Red Hat Quay UI 中自定义徽标和 URL 的品牌。 |
|
.logo | 字符串 |
主徽标图像 URL.
标头徽标默认为 205x30 PX。Web UI 的屏幕中的 Red Hat Quay 符号上的表单徽标默认为 356.5x39.7 PX。 |
| .footer_img | 字符串 |
UI 页徽标.默认为 144x34 PX. |
| .footer_url | 字符串 |
footer 镜像的链接。 |
| 字段 | 类型 | 描述 |
|---|---|---|
| FOOTER_LINKS | 对象 | 在 Red Hat Quay 的 UI 中启用自定义页脚链接以进行以前的安装。 |
| .TERMS_OF_SERVICE_URL | 字符串 |
用于 on-prem 安装的自定义服务术语。 |
| .PRIVACY_POLICY_URL | 字符串 |
用于 on-prem 安装的自定义隐私策略。 |
| .SECURITY_URL | 字符串 |
用于 on-prem 安装的自定义安全页面。 |
| .ABOUT_URL | 字符串 |
针对 on-prem 安装的自定义页。 |
registry 品牌和身份示例 YAML
9.1.2. SSL/TLS 配置字段 复制链接链接已复制到粘贴板!
本节论述了在 Red Hat Quay 部署中启用和管理 SSL/TLS 加密的可用配置字段。
| 字段 | 类型 | 描述 |
|---|---|---|
| PREFERRED_URL_SCHEME | 字符串 |
|
|
SERVER_HOSTNAME | 字符串 |
可以访问 Red Hat Quay 的 URL,不包括网络协议。 |
| SSL_CIPHERS | 字符串数组 |
如果指定,则要启用和禁用的 nginx 定义的 SSL 密码列表 |
| SSL_PROTOCOLS | 字符串数组 |
如果指定了,nginx 被配置为启用列表中定义的 SSL 协议列表。从列表中删除 SSL 协议会禁用 Red Hat Quay 启动期间的协议。 |
| SESSION_COOKIE_SECURE | 布尔值 |
对于使用 SSL 的所有安装,是否应在会话 Cookie 上设置 |
| EXTERNAL_TLS_TERMINATION | 布尔值 |
如果支持 TLS,则设置为 |
SSL 配置示例 YAML
9.1.3. IPv6 配置字段 复制链接链接已复制到粘贴板!
您可以使用 FEATURE_LISTEN_IP_VERSION 配置字段来指定 Red Hat Quay 应该侦听的 IP 协议系列:IPv4、IPv6 或两者(dual-stack)。在 registry 必须在 IPv6 或双栈网络上运行时,此字段至关重要。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_LISTEN_IP_VERSION | 字符串 |
启用 IPv4、IPv6 或双栈协议系列。必须正确设置此配置字段,否则 Red Hat Quay 无法启动。默认: |
IPv6 示例 YAML
# ... FEATURE_LISTEN_IP_VERSION: dual-stack # ...
# ...
FEATURE_LISTEN_IP_VERSION: dual-stack
# ...
9.1.4. 日志记录和调试变量 复制链接链接已复制到粘贴板!
以下变量控制 Red Hat Quay 日志事件、公开调试信息并与系统健康检查进行交互。这些设置对于对 registry 的故障排除和监控很有用
| 变量 | 类型 | 描述 |
|---|---|---|
| DEBUGLOG | 布尔值 | 是否启用或禁用调试日志。 |
| USERS_DEBUG |
整数. |
用于以明文中调试 LDAP 操作,包括密码。必须与 重要
设置 |
| ALLOW_PULLS_WITHOUT_STRICT_LOGGING | 布尔值 |
如果为 true,则拉取仍然会成功,即使无法写入 pull audit 日志条目。如果数据库处于只读状态,并且需要在此时间段内拉取以继续,这非常有用。 |
| ENABLE_HEALTH_DEBUG_SECRET | 字符串 | 如果指定,可以授予健康端点的 secret,以便在未作为超级用户验证时查看完整的调试信息 |
| HEALTH_CHECKER | 字符串 |
配置的健康检查 |
| FEATURE_AGGREGATED_LOG_COUNT_RETRIEVAL | 布尔值 |
是否允许检索聚合日志计数 |
日志记录和调试示例 YAML
其他资源
9.1.5. registry 状态和系统行为配置字段 复制链接链接已复制到粘贴板!
以下配置字段控制 Red Hat Quay registry 的操作状态及其如何与外部系统交互。这些设置允许管理员将 registry 置于受限只读模式下进行维护,并通过阻止 webhook 的目标特定主机名来强制实施额外的安全性。
| 字段 | 类型 | 描述 |
|---|---|---|
| REGISTRY_STATE | 字符串 |
registry 的状态 |
| WEBHOOK_HOSTNAME_BLACKLIST | 字符串数组 | 验证超过 localhost 时禁止 Webhook 中的主机名集合 |
registry 状态和系统行为示例 YAML
9.2. 用户体验和界面 复制链接链接已复制到粘贴板!
这些字段配置用户如何与 UI 交互,包括品牌、分页、浏览器行为和可访问选项,如 recaptcha。这还涵盖面向用户的性能和显示设置。
9.2.1. Web UI 和用户体验配置字段 复制链接链接已复制到粘贴板!
这些配置字段控制 Red Hat Quay Web 界面的行为和整体用户体验。本节中的选项允许管理员自定义登录行为、vatar 显示、用户自动完成、会话处理和目录可见性。
| 字段 | 类型 | 描述 |
|---|---|---|
| AVATAR_KIND | 字符串 |
要显示的 avatars 的类型,可以生成内联(本地)或 Gravatar (gravatar) |
| FRESH_LOGIN_TIMEOUT | 字符串 |
新登录的时间需要用户重新输入其密码 |
| FEATURE_UI_V2 | 布尔值 | 设置后,允许用户尝试 v2 beta UI 环境。
Default: |
| FEATURE_UI_V2_REPO_SETTINGS | 布尔值 |
当设置为
+ 默认: |
| FEATURE_DIRECT_LOGIN | 布尔值 |
用户是否可以直接登录到 UI |
| FEATURE_PARTIAL_USER_AUTOCOMPLETE | 布尔值 |
如果设置为 true,自动完成功能将应用到部分用户名+ |
| FEATURE_LIBRARY_SUPPORT | 布尔值 |
从 Docker 拉取和推送时是否允许"无命名空间"软件仓库 |
| FEATURE_PERMANENT_SESSIONS | 布尔值 |
会话是永久的 |
| FEATURE_PUBLIC_CATALOG | 布尔值 |
如果设置为 true,则 |
YAML 示例
9.2.1.1. v2 用户界面配置 复制链接链接已复制到粘贴板!
启用 FEATURE_UI_V2 后,您可以在用户界面的当前版本和用户界面的新版本间切换。
- 这个 UI 目前处于 beta 阶段,可能会有变化。在当前状态中,用户只能创建、查看和删除机构、存储库和镜像标签。
- 在旧的 UI 中运行 Red Hat Quay 时,超时会话要求用户在弹出窗口中再次输入密码。使用新的 UI 时,用户会返回主页,需要输入其用户名和密码凭证。这是一个已知问题,将在新 UI 的未来版本中修复。
- 在传统 UI 和新 UI 之间如何报告镜像清单大小的方式存在差异。在传统的 UI 中,镜像清单以兆字节为单位报告。在新 UI 中,Red Hat Quay 使用标准定义 megabyte (MB)来报告镜像清单大小。
9.2.2. 会话超时配置字段 复制链接链接已复制到粘贴板!
以下配置字段依赖于相同名称的 Flask API 配置字段。
不建议更改会话生命周期。管理员应注意设置会话超时时的分配时间。如果设置时间过早,它可能会中断您的工作流。
| 字段 | 类型 | 描述 |
|---|---|---|
| PERMANENT_SESSION_LIFETIME | 整数 |
一个
默认: |
会话超时示例 YAML
# ... PERMANENT_SESSION_LIFETIME: 3000 # ...
# ...
PERMANENT_SESSION_LIFETIME: 3000
# ...
9.3. 用户和访问权限管理 复制链接链接已复制到粘贴板!
使用这些字段配置如何创建、验证和管理用户。这包括超级用户、帐户恢复、特定于应用程序的令牌、登录行为和 LDAP、OAuth 和 OIDC 等外部身份提供程序的设置。
9.3.1. 用户配置字段 复制链接链接已复制到粘贴板!
用户配置字段定义用户帐户在 Red Hat Quay 部署中的行为方式。这些字段允许对用户创建、访问级别、元数据跟踪、恢复选项和命名空间管理进行控制。您还可以强制实施限制,如仅邀请创建或超级用户权限,以匹配组织的管理和安全策略。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_SUPER_USERS | 布尔值 |
是否支持超级用户 |
| FEATURE_USER_CREATION | 布尔值 |
是否可以创建用户(非超级用户) |
| FEATURE_USER_LAST_ACCESSED | 布尔值 |
是否记录用户被访问的时间 |
| FEATURE_USER_LOG_ACCESS | 布尔值 |
如果设置为 true,用户有权访问其命名空间的审计日志 |
| FEATURE_USER_METADATA | 布尔值 |
是否收集和支持用户元数据 |
| FEATURE_USERNAME_CONFIRMATION | 布尔值 |
如果设置为 true,用户可以在通过 OpenID Connect (OIDC)或非数据库内部身份验证供应商(如 LDAP)登录时确认并修改其初始用户名。 |
| FEATURE_USER_RENAME | 布尔值 |
如果设置为 true,用户可以重命名自己的命名空间 |
| FEATURE_INVITE_ONLY_USER_CREATION | 布尔值 |
要创建的用户是否必须被其他用户邀请 |
| FRESH_LOGIN_TIMEOUT | 字符串 |
新登录的时间需要用户重新输入其密码 |
| USERFILES_LOCATION | 字符串 |
放置用户上传文件的存储引擎 ID |
| USERFILES_PATH | 字符串 |
放置用户上传文件的存储的路径 |
| USER_RECOVERY_TOKEN_LIFETIME | 字符串 |
恢复用户帐户的令牌时间长度是有效的 |
| FEATURE_SUPERUSERS_FULL_ACCESS | 布尔值 | 授予超级用户从命名空间中的其他存储库读取、写入和删除它们没有拥有或明确权限的那些存储库的权限。
Default: |
| FEATURE_SUPERUSERS_ORG_CREATION_ONLY | 布尔值 | 是否只允许超级用户创建机构。
Default: |
| FEATURE_RESTRICTED_USERS | 布尔值 |
当使用
Default: |
| RESTRICTED_USERS_WHITELIST | 字符串 |
当使用 |
| GLOBAL_READONLY_SUPER_USERS | 字符串 |
设置后,可授予用户对所有存储库的读取访问权限,无论它们是公共存储库。仅适用于通过 |
用户 YAML 示例
- 1
- 当设置了
RESTRICTED_USERS_WHITELIST字段时,用户也可以从存储库创建机构,即使FEATURE_RESTRICTED_USERS设置为True。其他用户(如user2、user3和user4)仅限于创建机构、读取或写入内容。
9.3.2. 机器人帐户配置字段 复制链接链接已复制到粘贴板!
以下配置字段允许全局禁止机器人帐户创建和交互。
其他资源
| 字段 | 类型 | 描述 |
|---|---|---|
| ROBOTS_DISALLOW | 布尔值 |
当设置为 |
机器人帐户不允许示例 YAML
# ... ROBOTS_DISALLOW: true # ...
# ...
ROBOTS_DISALLOW: true
# ...
9.3.3. LDAP 配置字段 复制链接链接已复制到粘贴板!
以下配置字段允许管理员将 Red Hat Quay 与基于 LDAP 的身份验证系统集成。当 AUTHENTICATION_TYPE 设置为 LDAP 时,Red Hat Quay 可以针对 LDAP 目录验证用户,并支持其他可选功能,如团队同步、超级用户访问控制、受限用户角色和安全连接参数。
本节提供了以下 LDAP 情境的 YAML 示例:
- 基本 LDAP 配置
- LDAP 受限用户配置
- LDAP 超级用户配置
| 字段 | 类型 | 描述 |
|---|---|---|
|
AUTHENTICATION_TYPE | 字符串 |
必须设置为 |
| FEATURE_TEAM_SYNCING | 布尔值 |
是否允许团队成员资格与身份验证引擎中的后备组同步(OIDC、LDAP 或 Keystone)。 |
| FEATURE_NONSUPERUSER_TEAM_SYNCING_SETUP | 布尔值 |
如果启用,非超级用户可设置团队同步。 |
| LDAP_ADMIN_DN | 字符串 | 用于 LDAP 验证的管理 DN。 |
| LDAP_ADMIN_PASSWD | 字符串 | LDAP 验证的 admin 密码。 |
| LDAP_ALLOW_INSECURE_FALLBACK | 布尔值 | 是否允许 LDAP 身份验证的 SSL 不安全回退。 |
| LDAP_BASE_DN | 字符串数组 | 用于 LDAP 身份验证的基本 DN。 |
| LDAP_EMAIL_ATTR | 字符串 | LDAP 身份验证的电子邮件属性。 |
| LDAP_UID_ATTR | 字符串 | LDAP 身份验证的 uid 属性。 |
| LDAP_URI | 字符串 | LDAP URI。 |
| LDAP_USER_FILTER | 字符串 | LDAP 身份验证的用户过滤器。 |
| LDAP_USER_RDN | 字符串数组 | 用于 LDAP 身份验证的用户 RDN。 |
| LDAP_SECONDARY_USER_RDNS | 字符串数组 | 如果用户对象所在的多个机构单元,则提供二级用户相对 DN。 |
| TEAM_RESYNC_STALE_TIME | 字符串 |
如果为团队启用了团队同步,则检查其成员资格和重新同步的频率。 |
| LDAP_SUPERUSER_FILTER | 字符串 |
使用此字段,管理员可以添加或删除超级用户,而无需更新 Red Hat Quay 配置文件并重启其部署。
此字段要求将 |
| LDAP_GLOBAL_READONLY_SUPERUSER_FILTER | 字符串 |
设置后,可授予用户对所有存储库的读取访问权限,无论它们是公共存储库。仅适用于通过 |
| LDAP_RESTRICTED_USER_FILTER | 字符串 |
此字段要求将 |
| FEATURE_RESTRICTED_USERS | 布尔值 |
当设为
Default: |
| LDAP_TIMEOUT | 整数 |
指定 LDAP 操作的时间限制(以秒为单位)。这限制了 LDAP 搜索、绑定或其他操作可以花费的时间。与 |
| LDAP_NETWORK_TIMEOUT | 整数 |
指定与 LDAP 服务器建立连接的时间限制(以秒为单位)。这是 Red Hat Quay 在网络操作期间等待响应的最长时间,类似于 |
基本 LDAP 配置示例 YAML
LDAP 受限用户配置示例 YAML
LDAP 超级用户配置参考 YAML 示例
- 1
- 将指定用户配置为超级用户。
9.3.4. OAuth 配置字段 复制链接链接已复制到粘贴板!
以下字段定义 Red Hat Quay 在使用 OAuth 通过外部身份提供程序进行身份验证时的行为。您可以配置全局 OAuth 选项,如令牌分配和白名单客户端 ID,以及 GitHub 和 Google 的特定于供应商的设置。
| 字段 | 类型 | 描述 |
|---|---|---|
| DIRECT_OAUTH_CLIENTID_WHITELIST | 字符串数组 | 允许在没有用户批准的情况下执行直接 OAuth 批准的 Quay 管理 的应用程序的客户端 ID 列表。 |
| FEATURE_ASSIGN_OAUTH_TOKEN | 布尔值 | 允许机构管理员将 OAuth 令牌分配给其他用户。 |
全局 OAuth 示例 YAML
其他资源
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_GITHUB_LOGIN | 布尔值 |
是否支持 GitHub 登录 |
| GITHUB_LOGIN_CONFIG | 对象 | 使用 GitHub (Enterprise)作为外部登录提供程序的配置。 |
| .ALLOWED_ORGANIZATIONS | 字符串数组 | GitHub (企业)组织的名称,使用 ORG_RESTRICT 选项。 |
| .API_ENDPOINT | 字符串 |
要使用的 GitHub (企业)API 的端点。对于 github.com |
|
.CLIENT_ID | 字符串 |
此 Red Hat Quay 实例的注册客户端 ID;无法与 |
|
.CLIENT_SECRET | 字符串 |
此 Red Hat Quay 实例的注册客户端 secret。 |
|
.GITHUB_ENDPOINT | 字符串 |
GitHub 的端点(Enterprise)。 |
| .ORG_RESTRICT | 布尔值 | 如果为 true,只有机构白名单中的用户才能使用这个供应商登录。 |
GitHub OAth 示例 YAML
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_GOOGLE_LOGIN | 布尔值 |
是否支持 Google 登录。 |
| GOOGLE_LOGIN_CONFIG | 对象 | 使用 Google 进行外部身份验证的配置。 |
|
.CLIENT_ID | 字符串 |
此 Red Hat Quay 实例的注册客户端 ID。 |
|
.CLIENT_SECRET | 字符串 |
此 Red Hat Quay 实例的注册客户端 secret。 |
Google OAuth 示例 YAML
9.3.5. OIDC 配置字段 复制链接链接已复制到粘贴板!
您可以配置 Red Hat Quay,以通过任何兼容 OpenID Connect (OIDC)的身份提供程序验证用户,包括 Azure Entra ID (以前称为 Azure AD)、Okta、Keycloak 等。这些字段定义 OIDC 登录流过程中使用的必要客户端凭证、端点和令牌行为。
| 字段 | 类型 | 描述 |
|---|---|---|
|
<string>_LOGIN_CONFIG | 字符串 |
包含 OIDC 配置设置的父密钥。通常,OIDC 供应商的名称,如 |
|
.CLIENT_ID | 字符串 |
此 Red Hat Quay 实例的注册客户端 ID。 |
|
.CLIENT_SECRET | 字符串 |
此 Red Hat Quay 实例的注册客户端 secret。 |
| .LOGIN_BINDING_FIELD | 字符串 | 当内部授权设置为 LDAP 时使用。Red Hat Quay 读取此参数,并尝试使用此用户名为用户搜索 LDAP 树。如果存在,它会自动创建到该 LDAP 帐户的链接。 |
| .LOGIN_SCOPES | 对象 | 添加 Red Hat Quay 用来与 OIDC 供应商通信的其他范围。 |
| .OIDC_ENDPOINT_CUSTOM_PARAMS | 字符串 |
支持 OIDC 端点上的自定义查询参数。支持以下端点: |
| .OIDC_ISSUER | 字符串 |
允许用户定义签发者进行验证。例如,JWT 令牌容器( |
|
.OIDC_SERVER | 字符串 |
用于身份验证的 OIDC 服务器的地址。 |
| .PREFERRED_USERNAME_CLAIM_NAME | 字符串 | 将首选 username 设置为来自令牌的参数。 |
| .SERVICE_ICON | 字符串 | 更改登录屏幕上的图标。 |
|
.SERVICE_NAME | 字符串 |
要验证的服务名称。 |
| .VERIFIED_EMAIL_CLAIM_NAME | 字符串 | 用于验证用户电子邮件地址的声明名称。 |
| .PREFERRED_GROUP_CLAIM_NAME | 字符串 | OIDC 令牌有效负载中的密钥名称,其中包含用户组成员资格的信息。 |
| .OIDC_DISABLE_USER_ENDPOINT | 布尔值 |
是否允许或拒绝 |
OIDC 示例 YAML
9.3.6. reCAPTCHA 配置字段 复制链接链接已复制到粘贴板!
您可以在 Red Hat Quay 实例中启用 Recaptcha 支持,以帮助保护用户登录和帐户恢复表单被自动化系统滥用。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_RECAPTCHA | 布尔值 |
用户登录和恢复需要 Recaptcha |
| RECAPTCHA_SECRET_KEY | 字符串 | 如果启用了 recaptcha,则 Recaptcha 服务的 secret 键 |
| RECAPTCHA_SITE_KEY | 字符串 | 如果启用了 recaptcha,则 Recaptcha 服务的站点键 |
reCAPTCHA 示例 YAML
# ... FEATURE_RECAPTCHA: true RECAPTCHA_SITE_KEY: "<site_key>" RECAPTCHA_SECRET_KEY: "<secret_key>" # ...
# ...
FEATURE_RECAPTCHA: true
RECAPTCHA_SITE_KEY: "<site_key>"
RECAPTCHA_SECRET_KEY: "<secret_key>"
# ...
9.3.7. JWT 配置字段 复制链接链接已复制到粘贴板!
Red Hat Quay 可以配置为支持使用 JSON Web 令牌(JWT)进行外部身份验证。此集成允许第三方身份提供程序或令牌签发者通过调用处理令牌验证、用户查找和权限查询的特定端点来进行验证和授权用户。
| 字段 | 类型 | 描述 |
|---|---|---|
| JWT_AUTH_ISSUER | 字符串 |
JWT 用户的端点 |
| JWT_GETUSER_ENDPOINT | 字符串 |
JWT 用户的端点 |
| JWT_QUERY_ENDPOINT | 字符串 |
JWT 查询的端点 |
| JWT_VERIFY_ENDPOINT | 字符串 |
JWT 验证的端点 |
JWT 示例 YAML
9.3.8. 应用令牌配置字段 复制链接链接已复制到粘贴板!
特定于应用的令牌允许用户使用基于令牌的凭证通过 Red Hat Quay 进行身份验证。这些字段对于 Docker 等 CLI 工具可能有用。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_APP_SPECIFIC_TOKENS | 布尔值 |
如果启用,用户可以创建令牌以供 Docker CLI |
| APP_SPECIFIC_TOKEN_EXPIRATION | 字符串 |
外部应用令牌的过期时间。 |
| EXPIRED_APP_SPECIFIC_TOKEN_GC | 字符串 |
过期的外部应用程序令牌的持续时间将在垃圾回收前保留 |
应用程序令牌示例 YAML
# ... FEATURE_APP_SPECIFIC_TOKENS: true APP_SPECIFIC_TOKEN_EXPIRATION: "30d" EXPIRED_APP_SPECIFIC_TOKEN_GC: "1d" # ...
# ...
FEATURE_APP_SPECIFIC_TOKENS: true
APP_SPECIFIC_TOKEN_EXPIRATION: "30d"
EXPIRED_APP_SPECIFIC_TOKEN_GC: "1d"
# ...
9.4. 安全和权限 复制链接链接已复制到粘贴板!
本节论述了在 Red Hat Quay 中管理核心安全行为和访问策略的配置字段。
9.4.1. 命名空间和存储库管理配置字段 复制链接链接已复制到粘贴板!
以下配置字段规定了 Red Hat Quay 管理命名空间和存储库的方式,包括自动镜像推送、可见性默认值和速率限制异常期间的行为。
| 字段 | 类型 | 描述 |
|---|---|---|
| DEFAULT_NAMESPACE_MAXIMUM_BUILD_COUNT | Number |
可在命名空间中排队的默认构建的最大数量。 |
| CREATE_PRIVATE_REPO_ON_PUSH | 布尔值 |
通过推送创建的新存储库是否设置为私有可见性 |
| CREATE_NAMESPACE_ON_PUSH | 布尔值 |
新推送到不存在的机构时是否创建它 |
| PUBLIC_NAMESPACES | 字符串数组 | 如果命名空间定义在公共命名空间列表中,则它将在 所有 用户的存储库列表页上显示,无论用户是否是命名空间的成员。通常,这由企业客户用来配置一组"well-known"命名空间。 |
| NON_RATE_LIMITED_NAMESPACES | 字符串数组 |
如果使用 |
| DISABLE_PUSHES | 布尔值 |
禁用将新内容推送到 registry,同时保留所有其他功能。与 |
命名空间和存储库管理示例 YAML
9.4.2. 嵌套存储库配置字段 复制链接链接已复制到粘贴板!
FEATURE_EXTENDED_REPOSITORY_NAMES 属性添加了对嵌套存储库路径名称的支持。此可选配置默认添加到 config.yaml 中。启用允许在仓库名称中使用 /。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_EXTENDED_REPOSITORY_NAMES | 布尔值 |
启用对嵌套存储库的支持 |
嵌套存储库示例 YAML
# ... FEATURE_EXTENDED_REPOSITORY_NAMES: true # ...
# ...
FEATURE_EXTENDED_REPOSITORY_NAMES: true
# ...
9.5. 其他安全配置字段 复制链接链接已复制到粘贴板!
以下配置字段为您的 Red Hat Quay 部署提供额外的安全控制。这些选项允许管理员强制验证实践,控制对内容的匿名访问,需要团队邀请,并为具有增强安全要求的环境启用 FIPS 兼容加密功能。
| 功能 | 类型 | 描述 |
|---|---|---|
| FEATURE_REQUIRE_TEAM_INVITE | 布尔值 |
将用户添加到团队时是否需要邀请 |
| FEATURE_REQUIRE_ENCRYPTED_BASIC_AUTH | 布尔值 |
非加密密码(与加密令牌相反)可用于基本身份验证 |
| FEATURE_ANONYMOUS_ACCESS | 布尔值 |
是否允许匿名用户浏览和拉取公共存储库 |
| FEATURE_FIPS | 布尔值 |
如果设置为 true,Red Hat Quay 将使用 FIPS 兼容哈希功能运行 |
其他安全示例 YAML
9.6. 速率限制和性能配置字段 复制链接链接已复制到粘贴板!
以下字段控制 Red Hat Quay 部署的速率限制和性能相关行为。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_RATE_LIMITS | 布尔值 |
是否在 API 和 registry 端点上启用速率限值。将 FEATURE_RATE_LIMITS 设置为 |
| PROMETHEUS_NAMESPACE | 字符串 |
适用于所有公开的 Prometheus metrics 的前缀 |
速率限制和性能示例 YAML
# ... FEATURE_RATE_LIMITS: false PROMETHEUS_NAMESPACE: quay # ...
# ...
FEATURE_RATE_LIMITS: false
PROMETHEUS_NAMESPACE: quay
# ...
9.7. 搜索配置字段 复制链接链接已复制到粘贴板!
以下配置字段定义了如何在 Red Hat Quay 用户界面中分页搜索结果。
| 字段 | 类型 | 描述 |
|---|---|---|
| SEARCH_MAX_RESULT_PAGE_COUNT | Number |
用户在搜索限制前可以分页的最大页面数 |
| SEARCH_RESULTS_PER_PAGE | Number |
通过搜索页面返回的结果数 |
搜索 YAML 示例
# ... SEARCH_MAX_RESULT_PAGE_COUNT: 10 SEARCH_RESULTS_PER_PAGE: 10 # ...
# ...
SEARCH_MAX_RESULT_PAGE_COUNT: 10
SEARCH_RESULTS_PER_PAGE: 10
# ...
9.8. 存储和数据管理 复制链接链接已复制到粘贴板!
本节论述了管理 Red Hat Quay 存储、管理和审计数据的配置字段。
9.8.1. 镜像存储功能 复制链接链接已复制到粘贴板!
Red Hat Quay 支持镜像存储功能,在管理容器镜像数据方面增强可扩展性、弹性和灵活性。这些功能允许 Red Hat Quay 镜像存储库、通过 NGINX 进行代理存储访问,并在多个存储引擎间复制数据。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_REPO_MIRROR | 布尔值 |
如果设置为 true,请启用存储库镜像。 |
| FEATURE_PROXY_STORAGE | 布尔值 |
是否通过 NGINX 代理存储中的所有直接下载 URL。 |
| FEATURE_STORAGE_REPLICATION | 布尔值 |
是否在存储引擎之间自动复制。 |
镜像存储示例 YAML
# ... FEATURE_REPO_MIRROR: true FEATURE_PROXY_STORAGE: false FEATURE_STORAGE_REPLICATION: true # ...
# ...
FEATURE_REPO_MIRROR: true
FEATURE_PROXY_STORAGE: false
FEATURE_STORAGE_REPLICATION: true
# ...
9.8.2. 操作日志存储配置字段 复制链接链接已复制到粘贴板!
Red Hat Quay 维护一个详细的操作日志,用于跟踪用户和系统活动,包括存储库事件、身份验证操作和镜像操作。默认情况下,此日志数据存储在数据库中,但管理员可以配置其部署,以导出或将日志转发到 Elasticsearch 或 Splunk 等外部系统,以进行高级分析、审计或合规。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_LOG_EXPORT | 布尔值 |
是否允许导出操作日志。 |
| LOGS_MODEL | 字符串 |
指定处理日志数据的首选方法。 |
| LOGS_MODEL_CONFIG | 对象 | 操作日志的日志模型配置。 |
| ALLOW_WITHOUT_STRICT_LOGGING | 布尔值 |
当设置为 |
操作日志存储示例 YAML
9.8.2.1. 操作日志轮转和归档配置 复制链接链接已复制到粘贴板!
本节论述了与 Red Hat Quay 中操作日志轮转和归档相关的配置字段。启用后,可以将旧日志自动轮转并归档到指定的存储位置,有助于有效地管理日志保留和存储利用率。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_ACTION_LOG_ROTATION | 布尔值 |
启用日志轮转和归档将将所有超过 30 天的日志移到存储中。 |
| ACTION_LOG_ARCHIVE_LOCATION | 字符串 |
如果启用了操作日志归档,则要放置归档数据的存储引擎。 |
| ACTION_LOG_ARCHIVE_PATH | 字符串 |
如果启用了操作日志归档,则要放置 |
| ACTION_LOG_ROTATION_THRESHOLD | 字符串 |
轮转日志的时间间隔。 |
操作日志轮转和归档 YAML 示例
9.8.2.2. 操作日志审计日志配置 复制链接链接已复制到粘贴板!
本节介绍 Red Hat Quay 中审计日志记录的配置字段。启用后,审计日志记录会跟踪详细的用户活动,如 UI 登录、注销和常规用户 Docker 登录、机器人帐户和基于令牌的帐户。
| 字段 | 类型 | 描述 |
|---|---|---|
| ACTION_LOG_AUDIT_LOGINS | 布尔值 |
当设置为 |
审计日志配置示例 YAML
# ... ACTION_LOG_AUDIT_LOGINS: true # ...
# ...
ACTION_LOG_AUDIT_LOGINS: true
# ...
9.8.3. Elasticsearch 配置字段 复制链接链接已复制到粘贴板!
使用以下配置字段将 Red Hat Quay 与外部 Elasticsearch 服务集成。这可让存储和查询结构化数据,如操作日志、存储库事件和其他内部数据库之外的其他操作记录。
| 字段 | 类型 | 描述 |
|---|---|---|
| LOGS_MODEL_CONFIG.elasticsearch_config.access_key | 字符串 |
Elasticsearch 用户(或用于 AWS ES 的 IAM 密钥)。 |
| .elasticsearch_config.host | 字符串 |
Elasticsearch 集群端点。 |
| .elasticsearch_config.index_prefix | 字符串 |
Elasticsearch 索引的前缀。 |
| .elasticsearch_config.index_settings | 对象 | Elasticsearch 的索引设置。 |
| LOGS_MODEL_CONFIG.elasticsearch_config.use_ssl | 布尔值 |
是否对 Elasticsearch 使用 SSL。 |
| .elasticsearch_config.secret_key | 字符串 |
Elasticsearch 密码(或 AWS ES 的 IAM secret)。 |
| .elasticsearch_config.aws_region | 字符串 |
AWS region. |
| .elasticsearch_config.port | Number |
Elasticsearch 集群的端口。 |
| .kinesis_stream_config.aws_secret_key | 字符串 |
AWS secret key。 |
| .kinesis_stream_config.stream_name | 字符串 |
AWS Kinesis 流将操作日志发送到。 |
| .kinesis_stream_config.aws_access_key | 字符串 |
AWS access key。 |
| .kinesis_stream_config.retries | Number |
单个请求重试尝试的最大数量。 |
| .kinesis_stream_config.read_timeout | Number |
读取超时(以秒为单位)。 |
| .kinesis_stream_config.max_pool_connections | Number |
池中的最大连接数。 |
| .kinesis_stream_config.aws_region | 字符串 |
AWS region. |
| .kinesis_stream_config.connect_timeout | Number |
连接超时(以秒为单位)。 |
| .producer | 字符串 |
logs producer type. |
| .kafka_config.topic | 字符串 |
用于发布日志条目的 Kafka 主题。 |
| .kafka_config.bootstrap_servers | Array | 用于引导客户端的 Kafka 代理列表。 |
| .kafka_config.max_block_seconds | Number |
在 |
Elasticsearch YAML 示例
9.8.3.1. Splunk 配置字段 复制链接链接已复制到粘贴板!
使用以下字段配置 Red Hat Quay,将操作日志导出到 Splunk 端点。此配置允许将审计和事件日志发送到外部 Splunk 服务器,以进行集中分析、搜索和长期存储。
| 字段 | 类型 | 描述 |
|---|---|---|
| producer | 字符串 |
在将 Splunk 配置为 |
| splunk_config | 对象 | Splunk 操作日志或 Splunk 集群配置的日志模型配置。 |
| .host | 字符串 | Splunk 集群端点。 |
| .port | 整数 | Splunk 管理集群端点的端口号。 |
| .bearer_token | 字符串 | 用于通过 Splunk 进行身份验证的 bearer 令牌。 |
| .verify_ssl | 布尔值 |
为 HTTPS 连接启用( |
| .index_prefix | 字符串 | Splunk 使用的索引前缀。 |
| .ssl_ca_path | 字符串 |
到包含用于 SSL 验证的证书颁发机构(CA)的 |
Splunk 配置示例 YAML
9.8.3.1.1. Splunk HEC 配置字段 复制链接链接已复制到粘贴板!
在为 Red Hat Quay 配置 Splunk HTTP 事件收集器(HEC)时,可以使用以下字段。
| 字段 | 类型 | 描述 |
|---|---|---|
| producer | 字符串 |
在配置 Splunk HTTP 事件收集器(HEC)时,必须设置为 mvapich |
| splunk_hec_config | 对象 | Splunk HTTP 事件收集器操作日志的日志模型配置。 |
| .host | 字符串 | Splunk 集群端点。 |
| .port | 整数 | Splunk 管理集群端点端口。 |
| .hec_token | 字符串 | 用于使用 Splunk 进行身份验证的 HEC 令牌。 |
| .url_scheme | 字符串 |
用于访问 Splunk 服务的 URL 方案。如果 Splunk 位于 SSL/TLS 之后,请使用 |
| .verify_ssl | 布尔值 |
为 HTTPS 连接启用( |
| .index | 字符串 | 用于日志存储的 Splunk 索引。 |
| .splunk_host | 字符串 | 要分配给日志记录事件的主机名。 |
| .splunk_sourcetype | 字符串 |
与事件关联的 Splunk |
Splunk HEC 示例 YAML
9.9. 构建和自动化 复制链接链接已复制到粘贴板!
本节概述了在 Red Hat Quay 中管理自动构建的配置选项。这些设置控制如何触发、处理和存储 Dockerfile 构建,以及管理和访问构建日志的方式。
您可以使用这些字段来:
- 启用或禁用源存储库中的自动构建。
- 配置构建管理器的行为和资源管理。
- 控制对构建日志的访问,并保留构建日志,以满足审核或调试的目的。
这些选项可帮助您简化 CI/CD 管道,强制执行构建策略,并保持对 registry 中的构建历史记录的可见性。
其他资源
9.9.1. Dockerfile 构建触发器字段 复制链接链接已复制到粘贴板!
本节介绍了用于从 Dockerfile 和源代码存储库中在 Red Hat Quay 中启用和管理自动构建的配置字段。这些字段允许您定义构建行为,启用或禁用 GitHub、GitLab 和 Bitbucket 触发器的支持,并为每个 SCM 提供程序提供 OAuth 凭证和端点。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_BUILD_SUPPORT | 布尔值 |
是否支持 Dockerfile 构建。 |
| SUCCESSIVE_TRIGGER_FAILURE_DISABLE_THRESHOLD | Number |
如果没有设置 |
| SUCCESSIVE_TRIGGER_INTERNAL_ERROR_DISABLE_THRESHOLD | Number |
如果没有设置 |
Dockerfile 构建支持示例 YAML
# ... FEATURE_BUILD_SUPPORT: true SUCCESSIVE_TRIGGER_FAILURE_DISABLE_THRESHOLD: 100 SUCCESSIVE_TRIGGER_INTERNAL_ERROR_DISABLE_THRESHOLD: 5 # ...
# ...
FEATURE_BUILD_SUPPORT: true
SUCCESSIVE_TRIGGER_FAILURE_DISABLE_THRESHOLD: 100
SUCCESSIVE_TRIGGER_INTERNAL_ERROR_DISABLE_THRESHOLD: 5
# ...
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_GITHUB_BUILD | 布尔值 |
是否支持 GitHub 构建触发器。 |
| GITHUB_TRIGGER_CONFIG | 对象 | 使用 GitHub Enterprise 进行构建触发器的配置。 |
|
.GITHUB_ENDPOINT | 字符串 |
GitHub Enterprise 的端点。 |
| .API_ENDPOINT | 字符串 |
要使用的 GitHub Enterprise API 的端点。对于 |
|
.CLIENT_ID | 字符串 |
此 Red Hat Quay 实例的注册客户端 ID;这不能与 |
|
.CLIENT_SECRET | 字符串 | 此 Red Hat Quay 实例的注册客户端 secret。 |
GitHub 构建触发器 YAML 示例
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_BITBUCKET_BUILD | 布尔值 |
是否支持 Bitbucket 构建触发器。 |
| BITBUCKET_TRIGGER_CONFIG | 对象 | 将 BitBucket 用于构建触发器的配置。 |
|
.CONSUMER_KEY | 字符串 | 此 Red Hat Quay 实例注册的消费者密钥(客户端 ID)。 |
|
.CONSUMER_SECRET | 字符串 | 此 Red Hat Quay 实例注册的消费者 secret (客户端 secret)。 |
Bitbucket 构建会触发 YAML 示例
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_GITLAB_BUILD | 布尔值 |
是否支持 GitLab 构建触发器。 |
| GITLAB_TRIGGER_CONFIG | 对象 | 使用 Gitlab 进行构建触发器的配置。 |
|
.GITLAB_ENDPOINT | 字符串 | 运行 Gitlab Enterprise 的端点。 |
|
.CLIENT_ID | 字符串 | 此 Red Hat Quay 实例的注册客户端 ID。 |
|
.CLIENT_SECRET | 字符串 | 此 Red Hat Quay 实例的注册客户端 secret。 |
GitLab 构建会触发 YAML 示例
9.9.2. 构建管理器配置字段 复制链接链接已复制到粘贴板!
以下配置字段控制 Red Hat Quay 的构建管理器组件如何编配和管理容器镜像构建。这包括 Redis coordination、executor 后端(如 Kubernetes 或 EC2、构建器镜像配置和高级调度和重试策略)的设置。
必须配置这些字段,以符合您的基础架构环境和工作负载要求。
| 字段 | 类型 | 描述 |
|---|---|---|
| ALLOWED_WORKER_COUNT | 字符串 |
定义每个 Red Hat Quay pod 实例化多少个 Build Workers。通常设置为 |
| ORCHESTRATOR_PREFIX | 字符串 | 定义要添加到所有 Redis 密钥的唯一前缀。这可用于将 Orchestrator 值与其他 Redis 键隔离。 |
| REDIS_HOST | 对象 | Redis 服务的主机名。 |
| REDIS_PASSWORD | 字符串 | 要在 Redis 服务中进行身份验证的密码。 |
| REDIS_SSL | 布尔值 | 定义 Redis 连接是否使用 SSL/TLS。 |
| REDIS_SKIP_KEYSPACE_EVENT_SETUP | 布尔值 |
默认情况下,Red Hat Quay 不会在运行时设置密钥事件所需的 keyspace 事件。为此,请将 |
| EXECUTOR | 字符串 |
启动此类型的可执行文件的定义。有效值为 |
| BUILDER_NAMESPACE | 字符串 | 将在其中进行 Red Hat Quay 构建的 Kubernetes 命名空间。 |
| K8S_API_SERVER | 对象 | 构建将在其中进行的 OpenShift Container Platform 集群的 API 服务器的主机名。 |
| K8S_API_TLS_CA | 对象 |
构建集群 CA 证书的 |
| KUBERNETES_DISTRIBUTION | 字符串 |
指明正在使用的 Kubernetes 类型。有效值为 |
| CONTAINER_* | 对象 |
定义每个构建 Pod 的资源请求和限值。 |
| NODE_SELECTOR_* | 对象 |
定义应调度 |
| CONTAINER_RUNTIME | 对象 |
指定 Builder 是否应该运行 |
| SERVICE_ACCOUNT_NAME/SERVICE_ACCOUNT_TOKEN | 对象 |
定义 |
| QUAY_USERNAME/QUAY_PASSWORD | 对象 |
定义拉取在 |
| WORKER_IMAGE | 对象 | Red Hat Quay Builder 镜像的镜像引用。registry.redhat.io/quay/quay-builder |
| WORKER_TAG | 对象 | Builder 镜像标签。最新版本为 3.14。 |
| BUILDER_VM_CONTAINER_IMAGE | 对象 |
对包含运行每个 Red Hat Quay Build. ( |
| SETUP_TIME | 字符串 |
指定构建尚未通过 Build Manager 注册自己时超时的秒数。默认值为 |
| MINIMUM_RETRY_THRESHOLD | 字符串 |
此设置用于多个可执行文件。它指示在选择其他可执行文件前尝试启动构建的次数。设置为 |
| SSH_AUTHORIZED_KEYS | 对象 |
|
构建管理器配置字段
9.9.3. 构建日志配置字段 复制链接链接已复制到粘贴板!
本节论述了在 Red Hat Quay 中管理构建日志的可用配置字段。这些设置决定了构建日志的存档、可以访问它们的位置,以及它们的存储方式。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_READER_BUILD_LOGS | 布尔值 |
如果设置为 true,则构建日志可以被有权访问存储库的 |
| LOG_ARCHIVE_LOCATION | 字符串 |
存储位置,在 |
| LOG_ARCHIVE_PATH | 字符串 |
配置的存储引擎下的路径,其中将归档的构建日志放在 |
构建日志示例 YAML
# ... FEATURE_READER_BUILD_LOGS: true LOG_ARCHIVE_LOCATION: s3_us_east LOG_ARCHIVE_PATH: archives/buildlogs # ...
# ...
FEATURE_READER_BUILD_LOGS: true
LOG_ARCHIVE_LOCATION: s3_us_east
LOG_ARCHIVE_PATH: archives/buildlogs
# ...
9.10. 标签和镜像管理 复制链接链接已复制到粘贴板!
本节论述了控制如何在 Red Hat Quay 中管理标签和镜像的配置字段。这些设置有助于自动进行镜像清理、管理存储库镜像,并通过缓存提高性能。
您可以使用这些字段来:
- 为未标记或过时的镜像定义过期策略。
- 启用并调度外部存储库镜像到 registry。
- 利用模型缓存来优化标签和存储库操作的性能。
这些选项有助于维护最新的镜像 registry 环境。
9.10.1. 标签过期配置字段 复制链接链接已复制到粘贴板!
以下配置选项可用于自动标记过期和垃圾收集。这些功能通过启用根据定义的策略清理未使用或过期的标签,从而帮助管理存储使用情况。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_GARBAGE_COLLECTION | 布尔值 |
是否启用垃圾回收存储库。 |
|
TAG_EXPIRATION_OPTIONS | 字符串数组 |
如果启用,用户可以选择在其命名空间中过期标签的选项。 |
|
DEFAULT_TAG_EXPIRATION | 字符串 |
默认可配置的时间时间用于时间机器。 |
| FEATURE_CHANGE_TAG_EXPIRATION | 布尔值 |
是否允许用户和机构更改其命名空间中标签过期时间。 |
| FEATURE_AUTO_PRUNE | 布尔值 |
当设置为 |
| NOTIFICATION_TASK_RUN_MINIMUM_INTERVAL_MINUTES | 整数 |
间隔(以分钟为单位),定义过期镜像重新运行通知的频率。 |
| DEFAULT_NAMESPACE_AUTOPRUNE_POLICY | 对象 | 默认机构范围的自动修剪策略。 |
| .method: number_of_tags | 对象 | 选项指定要保留的标签数的选项。 |
| .value: <integer> | 整数 |
与 方法一起使用时: number_of_tags,表示要保留的标签数。
例如,若要保留两个标签,请指定 |
| .creation_date | 对象 | 选项指定保留标签的持续时间。 |
| .value: <integer> | 整数 |
与 creation_date 一起使用时,表示保留标签的时间。
可以设置为秒( |
| AUTO_PRUNING_DEFAULT_POLICY_POLL_PERIOD | 整数 | 自动修剪 worker 在 registry 级别运行的时间。默认情况下,它被设置为每天运行一次(每 24 小时一次)。值必须以秒为单位。 |
| FEATURE_IMAGE_EXPIRY_TRIGGER | 布尔值 |
允许用户在镜像过期上设置通知。 |
标签过期示例 YAML 示例
- 1
- 指定要保留的十个标签。
通过创建日期示例 YAML 自动修剪策略
# ... DEFAULT_NAMESPACE_AUTOPRUNE_POLICY: method: creation_date value: 1y # ...
# ...
DEFAULT_NAMESPACE_AUTOPRUNE_POLICY:
method: creation_date
value: 1y
# ...
- 1
- 指定要在创建日期后的一年内修剪的标签。
9.10.2. 镜像配置字段 复制链接链接已复制到粘贴板!
Red Hat Quay 中的镜像可启用自动同步存储库与上游源。此功能可用于维护远程容器镜像的本地镜像,确保在断开连接的环境中可用性或通过缓存提高性能。
其他信息
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_REPO_MIRROR | 布尔值 |
启用或禁用存储库镜像 |
| REPO_MIRROR_INTERVAL | Number |
检查存储库镜像候选间隔的秒数 |
| REPO_MIRROR_SERVER_HOSTNAME | 字符串 |
替换 |
| REPO_MIRROR_TLS_VERIFY | 布尔值 |
在镜像过程中需要 HTTPS 并验证 Quay registry 的证书。 |
| REPO_MIRROR_ROLLBACK | 布尔值 |
当设置为
默认 : |
镜像配置示例 YAML
9.10.3. ModelCache 配置字段 复制链接链接已复制到粘贴板!
ModelCache 是 Red Hat Quay 用来存储访问的数据并减少数据库负载的缓存机制。Quay 支持多种缓存后端,包括默认 Memcache,以及 Redis 和 Redis Cluster。
- memcache (默认):不需要额外的配置。
- Redis: 可以配置为单个实例,也可以使用只读副本。
- Redis 集群 :为大型部署提供高可用性和分片。
| 字段 | 类型 | 描述 |
|---|---|---|
| DATA_MODEL_CACHE_CONFIG.engine | 字符串 |
缓存后端引擎。 |
| .redis_config.primary.host | 字符串 |
使用 |
| .redis_config.primary.port | Number | 主 Redis 实例使用的端口。 |
| .redis_config.primary.password | 字符串 |
使用主 Redis 实例进行身份验证的密码。仅在 |
| .redis_config.primary.ssl | 布尔值 | 是否将 SSL/TLS 用于主 Redis 连接。 |
| .redis_config.startup_nodes | Map 数组 |
用于 |
| redis_config.password | 字符串 |
用于与 Redis 集群进行身份验证的密码。如果 |
| .redis_config.read_from_replicas | 布尔值 | 是否允许从 Redis 集群副本读取操作。 |
| .redis_config.skip_full_coverage_check | 布尔值 | 如果设置为 true,则跳过 Redis 集群的完整覆盖范围检查。 |
| .redis_config.ssl | 布尔值 | 是否将 SSL/TLS 用于 Redis 集群通信。 |
| .replica.host | 字符串 | Redis 副本实例的主机名。可选。 |
| .replica.port | Number | Redis 副本实例使用的端口。 |
| .replica.password | 字符串 |
Redis 副本的密码。如果 |
| .replica.ssl | 布尔值 | 是否将 SSL/TLS 用于 Redis 副本连接。 |
带有可选副本示例 YAML 的单一 Redis
集群 Redis 示例 YAML
9.11. 扫描程序和元数据 复制链接链接已复制到粘贴板!
本节介绍了与 Red Hat Quay 中安全扫描、元数据和工件关系相关的配置字段。
这些设置可通过允许 Red Hat Quay 来提高可见性和安全性:
- 与漏洞扫描程序集成,以评估已知 CVE 的容器镜像。
- 通过存储在 registry 中的模型卡呈现 AI/ML 模型元数据。
- 使用 Referrers API 来公开容器工件之间的关系,并与 OCI 工件规格保持一致。
这些功能一起有助于改进软件供应链透明性、实施安全策略并支持新兴元数据驱动的工作流。
9.11.1. Clair 安全扫描程序配置字段 复制链接链接已复制到粘贴板!
Red Hat Quay 可以使用 Clair 安全扫描程序来检测容器镜像中的漏洞。这些配置字段控制扫描程序是如何启用的、它会索引新内容、使用端点的频率以及通知的处理方式。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_SECURITY_SCANNER | 布尔值 |
启用或禁用安全扫描程序 |
| FEATURE_SECURITY_NOTIFICATIONS | 布尔值 |
如果启用了安全扫描程序,请打开或关闭安全通知 |
| SECURITY_SCANNER_V4_REINDEX_THRESHOLD | 字符串 |
此参数用于确定在重新索引后重新索引清单之前要等待的最短时间(以秒为单位)。数据从 manifestsecuritystatus 表中的 |
| SECURITY_SCANNER_V4_ENDPOINT | 字符串 |
V4 安全扫描程序的端点 |
| SECURITY_SCANNER_V4_PSK | 字符串 | 为 Clair 生成的预共享密钥(PSK) |
| SECURITY_SCANNER_ENDPOINT | 字符串 |
V2 安全扫描程序的端点 |
| SECURITY_SCANNER_INDEXING_INTERVAL | 整数 |
此参数用于确定安全扫描程序索引间隔之间的秒数。触发索引时,Red Hat Quay 将查询其数据库以获取需要由 Clair 索引的清单。这包括还没有索引的清单,以及之前失败的索引的清单。 |
| FEATURE_SECURITY_SCANNER_NOTIFY_ON_NEW_INDEX | 布尔值 |
是否允许向新推送发送有关漏洞的通知。 |
| SECURITY_SCANNER_V4_MANIFEST_CLEANUP | 布尔值 |
Red Hat Quay 垃圾回收程序是否移除不由其他标签或清单引用的清单。 |
| NOTIFICATION_MIN_SEVERITY_ON_NEW_INDEX | 字符串 |
为检测到的漏洞上的新通知设置最小安全级别。避免在首次索引后创建大量通知。如果没有定义,则默认为 |
| SECURITY_SCANNER_V4_INDEX_MAX_LAYER_SIZE | 字符串 |
索引允许的最大层大小。如果层大小超过配置的大小,Red Hat Quay UI 会返回 |
安全扫描程序 YAML 配置
- 1
- 建议的最大值为
10G。
9.11.1.1. 使用 Clair v4 重新索引 复制链接链接已复制到粘贴板!
当 Clair v4 索引清单时,结果应该是确定的。例如,同一清单应生成相同的索引报告。在更改扫描程序前,这是 true,因为使用不同的扫描程序会在报告中生成与特定清单相关的不同信息。因此,Clair v4 会公开索引引擎(/indexer/api/v1/index_state)的状态表示,以确定扫描程序配置是否已更改。
Red Hat Quay 通过在解析到 Quay 数据库时将其保存到索引报告来利用此索引状态。如果此状态自之前扫描后更改了,Red Hat Quay 会在定期索引过程中尝试重新索引该清单。
默认情况下,此参数被设置为 30 秒。如果他们希望索引过程更频繁地运行,用户可能会缩短时间,例如,如果他们不希望等待 30 秒才能在推送新标签后看到安全扫描结果。如果用户希望将请求模式更多地控制到 Clair,以及在 Red Hat Quay 数据库上执行的数据库操作模式,用户也可以更改该参数。
9.11.2. 模型卡渲染配置字段 复制链接链接已复制到粘贴板!
Red Hat Quay 支持呈现模型卡(机器学习工作流中使用的元数据文档形式),以提高与 OCI 兼容镜像中与模型相关的内容的可见性和管理。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_UI_MODELCARD | 布尔值 |
在 UI 中启用 Model Card image 选项卡。默认值为 |
| UI_MODELCARD_ARTIFACT_TYPE | 字符串 | 定义模型卡工件类型。 |
| UI_MODELCARD_ANNOTATION | 对象 | 此可选字段定义存储在 OCI 镜像中的模型卡的层注解。 |
| UI_MODELCARD_LAYER_ANNOTATION | 对象 | 此可选字段定义存储在 OCI 镜像中的模型卡的层注解。 |
模型卡示例 YAML
9.11.3. 开放容器计划引用器 API 配置字段 复制链接链接已复制到粘贴板!
开放容器项目(OCI)引用器 API 有助于检索和管理引用者有助于改进容器镜像管理。
其他信息
| 字段 | 类型 | Description |
|---|---|---|
| FEATURE_REFERRERS_API | 布尔值 | 启用 OCI 1.1 的引用 API。 |
OCI 引用启用示例 YAML
# ... FEATURE_REFERRERS_API: True # ...
# ...
FEATURE_REFERRERS_API: True
# ...
9.12. 配额管理和代理缓存功能 复制链接链接已复制到粘贴板!
本节概述了与强制存储限制相关的配置字段,并通过代理缓存提高镜像可用性。
这些功能可帮助 registry 管理员:
- 控制组织和用户使用什么可配置的配额。
- 通过代理缓存在本地缓存远程内容来提高对上游镜像的访问。
- 在分布式环境中监控和管理资源消耗和可用性。
这些功能一起确保管理容器镜像工作流的性能、管理和弹性。
其他资源
9.12.1. 配额管理配置字段 复制链接链接已复制到粘贴板!
以下配置字段在 Red Hat Quay 中启用和自定义配额管理功能。配额管理可帮助管理员在机构级别强制实施存储使用策略,方法是允许它们设置用量限制、计算 blob 大小和控制标签删除行为。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_QUOTA_MANAGEMENT | 布尔值 | 为配额管理功能启用配置、缓存和验证。
Default: |
| DEFAULT_SYSTEM_REJECT_QUOTA_BYTES | 字符串 | 启用系统默认配额拒绝所有机构的字节允许。 默认情况下,不设置任何限制。 |
| QUOTA_BACKFILL | 布尔值 | 启用配额回填 worker 来计算预先存在的 Blob 的大小。
默认 : |
| QUOTA_TOTAL_DELAY_SECONDS | 字符串 | 启动配额回填的时间延迟。滚动部署可能会导致总数不正确。此字段 必须设置为 比滚动部署完成的时间更长的时间。
默认 : |
| PERMANENTLY_DELETE_TAGS | 布尔值 | 启用与从时间窗中删除标签相关的功能。
默认 : |
| RESET_CHILD_MANIFEST_EXPIRATION | 布尔值 |
重置以子清单为目标的临时标签过期。将此功能设置为
默认 : |
配额管理示例 YAML
9.12.2. 代理缓存配置字段 复制链接链接已复制到粘贴板!
Red Hat Quay 中的代理缓存配置可让 Red Hat Quay 作为上游容器 registry 的 pull-through 缓存。启用 FEATURE_PROXY_CACHE 时,Red Hat Quay 可以缓存从外部 registry 中拉取的镜像,从而减少带宽消耗并改进镜像检索速度。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_PROXY_CACHE | 布尔值 | 启用 Red Hat Quay 作为上游 registry 的拉取(pull)缓存。
默认 : |
代理缓存示例 YAML
# ... FEATURE_PROXY_CACHE: true # ...
# ...
FEATURE_PROXY_CACHE: true
# ...
9.13. QuayIntegration 配置字段 复制链接链接已复制到粘贴板!
QuayIntegration 自定义资源启用 OpenShift Container Platform 集群和 Red Hat Quay registry 实例之间的集成。
| Name | 描述 | 模式 |
|---|---|---|
|
allowlistNamespaces | 要包含的命名空间列表。 | Array |
|
clusterid | 与此集群关联的 ID。 | 字符串 |
|
credentialsSecret.key | 包含与 Quay registry 通信的凭证的 secret。 | 对象 |
|
denylistNamespaces | 要排除的命名空间列表。 | Array |
|
insecureRegistry | 是否将 TLS 验证跳过到 Quay registry | 布尔值 |
|
quayHostname | Quay registry 的主机名。 | 字符串 |
|
scheduledImageStreamImport | 是否启用镜像流导入。 | 布尔值 |
QuayIntegration 示例 CR
9.14. 邮件配置字段 复制链接链接已复制到粘贴板!
要启用来自 Red Hat Quay 实例的电子邮件通知,如帐户确认、密码重置和安全警报。这些设置允许 Red Hat Quay 连接到您的 SMTP 服务器,并代表您的 registry 发送出站消息。
| 字段 | 类型 | 描述 |
|---|---|---|
| FEATURE_MAILING | 布尔值 |
是否启用电子邮件 |
| MAIL_DEFAULT_SENDER | 字符串 |
如果指定了,当 Red Hat Quay 发送电子邮件时,电子邮件地址用作 |
| MAIL_PASSWORD | 字符串 | 发送电子邮件时要使用的 SMTP 密码 |
| MAIL_PORT | Number | 要使用的 SMTP 端口。如果没有指定,则默认为 587。 |
| MAIL_SERVER | 字符串 |
用于发送电子邮件的 SMTP 服务器。仅在将 FEATURE_MAILING 设置为 true 时才需要。 |
| MAIL_USERNAME | 字符串 | 发送电子邮件时要使用的 SMTP 用户名 |
| MAIL_USE_TLS | 布尔值 |
如果指定,是否使用 TLS 发送电子邮件 |
邮件 YAML 示例
第 10 章 环境变量配置 复制链接链接已复制到粘贴板!
Red Hat Quay 支持一组有限的环境变量来控制运行时行为和性能调优。这些值在特定情况下,必须动态调整每个进程行为、连接数或区域配置。
请小心使用环境变量。这些选项通常覆盖或增加现有的配置机制。
本节记录了与以下组件相关的环境变量:
- 地理复制首选项
- 数据库连接池
- HTTP 连接并发
- worker 进程扩展
10.1. geo-replication 复制链接链接已复制到粘贴板!
Red Hat Quay 支持多区域部署,其中多个实例在地理分布式站点中运行。在这些情况下,每个站点共享相同的配置和元数据,但存储后端可能因区域而异。
为了容纳这一点,Red Hat Quay 允许使用环境变量为每个部署指定首选存储引擎。这样可确保元数据在所有区域之间保持同步时,每个区域都可以使用自己的优化存储后端,而无需单独的配置文件。
使用 QUAY_DISTRIBUTED_STORAGE_PREFERENCE 环境变量根据 ID 明确设置首选存储引擎,如 DISTRIBUTED_STORAGE_CONFIG 中定义的。
| 变量 | 类型 | 描述 |
|---|---|---|
| QUAY_DISTRIBUTED_STORAGE_PREFERENCE | 字符串 | 首选存储引擎(通过 ID (DISTRIBUTED_STORAGE_CONFIG)使用。 |
10.2. 数据库连接池 复制链接链接已复制到粘贴板!
Red Hat Quay 由很多不同的进程组成,它们都在同一个容器中运行。其中许多进程与数据库交互。
默认启用数据库连接池,与数据库交互的每个进程都包含连接池。这些每个进程连接池配置为最多维护 20 个连接。在负载过重时,可以填写 Red Hat Quay 容器中每个进程的连接池。在某些部署和负载下,这可能需要分析以确保 Red Hat Quay 不会超过配置的数据库的最大连接数。
overtime,连接池释放闲置连接。要立即释放所有连接,Red Hat Quay 需要重启。
| 变量 | 类型 | 描述 |
|---|---|---|
| DB_CONNECTION_POOLING | 字符串 |
是否要启用或禁用数据库连接池。默认值为 true。接受的值是 |
如果启用了数据库连接池,可以更改连接池的最大大小。这可以通过以下 config.yaml 选项完成:
数据库连接池示例 YAML
# ... DB_CONNECTION_ARGS: max_connections: 10 # ...
# ...
DB_CONNECTION_ARGS:
max_connections: 10
# ...
10.2.1. 在独立部署中禁用数据库池 复制链接链接已复制到粘贴板!
对于独立 Red Hat Quay 部署,在启动部署时可以关闭数据库连接池。例如:
对于 OpenShift Container Platform 上的 Red Hat Quay,可以通过修改 QuayRegistry 自定义资源定义(CRD)来配置数据库连接池。例如:
QuayRegistry CRD 示例
10.3. HTTP 连接数 复制链接链接已复制到粘贴板!
您可以使用环境变量控制 Red Hat Quay 处理的同时 HTTP 连接数量。这些限制可以在全局范围内应用,也可以限定到单个组件(registry、Web UI 或安全扫描)。默认情况下,每个 worker 进程最多允许 50 个并行连接。
此设置与 worker 进程的数量不同。
这些与连接相关的环境变量可能会根据您的部署类型而有所不同:
-
在独立部署中,在
config.yaml文件中配置连接计数。 -
在 OpenShift Container Platform 部署的 Red Hat Quay 中,定义
QuayRegistryCR 的env块中的值。
| 变量 | 类型 | 描述 |
|---|---|---|
| WORKER_CONNECTION_COUNT | Number |
每个 worker 进程的最大 HTTP 连接数的全局默认值。 |
| WORKER_CONNECTION_COUNT_REGISTRY | Number |
每个 registry worker 的 HTTP 连接。 |
| WORKER_CONNECTION_COUNT_WEB | Number |
每个 Web UI 工作程序的 HTTP 连接。 |
| WORKER_CONNECTION_COUNT_SECSCAN | Number |
每个 Clair 安全扫描程序 worker 的 HTTP 连接。 |
独立 Red Hat Quay 部署的 HTTP 连接配置
WORKER_CONNECTION_COUNT: 10 WORKER_CONNECTION_COUNT_REGISTRY: 10 WORKER_CONNECTION_COUNT_WEB: 10 WORKER_CONNECTION_COUNT_SECSCAN: 10
WORKER_CONNECTION_COUNT: 10
WORKER_CONNECTION_COUNT_REGISTRY: 10
WORKER_CONNECTION_COUNT_WEB: 10
WORKER_CONNECTION_COUNT_SECSCAN: 10
OpenShift Container Platform 上 Red Hat Quay 的 HTTP 连接配置
10.4. worker 进程计数 复制链接链接已复制到粘贴板!
您可以使用环境变量控制 Red Hat Quay 中处理传入请求的 worker 进程数量。这些值定义启动多少个并行进程来处理系统不同组件的任务,如 registry、Web UI 和安全扫描。
如果没有明确设置,Red Hat Quay 根据可用 CPU 内核数自动计算 worker 进程的数量。虽然这种动态扩展可以优化较大的机器的性能,但在较小的环境中也会造成不必要的资源使用量。
在 OpenShift Container Platform 部署的 Red Hat Quay 中,Operator 会设置以下默认值:
-
WORKER_COUNT_REGISTRY: 8 -
WORKER_COUNT_WEB: 4 -
WORKER_COUNT_SECSCAN: 2
| 变量 | 类型 | 描述 |
|---|---|---|
| WORKER_COUNT | Number | 进程数量的通用覆盖 |
| WORKER_COUNT_REGISTRY | Number |
指定在 |
| WORKER_COUNT_WEB | Number |
指定在容器内处理 UI/Web 请求的进程数 |
| WORKER_COUNT_SECSCAN | Number |
指定在容器内处理安全扫描(如 Clair)集成的进程数 |
独立 Red Hat Quay 部署的 worker 数量配置
WORKER_COUNT: 10 WORKER_COUNT_REGISTRY: 16 WORKER_COUNT_WEB: 8 WORKER_COUNT_SECSCAN: 4
WORKER_COUNT: 10
WORKER_COUNT_REGISTRY: 16
WORKER_COUNT_WEB: 8
WORKER_COUNT_SECSCAN: 4
OpenShift Container Platform 上 Red Hat Quay 的 worker 数量配置
第 11 章 Clair 安全扫描程序 复制链接链接已复制到粘贴板!
Clair 的配置字段已移到 Clair 配置概述 中。本章将在以后的 Red Hat Quay 版本中删除。