高可用性ロール
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
Linuxパッケージには、高可用性構成でGitLabを実行するためのさまざまなソフトウェアコンポーネント/サービスが含まれています。デフォルトでは、これらのサポートサービスの一部は無効になっており、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 Enterprise Edition、つまりgitlab-ee Linuxパッケージでのみ機能します。各ロールの横に記載されています。
GitLabアプリのロール
application_role(gitlab-ce/gitlab-ee)GitLabアプリのロールは、GitLabのみが実行されているインスタンスを設定するために使用されます。Redis、PostgreSQL、およびConsulサービスは、デフォルトで無効になっています。
Redisサーバーのロール
Redisロールの使用に関するドキュメントは、Configuring Redis for Scalingにあります
redis_sentinel_role(gitlab-ee)マシン上でセンチネルサービスを有効にします。
デフォルトでは、他のサービスは有効になりません。
redis_master_role(gitlab-ee)Redisサービスとモニタリングを有効にし、マスターパスワードの設定を許可します
デフォルトでは、他のサービスは有効になりません。
redis_replica_role(gitlab-ee)Redisサービスとモニタリングを有効にします
デフォルトでは、他のサービスは有効になりません。
GitLab Geoロール
GitLab Geoロールは、GitLab Geoサイトの設定に使用されます。設定手順については、Geo Setup Documentationを参照してください。
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ログカーソル
geo-logcursorを有効にします。 - 再構成中に読み取り専用レプリカデータベースでの自動データベース移行を無効にします。
- 他のサービスのためにメモリを節約するために、Pumaワーカーの数を減らします。
gitlab_rails['enable'] = trueを設定します。
このロールは、単一ノードで実行されているGeoセカンダリサイトで使用することを目的としています。複数のノードを持つGeoサイトでこのロールを使用する場合は、不要なサービスを
/etc/gitlab/gitlab.rbで明示的に無効にする必要があります。複数のノード用のGeoをセットアップするこのロールは、GeoセカンダリサイトでPostgreSQLクラスタリングをセットアップするために使用しないでください。代わりに、Geoマルチノードデータベースレプリケーションを参照してください。
デフォルトでは、すべてのGitLabデフォルト単一ノードサービスが有効になります。(NGINX、Puma、Redis、Sidekiqなど)
モニタリングロール
モニタリングロールは、インストールのモニタリングを設定するために使用されます。詳細については、モニタリングのドキュメントを参照してください。
monitoring_role(gitlab-ce/gitlab-ee)メトリクスを収集し、ダッシュボードを提供するための中央モニタリングサーバーを設定します。
PrometheusとAlertmanagerを有効にします。
PostgreSQLロール
PostgreSQLロールの使用方法に関するドキュメントは、Configuring PostgreSQL for Scalingにあります
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管理ドキュメントを参照してください
pages_role(gitlab-ce/gitlab-ee)GitLab Pagesインスタンスを使用してサーバーを設定します。
デフォルトでは、他のサービスは有効になりません。
Sidekiqロール
Sidekiqロールは、Sidekiqを設定するために使用されます。詳細については、Sidekiq管理ドキュメントを参照してください
sidekiq_role(gitlab-ce/gitlab-ee)Sidekiqサービスを使用してサーバーを設定します。
デフォルトでは、他のサービスは有効になりません。
Spamcheckロール
Spamcheckロールは、Spamcheckサービスを設定するために使用されます。詳細については、Spamcheckドキュメントを参照してください
spamcheck_role(gitlab-ee)Spamcheckおよびスパム分類子サービスを使用してサーバーを設定します。
デフォルトでは、他のサービスは有効になりません。
Gitalyロール
Gitalyロールは、Gitalyサービスを設定するために使用されます。詳細については、Gitalyドキュメントを参照してください
gitaly_role(gitlab-ce/gitlab-ee)Gitalyサービスを使用してサーバーを設定します。
デフォルトでは、他のサービスは有効になりません。