Geoの設定
前提条件
- GitLabサイトが2つ(またはそれ以上)独立して動作していること:
- 1つのGitLabサイトがGeoプライマリサイトとして機能します。GitLabリファレンスアーキテクチャのドキュメントを使って設定してください。Geoサイトごとに異なるリファレンスアーキテクチャサイズを使うことができます。すでに稼働中のGitLabインスタンスがある場合は、それをプライマリサイトとして使うことができます。
- 2つ目のGitLabサイトはGeoセカンダリサイトとして機能します。GitLabリファレンスアーキテクチャのドキュメントを使ってセットアップしてください。サインインしてテストするのは良い考えです。ただし、プライマリサイトからレプリケートする過程で、セカンダリサイトのデータはすべて失われることに注意してください。
Geoは複数のセカンダリをサポートしています。同じ手順に従って、適宜変更してください。 - プライマリサイトにGeo のロックを解除するGitLab Premium または Ultimateサブスクリプションがあることを確認してください。すべてのサイトに必要なライセンスは 1 つだけです。
- Geo を実行するための要件がすべてのサイトで満たされていることを確認します。例えば、サイトが同じ GitLab バージョンを使用していること、サイト同士が特定のポートで通信できることなどです。
- プライマリサイトと セカンダリサイトのストレージ設定が一致していることを確認します。プライマリGeoサイトがオブジェクトストレージを使用している場合、セカンダリGeoサイトもそれを使用する必要があります。詳細はGeo with Object storage を参照してください。
- プライマリサイトと セカンダリサイト間でクロックが同期されていることを確認します。Geo が正しく機能するためには、クロックの同期が必要です。たとえば、プライマリサイトとセカンダリサイト間のクロックのずれが 1 分を超えると、レプリケーションは失敗します。
Linux パッケージインストールの使用
Linuxパッケージを使ってGitLabをインストールした場合(強くお勧めします)、Geoをセットアップする手順は、シングルノードのGeoサイトをセットアップする必要があるのか、マルチノードのGeoサイトをセットアップする必要があるのかによって異なります。
シングルノードの Geo サイト
両方の Geo サイトが1K リファレンスアーキテクチャに基づいている場合:
- 選択した PostgreSQL インスタンス(
primary (read-write) <-> secondary (read-only)
トポロジー)に基づいてデータベースレプリケーションをセットアップします: - GitLabを設定してプライマリサイトと セカンダリサイトを設定します。
- Geo Siteの使用ガイドに従ってください。
GitLab のデプロイによっては、LDAP、オブジェクトストレージ、コンテナレジストリの追加設定が必要になるかもしれません。
複数ノードのGeoサイト
サイトの 1 つ以上が2K リファレンスアーキテクチャ以上を使用している場合は、複数ノードの Geo 設定を参照してください。
GitLab のデプロイによっては、LDAP、オブジェクトストレージ、コンテナレジストリの追加設定が必要になるかもしれません。
追加の設定
GitLabの使い方によっては、以下の設定が必要になる場合があります:
- プライマリサイトがオブジェクトストレージを使用する場合、セカンダリサイトの オブジェクトストレージレプリケーションを設定します。
- LDAP を使用する場合は、セカンダリサイト 用にセカンダリ LDAP サーバーを設定します。詳細については、Geo を使用した LDAP を参照してください。
- コンテナ レジストリを使用する場合は、プライマリサイトとセカンダリサイトのレプリケーション用にコンテナ レジストリを設定します。
すべての Geo サイトで単一の統一URL を使用するように、統一 URL を設定する必要があります。
GitLab Chart を使う
GitLab Geoを使ってGitLabチャートを設定します。
Geoとセルフコンパイルインストール
セルフコンパイルした GitLab インストールを使用する場合、Geo はサポートされません。
インストール後のドキュメント
セカンダリサイトにGitLabをインストールし、初期設定を行った後、インストール後の情報については以下のドキュメントを参照してください。