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