第 2 章 配置外部 PostgreSQL 数据库


作为管理员,您可以在 Red Hat Developer Hub 中配置和使用外部 PostgreSQL 数据库。您可以使用 PostgreSQL 证书文件使用 Operator 或 Helm Chart 配置外部 PostgreSQL 实例。

注意

Developer Hub 支持外部 PostgreSQL 数据库的配置。您可以执行维护活动,如备份数据或为外部 PostgreSQL 数据库配置高可用性(HA)。

默认情况下,Red Hat Developer Hub operator 或 Helm Chart 会创建一个本地 PostgreSQL 数据库。但是,此配置不适用于生产环境。对于生产环境部署,禁用创建本地数据库,并将 Developer Hub 配置为改为连接到外部 PostgreSQL 实例。

2.1. 使用 Operator 配置外部 PostgreSQL 实例

您可以使用 Red Hat Developer Hub Operator 配置外部 PostgreSQL 实例。默认情况下,Operator 会在部署 RHDH 实例的同一命名空间中创建和管理一个 PostgreSQL 本地实例。但是,您可以更改此默认设置来配置外部 PostgreSQL 数据库服务器,例如 Amazon Web Services (AWS)相关数据库服务(RDS)或 Azure 数据库。

先决条件

  • 您使用受支持的 PostgreSQL 版本。如需更多信息,请参阅 产品生命周期页面
  • 您有以下详情:

    • db-host :注意 PostgreSQL 实例域名系统(DNS)或 IP 地址
    • db-port :注意 PostgreSQL 实例端口号,如 5432
    • 用户名 :注意要连接到 PostgreSQL 实例的用户名
    • 密码 :注意连接到 PostgreSQL 实例的密码
  • 已安装 Red Hat Developer Hub Operator。
  • 可选: 您有一个 CA 证书、传输层安全(TLS)私钥和 TLS 证书,以便您可以使用 TLS 协议保护数据库连接。如需更多信息,请参阅 PostgreSQL 供应商文档。
注意

默认情况下,Developer Hub 为每个插件使用一个数据库,并在未找到时自动创建它。除了 PSQL Database 特权外,您可能需要 Create Database 特权来配置外部 PostgreSQL 实例。

流程

  1. 可选:创建一个证书 secret 来使用 TLS 连接配置 PostgreSQL 实例:

    cat <<EOF | oc -n my-rhdh-project create -f -
    apiVersion: v1
    kind: Secret
    metadata:
     name: my-rhdh-database-certificates-secrets 
    1
    
    type: Opaque
    stringData:
     postgres-ca.pem: |-
      -----BEGIN CERTIFICATE-----
      <ca-certificate-key> 
    2
    
     postgres-key.key: |-
      -----BEGIN CERTIFICATE-----
      <tls-private-key> 
    3
    
     postgres-crt.pem: |-
      -----BEGIN CERTIFICATE-----
      <tls-certificate-key> 
    4
    
      # ...
    EOF
    Copy to Clipboard Toggle word wrap
    1
    提供证书 secret 的名称。
    2
    提供 CA 证书密钥。
    3
    可选:提供 TLS 私钥。
    4
    可选:提供 TLS 证书密钥。
  2. 创建凭证 secret 以与 PostgreSQL 实例连接:

    cat <<EOF | oc -n my-rhdh-project create -f -
    apiVersion: v1
    kind: Secret
    metadata:
     name: my-rhdh-database-secrets 
    1
    
    type: Opaque
    stringData: 
    2
    
     POSTGRES_PASSWORD: <password>
     POSTGRES_PORT: "<db-port>"
     POSTGRES_USER: <username>
     POSTGRES_HOST: <db-host>
     PGSSLMODE: <ssl-mode> # for TLS connection 
    3
    
     NODE_EXTRA_CA_CERTS: <abs-path-to-pem-file> # for TLS connection, e.g. /opt/app-root/src/postgres-crt.pem 
    4
    
    EOF
    Copy to Clipboard Toggle word wrap
    1
    提供凭证 secret 的名称。
    2
    提供用于连接 PostgreSQL 实例的凭证数据。
    3
    可选:根据所需的 安全套接字层(SSL)模式提供值
    4
    可选: 只有在需要 PostgreSQL 实例的 TLS 连接时才提供值。
  3. 创建 Backstage 自定义资源(CR):

    cat <<EOF | oc -n my-rhdh-project create -f -
    apiVersion: rhdh.redhat.com/v1alpha3
    kind: Backstage
    metadata:
      name: <backstage-instance-name>
    spec:
      database:
        enableLocalDb: false 
    1
    
      application:
        extraFiles:
          mountPath: <path> # e g /opt/app-root/src
          secrets:
            - name: my-rhdh-database-certificates-secrets 
    2
    
              key: postgres-crt.pem, postgres-ca.pem, postgres-key.key # key name as in my-rhdh-database-certificates-secrets Secret
        extraEnvs:
          secrets:
            - name: my-rhdh-database-secrets 
    3
    
            # ...
    Copy to Clipboard Toggle word wrap
    1
    enableLocalDb 参数的值设置为 false,以禁用创建本地 PostgreSQL 实例。
    2
    如果您配置了 TLS 连接,请提供证书 secret 的名称。
    3
    提供您创建的凭证 secret 的名称。
    注意

    Backstage CR 中列出的环境变量与 Operator 默认配置一起工作。如果更改了 Operator 默认配置,您必须相应地重新配置 Backstage CR。

  4. Backstage CR 应用到已部署 Developer Hub 实例的命名空间。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat