Geoサイト管理エリア

GitLab Geoサイトの様々な設定を行うことができます。詳しくはGeoドキュメントをご覧ください。

プライマリサイトかセカンダリサイトのどちらかで

  1. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  2. Admin Areaを選択します。
  3. Geo > Sitesを選択します。

共通設定

すべての Geo サイトには以下の設定があります:

設定説明
プライマリーGeo サイトをプライマリサイトとしてマークします。プライマリサイトは1 つだけです。
名前Geoサイトのユニークな識別子。物理的な場所を名前として使用することを強くお勧めします。良い例としては、”London Office” や “us-east-1” などがあります。プライマリ」、「セカンダリ」、「Geo」、「DR」といった言葉は避けてください。物理的な場所は変わりませんが、Geo サイトのロールは変わる可能性があるためです。単一の Geo サイト内のすべてのノードは、同じサイト名を使用します。ノードは/etc/gitlab/gitlab.rbgitlab_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です。変更するには

  1. 左のサイドバーで、Search を選択するか、次のページに進んでください。
  2. Admin Areaを選択します。
  3. Geo > Sitesを選択します。
  4. カスタマイズしたいサイトの[編集]を選択します。
  5. 内部URLを編集します。
  6. 変更を保存を選択します。

有効になっている場合、Geo の管理領域には、プライマリ サイトの UI から直接、および Geo セカンダリ プロキシ(有効になっている場合)を通して、各サイトのレプリケーションの詳細が表示されます。

caution
Geo サイトの設定には HTTPS 接続を使うことをお勧めします。HTTPS を使用する際にプライマリサイトと セカンダリサイト間の通信が切断されるのを避けるため、内部 URL をロードバランサーを指すようにカスタマイズし、ロードバランサーで TLS を終了させてください。
caution
GitLab 13.3から13.11までは、ユーザーがアクセスできない内部URLを使用すると、ユーザーが外部URLではなく内部URLにリダイレクトされるため、OAuth認証フローが正しく動作しません。

ロードバランサーの背後にある複数のセカンダリサイト

各 Geo サイトに一意なname が設定されていれば、セカンダリサイトは同一の内部 URL を使うことができます。gitlab.rb の設定gitlab_rails['geo_node_name'] は必須です:

  • pumasidekiq 、またはgeo_logcursor を実行する GitLab インスタンスごとに設定する必要があります。
  • Geo サイト名にマッチします。

ロードバランサはスティッキーセッションを使い、認証失敗やクロスサイトリクエストエラーを 避けなければなりません。