- GitLab 인스턴스에서 PostgreSQL, Gitaly, 그리고 Redis에 대한 TCP 액세스 구성
- Sidekiq 인스턴스 설정
- 공유 스토리지를 사용하여 다중 Sidekiq 노드 구성
- 외부 Sidekiq 사용 시 컨테이너 레지스트리 구성
- Sidekiq 메트릭 서버 구성
- 헬스 체크 구성
- LDAP 및 사용자 또는 그룹 동기화 구성
- SAML 그룹 동기화를 위한 SAML 그룹 구성
- 관련 주제
- 문제 해결
외부 Sidekiq 인스턴스 구성
GitLab 패키지에 번들되어 있는 Sidekiq를 사용하여 외부 Sidekiq 인스턴스를 구성할 수 있습니다. Sidekiq는 Redis, PostgreSQL, 그리고 Gitaly 인스턴스에 연결이 필요합니다.
GitLab 인스턴스에서 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'] = { # ... # # Gitaly를 모든 네트워크 인터페이스에서의 연결 수락하도록 설정 listen_addr: '0.0.0.0:8075', auth: { ## 네트워크를 통해 Gitaly에 액세스하기 때문에 Gitaly 토큰을 인증 수단으로 설정 ## https://docs.gitlab.com/ee/administration/gitaly/configure_gitaly.html#about-the-gitaly-token token: 'abc123secret', }, } gitlab_rails['gitaly_token'] = 'abc123secret' # Redis를 인증하기 위한 비밀번호 gitlab_rails['redis_password'] = '여기에 레디스 비밀번호 입력'
-
reconfigure
명령을 실행합니다:sudo gitlab-ctl reconfigure
-
PostgreSQL
서버를 재시작합니다:sudo gitlab-ctl restart postgresql
Sidekiq 인스턴스 설정
참조 아키텍처를 찾아서 Sidekiq 인스턴스 설정 세부 사항을 따르세요.
공유 스토리지를 사용하여 다중 Sidekiq 노드 구성
NFS와 같은 공유 파일 스토리지를 사용하여 여러 Sidekiq 노드를 실행하는 경우, 서버 간에 일치하는 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 사용 시 컨테이너 레지스트리 구성
컨테이너 레지스트리를 사용하고 Sidekiq가 다른 노드에서 실행 중인 경우 다음 단계를 따르세요.
-
/etc/gitlab/gitlab.rb
을 편집하고 레지스트리 URL을 구성합니다:gitlab_rails['registry_api_url'] = "https://registry.example.com"
-
GitLab을 다시 구성합니다:
sudo gitlab-ctl reconfigure
-
컨테이너 레지스트리가 호스팅된 인스턴스에서
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 # 옵션: 모든 메트릭 서버 로그를 log/sidekiq_exporter.log에 기록 sidekiq['exporter_log_enabled'] = true
-
GitLab을 다시 구성합니다:
sudo gitlab-ctl reconfigure
HTTPS 활성화
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 구성과 LDAP 동기화 워커를 Sidekiq 노드에 추가해야 합니다. LDAP 구성 및 LDAP 동기화 워커가 Sidekiq 노드에 적용되지 않으면 사용자 및 그룹이 자동으로 동기화되지 않습니다.
GitLab을 위해 LDAP를 구성하는 자세한 내용은 다음을 참조하세요:
Sidekiq를 위해 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, # 엔터프라이즈 버전 전용 # 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 문제 해결을 위해 관리자 가이드를 참조하세요.