3.5. 配置其他组件


3.5.1. 使用外部 Redis

如果要使用外部 Redis 数据库,请将组件设置为 QuayRegistry 实例中的非受管:

  1. 使用所需的 redis 字段创建配置文件 config.yaml

    BUILDLOGS_REDIS:
        host: quay-server.example.com
        port: 6379
        ssl: false
    
    USER_EVENTS_REDIS:
        host: quay-server.example.com
        port: 6379
        ssl: false
  2. 使用配置文件创建 Secret

    $ oc create secret generic --from-file config.yaml=./config.yaml config-bundle-secret
  3. 创建 QuayRegistry YAML 文件 quayregistry.yaml,它将 redis 组件标记为非受管状态,并引用所创建的 Secret:

    apiVersion: quay.redhat.com/v1
    kind: QuayRegistry
    metadata:
      name: example-registry
      namespace: quay-enterprise
    spec:
      configBundleSecret: config-bundle-secret
      components:
        - kind: redis
          managed: false
  4. 部署 registry

3.5.1.1. Redis 配置字段

本节详细介绍了 Redis 部署可用的配置字段。

3.5.1.1.1. 构建日志

以下构建日志配置字段可用于 Redis 部署:

Expand
表 3.5. 构建日志配置
字段类型描述

BUILDLOGS_REDIS
(必需)

对象

Redis 构建日志缓存的连接详情。

.host
(必需)

字符串

可以访问 Redis 的主机名。
示例:
quay-server.example.com

.port
(必需)

Number

访问 Redis 的端口。
示例:
6379

.password

字符串

可以访问 Redis 的端口。
示例:
strongpassword

.port
(必需)

Number

访问 Redis 的端口。
示例:
6379

ssl

布尔值

是否启用 Redis 和 Quay 之间的 TLS 通信。默认为false。

3.5.1.1.2. 用户事件

以下用户事件字段可用于 Redis 部署:

Expand
表 3.6. 用户事件配置
字段类型描述

USER_EVENTS_REDIS
(必需)

对象

Redis 连接详情,用于用户事件处理。

.host
(必需)

字符串

可以访问 Redis 的主机名。
示例:
quay-server.example.com

.port
(必需)

Number

访问 Redis 的端口。
示例:
6379

.password

字符串

可以访问 Redis 的端口。
示例:
strongpassword

ssl

布尔值

是否启用 Redis 和 Quay 之间的 TLS 通信。默认为false。

3.5.1.1.3. Redis 配置示例

以下 YAML 显示了使用 Redis 的配置示例:

BUILDLOGS_REDIS:
    host: quay-server.example.com
    password: strongpassword
    port: 6379
    ssl: true

USER_EVENTS_REDIS:
    host: quay-server.example.com
    password: strongpassword
    port: 6379
    ssl: true
注意

如果您的部署使用 Redis 的 Azure 缓存,并且 ssl 设置为 true,则端口默认为 6380

3.5.2. 禁用 Horizontal Pod Autoscaler

HorizontalPodAutoscalers 已添加到 Clair、Quay 和 Mirror pod 中,以便在负载高峰期间自动扩展。

由于 HPA 默认被配置为 managed,Quay 的 pod 数量,Clair 和存储库镜像数被设为 2。这有助于在通过 Operator 更新/配置 Quay 或重新调度事件期间出现停机的问题。

如果要禁用自动扩展或创建自己的 HorizontalPodAutoscaler,只需在 QuayRegistry 实例中将组件指定为 unmanaged:

apiVersion: quay.redhat.com/v1
kind: QuayRegistry
metadata:
  name: example-registry
  namespace: quay-enterprise
spec:
  components:
    - kind: horizontalpodautoscaler
      managed: false

3.5.3. 禁用 Route 组件

要防止 Operator 创建路由

  1. 将组件标记为 QuayRegistry 中的非受管:

    apiVersion: quay.redhat.com/v1
    kind: QuayRegistry
    metadata:
      name: example-registry
      namespace: quay-enterprise
    spec:
      components:
        - kind: route
          managed: false
  2. 通过编辑 config.yaml 文件,指定您希望 Quay 在配置中处理 TLS:

    config.yaml

    ...
    EXTERNAL_TLS_TERMINATION: false
    ...
    SERVER_HOSTNAME: example-registry-quay-quay-enterprise.apps.user1.example.com
    ...
    PREFERRED_URL_SCHEME: https
    ...

    如果您无法正确配置非受管路由,您会看到类似如下的错误:

    {
      {
        "kind":"QuayRegistry",
        "namespace":"quay-enterprise",
        "name":"example-registry",
        "uid":"d5879ba5-cc92-406c-ba62-8b19cf56d4aa",
        "apiVersion":"quay.redhat.com/v1",
        "resourceVersion":"2418527"
      },
      "reason":"ConfigInvalid",
      "message":"required component `route` marked as unmanaged, but `configBundleSecret` is missing necessary fields"
    }
注意

禁用默认 Route 意味着,您现在需要负责创建访问 Quay 实例的 Route, Service, 或 Ingress,无论您使用什么 DNS,都需要匹配 Quay 配置中的 SERVER_HOSTNAME

3.5.4. 非受管监控

如果在单一命名空间中安装 Quay Operator,则监控组件会自动设置为 'unmanaged'。要在这种情况下启用监控,请查看 第 8.2 节 “在单一命名空间中安装 Operator 时启用监控” 部分。

显式禁用监控:

apiVersion: quay.redhat.com/v1
kind: QuayRegistry
metadata:
  name: example-registry
  namespace: quay-enterprise
spec:
  components:
    - kind: monitoring
      managed: false

3.5.5. 非受管镜像

显式禁用镜像:

apiVersion: quay.redhat.com/v1
kind: QuayRegistry
metadata:
  name: example-registry
  namespace: quay-enterprise
spec:
  components:
    - kind: mirroring
      managed: false
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部