14.3. スタンドアロン Red Hat Quay を使用した Geo レプリケーション
上記の例では、Quay は共通のデータベースおよび共通の Redis インスタンスを持つ 2 つのリージョンでスタンドアロンを実行します。ローカライズされたイメージストレージは各リージョンで提供され、最も近くにある利用可能なストレージエンジンからイメージプルが提供されます。コンテナーイメージのプッシュは、Quay インスタンスの推奨ストレージエンジンに書き込まれ、次にバックグラウンドで他のストレージエンジンに複製されます。
たとえば米国のクラスターなど、1 つのクラスターで Clair に障害が発生した場合に、米国のユーザーに 2 番目のクラスター (EU) の脆弱性レポートを Quay を表示しません。これは、すべての Clair インスタンスの状態が同じであるためです。Clair に障害が発生した場合、通常はクラスター内の問題が原因です。
14.3.1. ストレージレプリケーションを有効にする - スタンドアロン Quay
-
スクロールダウンして、
Registry Storage
というセクションに進みます。 -
Enable Storage Replication
をクリックします。 - データを複製するストレージエンジンをそれぞれ追加します。使用するすべてのストレージエンジンをリストに載せる必要があります。
-
すべてのイメージをすべてのストレージエンジンに完全にレプリケートする必要がある場合は、各ストレージエンジンの設定の下で
Replicate to storage engine by default
をクリックします。これにより、すべてのイメージがそのストレージエンジンにレプリケートされます。代わりに名前空間ごとのレプリケーションを有効にするには、サポートにお問い合わせください。 -
完了したら、
Save Configuration Changes
をクリックします。設定変更は、Red Hat Quay が次回再起動したときに有効になります。 ストレージを追加し、Geo レプリケーションの Replicate to storage engine by default を有効にした後、既存のイメージデータをすべてのストレージで同期する必要があります。そのためには、コンテナーに
oc exec
(または docker/kubectl exec) して実行する必要があります。# scl enable python27 bash # python -m util.backfillreplication
この操作は、新しいストレージを追加した後にコンテンツを同期するための 1 回限りの操作です。
14.3.2. ストレージの環境設定による Red Hat Quay の実行
- config.yaml を Red Hat Quay を実行しているすべてのマシンにコピーします。
各リージョンの各マシンは、マシンが稼働しているリージョンの優先ストレージエンジンを持つ
QUAY_DISTRIBUTED_STORAGE_PREFERENCE
環境変数を追加します。たとえば、ヨーロッパで稼働しているマシンで、ホスト上の config ディレクトリーが
$QUAY/config
から利用できる場合です。$ sudo podman run -d --rm -p 80:8080 -p 443:8443 \ --name=quay \ -v $QUAY/config:/conf/stack:Z \ -e QUAY_DISTRIBUTED_STORAGE_PREFERENCE=europestorage \ registry.redhat.io/quay/quay-rhel8:v3.7.13
注記指定された環境変数の値は、コンフィグパネルで定義されたロケーション ID の名前と一致する必要があります。
- すべての Red Hat Quay コンテナーを再起動します。