Geoサイト管理エリア
GitLab Geoサイトの様々な設定を行うことができます。詳しくはGeoドキュメントをご覧ください。
プライマリサイトかセカンダリサイトのどちらかで
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- Geo > Sitesを選択します。
共通設定
すべての Geo サイトには以下の設定があります:
設定 | 説明 |
---|---|
プライマリー | Geo サイトをプライマリサイトとしてマークします。プライマリサイトは1 つだけです。 |
名前 | Geoサイトのユニークな識別子。物理的な場所を名前として使用することを強くお勧めします。良い例としては、”London Office” や “us-east-1” などがあります。プライマリ」、「セカンダリ」、「Geo」、「DR」といった言葉は避けてください。物理的な場所は変わりませんが、Geo サイトのロールは変わる可能性があるためです。単一の Geo サイト内のすべてのノードは、同じサイト名を使用します。ノードは/etc/gitlab/gitlab.rb のgitlab_rails['geo_node_name'] 設定を使用して、PostgreSQL データベース内の Geo サイトレコードを検索します。gitlab_rails['geo_node_name'] が設定されていない場合、末尾にスラッシュが付いたノードのexternal_url がフォールバックとして使用されます。Name の値は大文字と小文字を区別し、ほとんどの文字が使用できます。 |
URL | インスタンスのユーザー向けURL。 |
現在閲覧しているサイトは青いCurrent
ラベルで示され、プライマリノードは Primary site
として最初に表示されます。
セカンダリ・サイトの設定
セカンダリ・サイトには、いくつかの追加設定があります:
設定 | 説明 |
---|---|
選択的同期 | このセカンダリサイトのGeo選択同期を有効にします。 |
リポジトリ同期容量 | このセカンダリ・サイトがリポジトリのバックフィル時にプライマリ・サイトに行う同時リクエスト数。 |
ファイル同期容量 | セカンダリ・サイトが プライマリ・サイトにファイルをバックアップする際の同時リクエスト数。 |
Geo バックフィル
セカンダリサイトは、プライマリサイトによるリポジトリやファイルの変更を通知され、常に可能な限り迅速な同期を試みます。
バックフィルとは、セカンダリサイトがデータベースに追加される前に存在していたリポジトリとファイルをセカンダリサイトに追加することです。GitLab はこれらのオペレーションに上限を設けています。
バックフィルにかかる時間は最大同時実行時間に依存しますが、値が大きいほどプライマリサイトへの負担が大きくなります。上限は設定可能です。プライマリサイトに多くの余剰容量がある場合は、値を大きくしてバックフィルを短時間で完了させることができます。負荷が高く、バックフィルによって標準リクエストに対する可用性が低下する場合は、値を下げることができます。
内部URLの設定
セカンダリサイトの内部URLの設定はGitLab 14.7で導入されました。
プライマリサイトとセカンダリサイトの間で、同期用の異なる URL を設定することができます。
プライマリサイトの内部URLは、セカンダリサイトがプライマリサイトに連絡するために使用されます(リポジトリの同期など)。内部URLという名前は、ユーザーが使用する外部URLと区別するためのものです。内部URLは非公開アドレスである必要はありません。
Geoセカンダリのプロキシが有効になっている場合、プライマリはセカンダリの内部URLを使用してセカンダリに直接連絡します。
内部URLのデフォルトは外部URLです。変更するには
- 左のサイドバーで、Search を選択するか、次のページに進んでください。
- Admin Areaを選択します。
- Geo > Sitesを選択します。
- カスタマイズしたいサイトの[編集]を選択します。
- 内部URLを編集します。
- 変更を保存を選択します。
有効になっている場合、Geo の管理領域には、プライマリ サイトの UI から直接、および Geo セカンダリ プロキシ(有効になっている場合)を通して、各サイトのレプリケーションの詳細が表示されます。
ロードバランサーの背後にある複数のセカンダリサイト
各 Geo サイトに一意なname
が設定されていれば、セカンダリサイトは同一の内部 URL を使うことができます。gitlab.rb
の設定gitlab_rails['geo_node_name']
は必須です:
-
puma
、sidekiq
、またはgeo_logcursor
を実行する GitLab インスタンスごとに設定する必要があります。 - Geo サイト名にマッチします。
ロードバランサはスティッキーセッションを使い、認証失敗やクロスサイトリクエストエラーを 避けなければなりません。