Omnibus GitLab 고가용성 역할
Omnibus GitLab에는 GitLab을 고가용성 구성으로 실행하는 데 필요한 다양한 소프트웨어 구성 요소/서비스가 포함되어 있습니다. 기본적으로 일부 지원 서비스가 비활성화되어 있고, Omnibus GitLab은 단일 노드 설치로 구성됩니다. 각 서비스는 /etc/gitlab/gitlab.rb
의 구성 설정을 사용하여 활성화 또는 비활성화할 수 있지만 roles
의 도입으로 그룹화된 서비스를 쉽게 활성화하고 활성화된 고가용성 역할을 기반으로 더 나은 기본 구성을 제공합니다.
역할을 지정하지 않은 경우(기본 구성)
GitLab을 어떠한 역할로 구성하지 않는 경우 GitLab은 단일 노드 설치를 위한 기본 서비스를 활성화합니다. 이에는 PostgreSQL, Redis, Puma, Sidekiq, Gitaly, GitLab Workhorse, NGINX 등이 포함됩니다.
이러한 서비스는 여전히 /etc/gitlab/gitlab.rb
의 설정을 통해 개별적으로 활성화/비활성화할 수 있습니다.
역할 지정
역할은 /etc/gitlab/gitlab.rb
에 배열로 전달됩니다.
여러 역할을 지정하는 예:
roles ['redis_sentinel_role', 'redis_master_role']
단일 역할을 지정하는 예:
roles ['geo_primary_role']
역할
다수의 역할은 GitLab 엔터프라이즈 에디션에서만 작동합니다. 각 역할 옆에 언급됩니다.
GitLab 앱 역할
-
application_role (
gitlab-ce
/gitlab-ee
)GitLab 앱 역할은 GitLab만 실행되는 인스턴스를 구성하는 데 사용됩니다. Redis, PostgreSQL 및 Consul 서비스는 기본적으로 비활성화됩니다.
Redis 서버 역할
Redis 역할의 사용에 대한 문서는 스케일링을 위한 Redis 구성에서 찾을 수 있습니다.
-
redis_sentinel_role (
gitlab-ee
)기본적으로 머신에서 sentinel 서비스를 활성화합니다.
기본적으로 다른 서비스는 활성화되지 않습니다.
-
redis_master_role (
gitlab-ee
)Redis 서비스 및 모니터링을 활성화하고 마스터 암호를 구성할 수 있습니다.
기본적으로 다른 서비스는 활성화되지 않습니다.
-
redis_replica_role (
gitlab-ee
)Redis 서비스 및 모니터링을 활성화합니다.
기본적으로 다른 서비스는 활성화되지 않습니다.
GitLab Geo 역할
GitLab Geo 역할은 GitLab Geo 사이트를 구성하는 데 사용됩니다. 구성 단계에 대해서는 Geo 설정 문서를 참조하십시오.
-
geo_primary_role (
gitlab-ee
)이 역할은 다음을 수행합니다:
- 스트리밍 복제를 위해 단일 노드 PostgreSQL 데이터베이스를 리더로 구성합니다.
- Geo 보조 사이트에 대한 스트리밍 복제 다운 타임을 필요로 하기 때문에 PostgreSQL의 자동 업그레이드를 방지합니다.
- NGINX, Puma, Redis 및 Sidekiq를 포함한 모든 단일 노드 GitLab 서비스를 활성화합니다. 서비스를 분리하는 경우
/etc/gitlab/gitlab.rb
에서 원하지 않는 서비스를 명시적으로 비활성화해야 합니다. 따라서 이 역할은 Geo 기본 사이트의 단일 노드 PostgreSQL에서만 유용합니다. - Geo 기본 사이트에서 PostgreSQL 클러스터를 설정하는 데 사용할 수 없습니다. 대신 Geo 다중 노드 데이터베이스 복제를 참조하십시오.
기본적으로 NGINX, Puma, Redis 및 Sidekiq를 포함한 표준 단일 노드 GitLab 서비스가 활성화됩니다.
-
geo_secondary_role (
gitlab-ee
)- 들어오는 복제를 위한 읽기 전용 복제 데이터베이스를 구성합니다.
- Geo 추적 데이터베이스에 대한 Rails 연결을 구성합니다.
- Geo 추적 데이터베이스
geo-postgresql
를 활성화합니다. - Geo Log Cursor
geo-logcursor
를 활성화합니다. - 재구성 중에 읽기 전용 복제 데이터베이스에서 자동 데이터베이스 마이그레이션을 비활성화합니다.
- 다른 서비스에 대한 메모리를 절약하기 위해 Puma 워커 수를 줄입니다.
-
gitlab_rails['enable'] = true
를 설정합니다.
이 역할은 단일 노드에서 실행되는 Geo 보조 사이트에서 사용하기 위한 것입니다. Geo 사이트의 여러 노드에서 이 역할을 사용하는 경우 원하지 않는 서비스를
/etc/gitlab/gitlab.rb
에서 명시적으로 비활성화해야 합니다. 다중 노드 Geo 사이트에서 PostgreSQL 클러스터를 설정하기 위해 이 역할을 사용해서는 안 됩니다. 대신 Geo 다중 노드 데이터베이스 복제를 참조하십시오.기본적으로 GitLab의 모든 기본 단일 노드 서비스(NGINX, Puma, Redis, Sidekiq 등)가 활성화됩니다.
모니터링 역할
모니터링 역할은 설치의 모니터링을 설정하는 데 사용됩니다. 자세한 내용은 모니터링 문서를 참조하십시오.
-
monitoring_role (
gitlab-ce
/gitlab-ee
)메트릭을 수집하고 대시보드를 제공하기 위한 중앙 모니터링 서버를 구성합니다.
Prometheus 및 Alertmanager를 활성화합니다.
PostgreSQL 역할
PostgreSQL 역할의 사용에 대한 문서는 스케일링을 위한 PostgreSQL 구성에서 찾을 수 있습니다.
-
postgres_role (
gitlab-ce
/gitlab-ee
)머신에서 PostgreSQL 서비스를 활성화합니다.
기본적으로 다른 서비스는 활성화되지 않습니다.
-
patroni_role (
gitlab-ee
)머신에서 PostgreSQL, patroni, 그리고 Consul 서비스를 활성화합니다.
기본적으로 다른 서비스는 활성화되지 않습니다.
-
pgbouncer_role (
gitlab-ee
)머신에서 PgBouncer와 Consul 서비스를 활성화합니다.
기본적으로 다른 서비스는 활성화되지 않습니다.
-
consul_role (
gitlab-ee
)머신에서 Consul 서비스를 활성화합니다.
기본적으로 다른 서비스는 활성화되지 않습니다.
GitLab Pages 역할
GitLab Pages 역할은 GitLab Pages를 설정하고 구성하는 데 사용됩니다. 자세한 내용은 GitLab Pages 관리 문서를 참조하십시오.
Sidekiq 역할
Sidekiq 역할은 Sidekiq를 설정하고 구성하기 위해 사용됩니다. 추가 정보는 Sidekiq 관리 문서를 참조하십시오.
-
sidekiq_role (
gitlab-ce
/gitlab-ee
)Sidekiq 서비스를 구성합니다.
기본적으로 다른 서비스를 활성화하지 않습니다.
Spamcheck 역할
Spamcheck 역할은 Spamcheck 서비스를 설정하고 구성하기 위해 사용됩니다. 추가 정보는 Spamcheck 문서를 참조하십시오.
-
spamcheck_role (
gitlab-ee
)서버를 Spamcheck 및 스팸 분류기 서비스로 구성합니다.
기본적으로 다른 서비스를 활성화하지 않습니다.