GitLabコンテナレジストリメタデータデータベースをGeoと連携して使用する
GitLabコンテナレジストリをGeoと連携して使用し、コンテナイメージをレプリケートする。各Geoサイトのコンテナレジストリメタデータデータベースは独立しており、Postgresのレプリケーションを使用しません。
各セカンダリサイトは、メタデータデータベース用に独自のPostgreSQLインスタンスを持つ必要があります。
GitLabインスタンスをコンテナレジストリおよびGeoで作成する
前提条件:
- 新規GitLabインスタンス。
- データのないインスタンス用に構成されたコンテナレジストリ。
Geoサポートをセットアップするには:
- プライマリサイトとセカンダリサイト向けにGeoをセットアップします。詳細については、2つの単一ノードGeoサイト向けにGeoをセットアップするを参照してください。
- プライマリサイトとセカンダリサイトで、各サイト用に個別の外部データベースを使用してメタデータデータベースをセットアップします。
- コンテナレジストリのレプリケーションを設定します。
既存のGeoサイトにコンテナレジストリを追加する
前提条件:
- 新規GitLabインスタンス2つをプライマリサイトおよびセカンダリサイトとしてセットアップ済み。
- プライマリサイト用にデータのないコンテナレジストリが設定済み。
既存のGeoセカンダリサイトにコンテナレジストリを追加するには:
- セカンダリサイトで、コンテナレジストリを有効にする。
- プライマリサイトとセカンダリサイトで、各サイト用に個別の外部データベースを使用してメタデータデータベースをセットアップします。
- コンテナレジストリのレプリケーションを設定します。
既存のGitLabインスタンスにGeoサポートとコンテナレジストリを追加する
前提条件:
- コンテナレジストリが設定されていない既存のGitLabインスタンス。
- 既存のGeoサイトなし。
既存のインスタンスにGeoサポートとコンテナレジストリを両方のGeoサイトに追加するには:
- 既存のインスタンス(プライマリ)用にGeoをセットアップし、セカンダリサイトを追加します。詳細については、2つの単一ノードGeoサイト向けにGeoをセットアップするを参照してください。
- プライマリサイトとセカンダリサイトで:
- コンテナレジストリを有効にする。
- 各サイト用に個別の外部データベースを使用してメタデータデータベースをセットアップします。
- コンテナレジストリのレプリケーションを設定します。
設定済みのコンテナレジストリを持つインスタンスにGeoサポートを追加する
以下のセクションでは、設定済みのコンテナレジストリを持つ既存のGitLabインスタンスにGeoサポートを追加する手順を説明します。
次のいずれかを設定できます:
- 外部データベース接続。
- デフォルトのコンテナレジストリメタデータデータベース。
外部コンテナレジストリメタデータデータベースを使用する
前提条件:
- コンテナレジストリが設定されている既存のGitLabインスタンス。
- 既存のGeoサイトなし。
既存のインスタンスにGeoサポートとコンテナレジストリをセカンダリサイトに追加するには:
- 既存のインスタンス(プライマリ)用にGeoをセットアップし、セカンダリサイトを追加します。詳細については、2つの単一ノードGeoサイト向けにGeoをセットアップするを参照してください。
- セカンダリサイトで:
- コンテナレジストリを有効にします。
- 個別の外部データベースを使用してメタデータデータベースをセットアップします。
- コンテナレジストリのレプリケーションを設定します。
デフォルトのコンテナレジストリメタデータデータベースを使用する
前提条件:
- コンテナレジストリが設定されている既存のGitLabインスタンス。
- デフォルトのPostgreSQLインスタンスを使用するコンテナレジストリメタデータデータベース。
- 既存のGeoサイトなし。
このシナリオでは、メタデータデータベースを外部PostgreSQLインスタンスに移動する必要があります。
- ここに示す手順に従って、メタデータデータベースを外部PostgreSQLインスタンスに移動します。
- 既存のGitLabインスタンスにGeoサポートとコンテナレジストリを追加する手順に進みます。
コンテナレジストリをレガシーメタデータから移行する
このシナリオでは、既存のGeoサイトにあるコンテナレジストリを、レガシーメタデータから外部PostgreSQLメタデータデータベースに移行する必要があります。
前提条件:
- GitLab 17.3以降(データベースメタデータサポート)
- プライマリサイトとセカンダリサイトでGeoが設定されていること
- 両サイトのコンテナレジストリがレガシーメタデータを使用していること
- 両方のレジストリに既存のデータ(コンテナイメージがプッシュされたもの)があること
移行手順
ダウンタイムはインポート方法によって異なります。インポート方法の推奨事項については、適切なインポート方法を選択する方法を参照してください。
移行中のレジストリは読み取り専用になります。
移行中も、残りのGeoレプリケーションは続行されます。
メタデータデータベースを移行するには:
- セカンダリサイトで、既存のレガシーメタデータを新しいメタデータデータベースに移行する。
- プライマリサイトで、既存のレガシーメタデータを新しいメタデータデータベースに移行する。
- Geoレプリケーションが引き続き機能していることを確認します。