第 5 章 配置数据库


5.1. 使用现有的 PostgreSQL 数据库

如果使用外部管理的 PostgreSQL 数据库,您必须手动启用 pg_trgm 扩展才能成功部署。

使用以下步骤部署现有的 PostgreSQL 数据库。

步骤

  1. 使用必要的数据库字段创建 config.yaml 文件。例如:

    config.yaml 文件示例:

    DB_URI: postgresql://test-quay-database:postgres@test-quay-database:5432/test-quay-database
    Copy to Clipboard Toggle word wrap

  2. 使用配置文件创建 Secret

    $ kubectl create secret generic --from-file config.yaml=./config.yaml config-bundle-secret
    Copy to Clipboard Toggle word wrap
  3. 创建一个 QuayRegistry YAML 文件,该文件将 postgres 组件标记为 非受管,并引用所创建的 Secret。例如:

    quayregistry.yaml 文件示例

    apiVersion: quay.redhat.com/v1
    kind: QuayRegistry
    metadata:
      name: example-registry
      namespace: quay-enterprise
    spec:
      configBundleSecret: config-bundle-secret
      components:
        - kind: postgres
          managed: false
    Copy to Clipboard Toggle word wrap

  4. 按照以下部分所述部署 registry。

5.1.1. 数据库配置

本节论述了可用于 Red Hat Quay 部署的数据库配置字段。

5.1.1.1. 数据库 URI

在 Red Hat Quay 中,使用所需的 DB_URI 字段配置与数据库的连接。

下表描述了 DB_URI 配置字段:

Expand
表 5.1. 数据库 URI
字段类型描述

DB_URI
(Required)

字符串

用于访问数据库的 URI,包括任何凭据。

DB_URI 字段示例:

postgresql://quayuser:quaypass@quay-server.example.com:5432/quay

5.1.1.2. 数据库连接参数

可选的连接参数由 DB_CONNECTION_ARGS 参数配置。DB_CONNECTION_ARGS 下定义的一些键值对是通用的,另一些则特定于数据库。

下表描述了数据库连接参数:

Expand
表 5.2. 数据库连接参数
字段类型描述

DB_CONNECTION_ARGS

对象

数据库的可选连接参数,如超时和 SSL/TLS。

.autorollback

布尔值

是否使用线程本地连接。
应该始终为 true

.threadlocals

布尔值

是否使用自动回滚连接。
应该始终为 true

5.1.1.2.1. PostgreSQL SSL/TLS 连接参数

使用 SSL/TLS 时,配置取决于您部署的数据库。以下示例显示了 PostgreSQL SSL/TLS 配置:

DB_CONNECTION_ARGS:
  sslmode: verify-ca
  sslrootcert: /path/to/cacert
Copy to Clipboard Toggle word wrap

sslmode 选项决定是否与服务器协商安全 SSL/TLS TCP/IP 连接的优先级。有六个模式:

Expand
表 5.3. SSL/TLS 选项
模式描述

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 有效参数的更多信息,请参阅 数据库连接控制功能

5.1.1.2.2. MySQL SSL/TLS 连接参数

以下示例显示了 MySQL SSL/TLS 配置示例:

DB_CONNECTION_ARGS:
  ssl:
    ca: /path/to/cacert
Copy to Clipboard Toggle word wrap

有关 MySQL 的有效连接参数的信息,请访问 使用类似URI的字符串或键-值对连接到服务器

5.1.2. 使用管理的 PostgreSQL 数据库

使用 Red Hat Quay 3.9,如果您的数据库由 Red Hat Quay Operator 管理,从 Red Hat Quay 3.8 3.9 更新会自动处理将 PostgreSQL 10 升级到 PostgreSQL 13。

重要
  • 需要具有受管数据库的用户从 10 13 升级其 PostgreSQL 数据库。
  • 如果您的 Red Hat Quay 和 Clair 数据库由 Operator 管理,则每个组件的数据库升级必须成功升级 3.9.0。如果任何一个数据库升级失败,则整个 Red Hat Quay 版本升级会失败。这是预期的行为。

如果您不希望 Red Hat Quay Operator 从 PostgreSQL 10 13 升级 PostgreSQL 部署,则必须在 quayregistry.yaml 文件中将 PostgreSQL 参数设置为 managed: false。有关将数据库设置为非受管的更多信息,请参阅使用现有的 Postgres 数据库

重要
  • 强烈建议您升级到 PostgreSQL 13。PostgreSQL 10 在 2022 年 11 月 10 日有其最终发行版本,不再被支持。如需更多信息,请参阅 PostgreSQL 版本策略

如果您希望 PostgreSQL 数据库与 Red Hat Enterprise Linux (RHEL)系统相同的版本匹配,请参阅 迁移到 RHEL 8 的 RHEL 8 版本的 PostgreSQL或迁移到 RHEL 9 的 RHEL 9 版本

如需有关 Red Hat Quay 3.8 3.9 流程的更多信息,请参阅"更新 Red Hat Quay 和 Red Hat Quay 和 Clair PostgreSQL 数据库在 OpenShift Container Platform 中"。

5.1.2.1. PostgreSQL 数据库建议

Red Hat Quay 团队建议以下内容来管理 PostgreSQL 数据库。

  • 数据库备份应该使用 PostgreSQL 镜像中提供的工具或您自己的备份基础架构定期执行。Red Hat Quay Operator 目前不会确保 PostgreSQL 数据库已备份。
  • 必须使用 PostgreSQL 工具和流程从备份中恢复 PostgreSQL 数据库。请注意,在数据库恢复过程中,您的 Quay Pod 不应运行。
  • 数据库磁盘空间由带有 50 GiB 的 Red Hat Quay Operator 自动分配。这个数字代表了大多数中小型 Red Hat Quay 安装可用存储量,但可能不适用于您的用例。Red Hat Quay Operator 目前不会处理数据库卷的大小。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat