使用外部数据库配置极狐GitLab chart
配置极狐GitLab图表与外部数据库
对于生产就绪的极狐GitLab图表部署,请使用外部数据库。
前提条件:
- 部署 PostgreSQL 14 或更高版本。如果您没有,请考虑使用云提供的解决方案,如 AWS RDS PostgreSQL。对于替代解决方案,可以考虑 Linux 软件包。
- 默认情况下,一个名为 gitlabhq_production 的空数据库。
- 一个具有完整数据库访问权限的用户。
- 一个 Kubernetes 密钥,包含数据库用户的密码。
- pg_trgm 和 btree_gist 扩展。如果您不给极狐GitLab提供具有超级用户标志的账户,请确保在继续进行数据库安装之前加载这些扩展。
网络前提条件:
-
确保数据库可以从集群访问。确保防火墙策略允许流量。
-
如果计划使用 PostgreSQL 作为负载均衡集群和 Kubernetes DNS 进行服务发现,当安装 bitnami/postgresql 图表时,使用 --set slave.service.clusterIP=None。此设置将 PostgreSQL 次要服务配置为无头服务,以便为每个次要实例创建 DNS A 记录。
有关如何使用 Kubernetes DNS 进行服务发现的示例,请参阅 examples/database/values-loadbalancing-discover.yaml。
配置极狐GitLab图表以使用外部数据库:
-
设置以下参数:
- postgresql.install: 设置为 false 以禁用嵌入式数据库。
- global.psql.host: 设置为外部数据库的主机名,可以是域名或 IP 地址。
- global.psql.password.secret: 包含 gitlab 用户数据库密码的 密钥名称。
- global.psql.password.key: 在密钥中,包含密码的键。
-
可选。如果您不使用默认值,可以进一步自定义以下项目:
- global.psql.port: 数据库可用的端口。默认为 5432。
- global.psql.database: 数据库的名称。
- global.psql.username: 具有数据库访问权限的用户。
-
可选。如果使用与数据库的双向 TLS 连接,请设置以下内容:
- global.psql.ssl.secret: 包含客户端证书、密钥和证书颁发机构的密钥。
- global.psql.ssl.serverCA: 在密钥中,指向证书颁发机构 (CA) 的键。
- global.psql.ssl.clientCertificate: 在密钥中,指向客户端证书的键。
- global.psql.ssl.clientKey: 在密钥中,指向客户端密钥。
-
当您部署极狐GitLab图表时,使用 --set 标志添加值。例如:
shellhelm 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