1ステップのインポート
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
オフラインガベージコレクションを定期的に実行する場合は、ワンステップインポート方式を使用してください。この方法は、3段階のインポート方法よりも簡単な操作です。
ワンステップインポート
レジストリは、インポート中はシャットダウンするか、read-onlyモードのままにする必要があります。そうしないと、インポート中に書き込まれたデータにアクセスできなくなったり、不整合が発生したりする可能性があります。
/etc/gitlab/gitlab.rbファイルのregistry['database']セクションで、データベースが無効になっていることを確認します:registry['database'] = { 'enabled' => false, # Must be false! }レジストリが
read-only読み取り専用モードに設定されていることを確認します。/etc/gitlab/gitlab.rbを編集し、maintenanceセクションをregistry['storage']設定に追加します。たとえば、gcsバックエンドレジストリでgs://my-company-container-registryバケットを使用する場合、設定は次のようになります:## Object Storage - Container Registry registry['storage'] = { 'gcs' => { 'bucket' => '<my-company-container-registry>', 'chunksize' => 5242880 }, 'maintenance' => { 'readonly' => { 'enabled' => true # Must be set to true. } } }ファイルを保存してGitLabを再設定します。
次のコマンドを実行します:
sudo -u registry gitlab-ctl registry-database import --log-to-stdoutコマンドが正常に完了すると、レジストリは完全にインポートされます。データベースを有効にし、設定で読み取り専用モードをオフにして、レジストリサービスを開始できます:
registry['database'] = { 'enabled' => true, # Must be enabled now! } ## Object Storage - Container Registry registry['storage'] = { 'gcs' => { 'bucket' => '<my-company-container-registry>', 'chunksize' => 5242880 }, 'maintenance' => { 'readonly' => { 'enabled' => false } } }ファイルを保存してGitLabを再設定します。
前提条件:
- 外部データベースを作成します。
/etc/gitlab/gitlab.rbファイルにdatabaseセクションを追加しますが、最初にメタデータデータベースを無効にして開始します:registry['database'] = { 'enabled' => false, # Must be false! 'host' => '<registry_database_host_placeholder_change_me>', 'port' => 5432, # Default, but set to the port of your database instance if it differs. 'user' => '<registry_database_username_placeholder_change_me>', 'password' => '<registry_database_placeholder_change_me>', 'dbname' => '<registry_database_name_placeholder_change_me>', 'sslmode' => 'require', # See the PostgreSQL documentation for additional information https://www.postgresql.org/docs/16/libpq-ssl.html. 'sslcert' => '</path/to/cert.pem>', 'sslkey' => '</path/to/private.key>', 'sslrootcert' => '</path/to/ca.pem>' }レジストリが
read-only読み取り専用モードに設定されていることを確認します。/etc/gitlab/gitlab.rbを編集し、maintenanceセクションをregistry['storage']設定に追加します。たとえば、gcsバックのレジストリでgs://my-company-container-registryバケットを使用する場合、設定は次のようになります:## Object Storage - Container Registry registry['storage'] = { 'gcs' => { 'bucket' => '<my-company-container-registry>', 'chunksize' => 5242880 }, 'maintenance' => { 'readonly' => { 'enabled' => true # Must be set to true. } } }ファイルを保存してGitLabを再設定します。
まだデータベースの移行を適用していない場合。
次のコマンドを実行します:
sudo gitlab-ctl registry-database importコマンドが正常に完了すると、レジストリは完全にインポートされます。データベースを有効にし、設定で読み取り専用モードをオフにして、レジストリサービスを開始できるようになりました:
registry['database'] = { 'enabled' => true, # Must be enabled now! 'host' => '<registry_database_host_placeholder_change_me>', 'port' => 5432, # Default, but set to the port of your database instance if it differs. 'user' => '<registry_database_username_placeholder_change_me>', 'password' => '<registry_database_placeholder_change_me>', 'dbname' => '<registry_database_name_placeholder_change_me>', 'sslmode' => 'require', # See the PostgreSQL documentation for additional information https://www.postgresql.org/docs/16/libpq-ssl.html. 'sslcert' => '</path/to/cert.pem>', 'sslkey' => '</path/to/private.key>', 'sslrootcert' => '</path/to/ca.pem>' } ## Object Storage - Container Registry registry['storage'] = { 'gcs' => { 'bucket' => '<my-company-container-registry>', 'chunksize' => 5242880 }, 'maintenance' => { 'readonly' => { 'enabled' => false } } }ファイルを保存してGitLabを再設定します。
すべての操作でメタデータデータベースを使用できるようになりました。