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

配置极狐GitLab图表与外部数据库

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

前提条件:

  • 部署 PostgreSQL 14 或更高版本。如果您没有,请考虑使用云提供的解决方案,如 AWS RDS PostgreSQL。对于替代解决方案,可以考虑 Linux 软件包
  • 默认情况下,一个名为 gitlabhq_production 的空数据库。
  • 一个具有完整数据库访问权限的用户。
  • 一个 Kubernetes 密钥,包含数据库用户的密码。
  • pg_trgmbtree_gist 扩展。如果您不给极狐GitLab提供具有超级用户标志的账户,请确保在继续进行数据库安装之前加载这些扩展。

网络前提条件:

  • 确保数据库可以从集群访问。确保防火墙策略允许流量。

  • 如果计划使用 PostgreSQL 作为负载均衡集群和 Kubernetes DNS 进行服务发现,当安装 bitnami/postgresql 图表时,使用 --set slave.service.clusterIP=None。此设置将 PostgreSQL 次要服务配置为无头服务,以便为每个次要实例创建 DNS A 记录。

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

配置极狐GitLab图表以使用外部数据库:

  1. 设置以下参数:

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

    • global.psql.port: 数据库可用的端口。默认为 5432
    • global.psql.database: 数据库的名称。
    • global.psql.username: 具有数据库访问权限的用户。
  3. 可选。如果使用与数据库的双向 TLS 连接,请设置以下内容:

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

    shell
    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