设置独立的 PostgreSQL 数据库
我们将使用 Ubuntu 的 Omnibus GitLab 包。该软件包提供了保证与 chart 服务兼容的服务版本。
创建包含 Omnibus GitLab 的 VM
在您选择的提供商或本地创建 VM。这里是使用 VirtualBox、KVM 和 Bhyve 进行测试的。 确保可从集群访问该实例。
将 Ubuntu Server 安装到您创建的 VM 上。 确保安装了 openssh-server
,并且所有软件包都是最新的。
配置网络和主机名。记下主机名/IP,并确保它可以从您的 Kubernetes 集群解析和访问。
确保防火墙策略在正确的位置,以允许流量。
按照 Omnibus GitLab 的安装说明进行操作。当您执行包安装时,不要 提供EXTERNAL_URL=
值。 我们不希望发生自动配置,因为我们将在下一步中提供非常具体的配置。
配置 Omnibus GitLab
创建一个最小的 gitlab.rb
文件放在 /etc/gitlab/gitlab.rb
。要_非常_明确地知道此节点上启用的功能,请使用以下内容。
注意:此示例不提供 PostgreSQL 扩缩容.
注意:以下值应被替换
-
DB_USERNAME
默认用户名是gitlab
-
DB_PASSSWORD
未编码值 -
DB_PASSWORD
的DB_ENCODED_PASSWORD
编码值。可以通过用DB_USERNAME
和DB_PASSWORD
的真实值来生成:echo -n 'DB_PASSSWORDDB_USERNAME' | md5sum - | cut -d' ' -f1
-
AUTH_CIDR_ADDRESS
配置用于 MD5 身份验证的 CIDR,应该是集群的最小子网或其网关。对于 Minikube,此值为192.168.100.0/12
# Change the address below if you do not want PG to listen on all available addresses
postgresql['listen_address'] = '0.0.0.0'
# Set to approximately 1/4 of available RAM.
postgresql['shared_buffers'] = "512MB"
# This password is: `echo -n '${password}${username}' | md5sum - | cut -d' ' -f1`
# The default username is `gitlab`
postgresql['sql_user_password'] = "DB_ENCODED_PASSWORD"
# Configure the CIDRs for MD5 authentication
postgresql['md5_auth_cidr_addresses'] = ['AUTH_CIDR_ADDRESSES']
# Configure the CIDRs for trusted authentication (passwordless)
postgresql['trust_auth_cidr_addresses'] = ['127.0.0.1/24']
## Configure gitlab_rails
gitlab_rails['auto_migrate'] = false
gitlab_rails['db_username'] = "gitlab"
gitlab_rails['db_password'] = "DB_PASSSWORD"
## Disable everything else
sidekiq['enable'] = false
puma['enable'] = false
registry['enable'] = false
gitaly['enable'] = false
gitlab_workhorse['enable'] = false
nginx['enable'] = false
prometheus_monitoring['enable'] = false
redis['enable'] = false
创建 gitlab.rb
后,我们将使用 gitlab-ctl reconfigure
重新配置包。任务完成后,使用 gitlab-ctl status
检查正在运行的进程。输出应如下所示:
# gitlab-ctl status
run: logrotate: (pid 4856) 1859s; run: log: (pid 31262) 77460s
run: postgresql: (pid 30562) 77637s; run: log: (pid 30561) 77637s