- 为 PostgreSQL、Gitaly 和 Redis 配置 TCP 访问
- 设置 Sidekiq 实例
- 使用共享存储配置多个 Sidekiq 节点
- 使用外部 Sidekiq 时配置容器镜像库
- 配置 Sidekiq 指标服务器
- 配置健康检查
- 配置 LDAP 和用户或群组同步
- 为 SAML 群组同步配置 SAML 群组
- 相关话题
- 故障排产
配置外部 Sidekiq 实例
您可以使用极狐GitLab 包中捆绑的 Sidekiq,来配置外部 Sidekiq 实例。Sidekiq 需要连接到 Redis、PostgreSQL 和 Gitaly 实例。
为 PostgreSQL、Gitaly 和 Redis 配置 TCP 访问
默认情况下,极狐GitLab 使用 UNIX 套接字,并且未设置为通过 TCP 进行通信。要更改:
-
配置软件包安装的 PostgreSQL 服务器监听 TCP/IP并将 Sidekiq 服务器 IP 添加到
postgresql['md5_auth_cidr_addresses']
中 - 让捆绑安装的 Redis 能够通过 TCP 进行访问
-
编辑极狐GitLab 实例上的
/etc/gitlab/gitlab.rb
文件,并添加以下内容:## Gitaly gitaly['configuration'] = { # ... # # Make Gitaly accept connections on all network interfaces listen_addr: '0.0.0.0:8075', auth: { ## Set up the Gitaly token as a form of authentication since you are accessing Gitaly over the network ## https://docs.gitlab.com/ee/administration/gitaly/configure_gitaly.html#about-the-gitaly-token token: 'abc123secret', }, } gitlab_rails['gitaly_token'] = 'abc123secret' # Password to Authenticate Redis gitlab_rails['redis_password'] = 'redis-password-goes-here'
-
运行
reconfigure
:sudo gitlab-ctl reconfigure
-
重启
PostgreSQL
服务器:sudo gitlab-ctl restart postgresql
设置 Sidekiq 实例
找到 您的参考架构 并遵循 Sidekiq 实例设置详情。
使用共享存储配置多个 Sidekiq 节点
如果您在运行多个使用共享文件存储的 Sidekiq 节点,比如 NFS,您必须指定 UID 和 GID 以确保他们能够和服务器匹配上。指定 UID 和 GID 可以防止文件系统中的权限问题。此建议类似于关于 Geo 设置的建议。
要设置多个 Sidekiq 节点:
-
编辑
/etc/gitlab/gitlab.rb
:user['uid'] = 9000 user['gid'] = 9000 web_server['uid'] = 9001 web_server['gid'] = 9001 registry['uid'] = 9002 registry['gid'] = 9002
-
重新配置极狐GitLab:
sudo gitlab-ctl reconfigure
使用外部 Sidekiq 时配置容器镜像库
如果您使用的是 Container Registry,并且它在与 Sidekiq 不同的节点上运行,请按照以下步骤操作。
-
编辑
/etc/gitlab/gitlab.rb
,配置镜像库 URL:gitlab_rails['registry_api_url'] = "https://registry.example.com"
-
重新配置极狐GitLab:
sudo gitlab-ctl reconfigure
-
在托管 Container Registry 的实例中,将
registry.key
文件复制到 Sidekiq 节点。
配置 Sidekiq 指标服务器
如果要收集 Sidekiq 指标,请启用 Sidekiq 指标服务器。
从 localhost:8082/metrics
获取指标。
要配置指标服务器:
-
编辑
/etc/gitlab/gitlab.rb
:sidekiq['metrics_enabled'] = true sidekiq['listen_address'] = "localhost" sidekiq['listen_port'] = "8082" # Optionally log all the metrics server logs to log/sidekiq_exporter.log sidekiq['exporter_log_enabled'] = true
-
重新配置极狐GitLab:
sudo gitlab-ctl reconfigure
启用 HTTPS
- 引入于 15.2 版本。
要通过 HTTPS 而不是 HTTP 提供指标,请在导出器设置中启用 TLS:
-
编辑
/etc/gitlab/gitlab.rb
以添加(或查找并取消注释)以下行:sidekiq['exporter_tls_enabled'] = true sidekiq['exporter_tls_cert_path'] = "/path/to/certificate.pem" sidekiq['exporter_tls_key_path'] = "/path/to/private-key.pem"
-
保存文件并重新配置极狐GitLab,使更改生效。
启用 TLS 时,使用与上述相同的 port
和 address
。指标服务器不能同时提供 HTTP 和 HTTPS。
配置健康检查
如果您使用健康检查探针观察 Sidekiq,请启用 Sidekiq 健康检查服务器。
例如从 localhost:8092
进行健康检查:
-
编辑
/etc/gitlab/gitlab.rb
:sidekiq['health_checks_enabled'] = true sidekiq['health_checks_listen_address'] = "localhost" sidekiq['health_checks_listen_port'] = "8092"
-
重新配置极狐GitLab:
sudo gitlab-ctl reconfigure
有关健康检查的更多信息,请参阅 Sidekiq 健康检查页面。
配置 LDAP 和用户或群组同步
如果您使用 LDAP 进行用户和群组管理,则必须将 LDAP 配置添加到 Sidekiq 节点以及 LDAP 同步 worker。如果 LDAP 配置和 LDAP 同步 worker 未应用于您的 Sidekiq 节点,则不会自动同步用户和群组。
有关为极狐GitLab 配置 LDAP 的更多信息,请参阅:
要使用 Sidekiq 的同步 worker 启用 LDAP:
-
编辑
/etc/gitlab/gitlab.rb
:gitlab_rails['ldap_enabled'] = true gitlab_rails['prevent_ldap_sign_in'] = false gitlab_rails['ldap_servers'] = { 'main' => { 'label' => 'LDAP', 'host' => 'ldap.mydomain.com', 'port' => 389, 'uid' => 'sAMAccountName', 'encryption' => 'simple_tls', 'verify_certificates' => true, 'bind_dn' => '_the_full_dn_of_the_user_you_will_bind_with', 'password' => '_the_password_of_the_bind_user', 'tls_options' => { 'ca_file' => '', 'ssl_version' => '', 'ciphers' => '', 'cert' => '', 'key' => '' }, 'timeout' => 10, 'active_directory' => true, 'allow_username_or_email_login' => false, 'block_auto_created_users' => false, 'base' => 'dc=example,dc=com', 'user_filter' => '', 'attributes' => { 'username' => ['uid', 'userid', 'sAMAccountName'], 'email' => ['mail', 'email', 'userPrincipalName'], 'name' => 'cn', 'first_name' => 'givenName', 'last_name' => 'sn' }, 'lowercase_usernames' => false, # Enterprise Edition only # https://docs.gitlab.com/ee/administration/auth/ldap/ldap_synchronization.html 'group_base' => '', 'admin_group' => '', 'external_groups' => [], 'sync_ssh_keys' => false } } gitlab_rails['ldap_sync_worker_cron'] = "0 */12 * * *"
-
重新配置极狐GitLab:
sudo gitlab-ctl reconfigure
为 SAML 群组同步配置 SAML 群组
如果您在使用SAML 群组同步,您必须在您的所有 Sidekiq 节点上配置SAML 群组。
相关话题
故障排产
查看我们的 Sidekiq 故障排查管理员指南。