使用外部数据库配置极狐GitLab chart

对于生产就绪的极狐GitLab chart 部署实例,请使用外部数据库。

先决条件:

  • PostgreSQL 12 或更高版本的部署实例。对于私有化部署解决方案,请考虑 Linux 软件包
  • 默认情况下名为 gitlabhq_production 的空数据库。
  • 具有完全数据库访问权限的用户。有关详细信息,请参阅外部数据库文档
  • 带有数据库用户密码的 Kubernetes Secret
  • pg_trgmbtree_gist 扩展。如果您没有向极狐GitLab 提供带有 Superuser 标志的账户,请确保在继续安装数据库之前加载这些扩展。

网络先决条件:

  • 确保可以从集群访问数据库。确保您的防火墙策略允许流量。
  • 如果您计划使用 PostgreSQL 作为负载平衡集群和 Kubernetes DNS 用于服务发现,当您安装 bitnami/postgresql chart 时,请使用 --set slave.service.clusterIP=None。此设置将 PostgreSQL 辅助服务配置为 headless 服务,允许为每个 secondary 实例创建 DNS A 记录。

    有关如何使用 Kubernetes DNS 进行服务发现的示例,请参阅 examples/database/values-loadbalancing-discover.yaml

要将极狐GitLab chart 配置为使用外部数据库:

  1. 设置以下参数:

    • postgresql.install:设置为 false 以禁用嵌入式数据库。
    • global.psql.host:设置为外部数据库的主机名,可以是域名或IP地址。
    • global.psql.password.secret包含 gitlab 用户的数据库密码的 secret 的名称
    • global.psql.password.key:包含密码的 secret 中的键。
  2. 可选。如果您不使用默认值,可以进一步自定义以下项目:

    • global.psql.port:数据库可用的端口,默认为 5432
    • global.psql.database:数据库的名称。
    • global.psql.username:有权访问数据库的用户。
  3. 可选。如果您使用到数据库的双向 TLS 连接:

    • global.psql.ssl.secret:包含客户端证书、密钥和证书颁发机构的机密。
    • global.psql.ssl.serverCA:secret 中引用证书颁发机构 (CA) 的键。
    • global.psql.ssl.clientCertificate:secret 中引用客户端证书密钥的键。
    • global.psql.ssl.clientKey:secret 中的客户端。
  4. 部署极狐GitLab chart 时,使用 --set 标志添加值。例如:

    helm install gitlab gitlab/gitlab
      --set postgresql.install=false
      --set global.psql.host=psql.example
      --set global.psql.password.secret=gitlab-postgresql-password
      --set global.psql.password.key=postgres-password