14.3. スタンドアロン Red Hat Quay を使用した Geo レプリケーション


次の図では、Red Hat Quay が 2 つの別々のリージョンでスタンドアロンで実行されており、共通のデータベースと共通の Redis インスタンスが使用されています。ローカライズされたイメージストレージは各リージョンで提供され、最も近くにある利用可能なストレージエンジンからイメージプルが提供されます。コンテナーイメージのプッシュは、Red Hat Quay インスタンスの優先ストレージエンジンに書き込まれ、バックグラウンドで他のストレージエンジンに複製されます。

注記

1 つのクラスター (たとえば、US クラスター) で Clair に障害が発生した場合、米国のユーザーには Red Hat Quay で 2 番目のクラスター (EU) の脆弱性レポートが表示されません。これは、すべての Clair インスタンスの状態が同じであるためです。Clair に障害が発生した場合、通常はクラスター内の問題が原因です。

Geo レプリケーションのアーキテクチャー

Geo-replication

14.3.1. ストレージレプリケーションを有効にする - スタンドアロン Quay

以下の手順を使用して、Red Hat Quay でストレージのレプリケーションを有効にします。

手順

  1. Red Hat Quay 設定エディターで、Registry Storage セクションを見つけます。
  2. Enable Storage Replication をクリックします。
  3. データを複製するストレージエンジンをそれぞれ追加します。使用するすべてのストレージエンジンをリストに載せる必要があります。
  4. すべてのイメージをすべてのストレージエンジンに完全に複製する必要がある場合は、各ストレージエンジン設定の下にある Replicate to storage engine by default をクリックします。これにより、すべてのイメージがそのストレージエンジンにレプリケートされます。

    注記

    名前空間ごとのレプリケーションを有効にするには、Red Hat Quay サポートにお問い合わせください。

  5. 完了したら、Save Configuration Changes をクリックします。設定の変更は、Red Hat Quay の再起動後に有効になります。
  6. ストレージを追加して Geo レプリケーションの Replicate to storage engine by default を有効にした後、すべてのストレージで既存のイメージデータを同期する必要があります。これを行うには、コンテナーに対して oc exec (または docker exec または kubectl exec) を実行し、次のコマンドを入力する必要があります。

    # scl enable python27 bash
    # python -m util.backfillreplication
    注記

    この操作は、新しいストレージを追加した後にコンテンツを同期するための 1 回限りの操作です。

14.3.2. ストレージの環境設定による Red Hat Quay の実行

  1. config.yaml を Red Hat Quay を実行しているすべてのマシンにコピーします。
  2. 各リージョンの各マシンは、マシンが稼働しているリージョンの優先ストレージエンジンを持つ 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.9.7
    注記

    指定された環境変数の値は、コンフィグパネルで定義されたロケーション ID の名前と一致する必要があります。

  3. すべての Red Hat Quay コンテナーを再起動します。

14.3.3. スタンドアロン Red Hat Quay デプロイメントから geo レプリケートされたサイトを削除する

以下の手順を使用すると、Red Hat Quay 管理者は geo レプリケートされたセットアップ内のサイトを削除できます。

前提条件

  • 少なくとも 2 つのサイト (例: usstorageeustorage) を使用して Red Hat Quay geo レプリケーションを設定している。
  • 各サイトに、独自の組織、リポジトリー、およびイメージタグがある。

手順

  1. 次のコマンドを実行して、定義されたすべてのサイト間で BLOB を同期します。

    $ python -m util.backfillreplication
    警告

    Red Hat Quay config.yaml ファイルからストレージエンジンを削除する前に、定義されているすべてのサイト間ですべての BLOB が同期されていることを確認する 必要があります。続行する前に、この手順を完了してください。

  2. サイト usstorage の Red Hat Quay config.yaml ファイルで、eustorage サイトの DISTRIBUTED_STORAGE_CONFIG エントリーを削除します。
  3. 次のコマンドを入力して、実行中のコンテナーのリストを取得します。

    $ podman ps

    出力例

    CONTAINER ID  IMAGE                                                                     COMMAND         CREATED         STATUS             PORTS                                        NAMES
    92c5321cde38  registry.redhat.io/rhel8/redis-5:1                                        run-redis       11 days ago     Up 11 days ago     0.0.0.0:6379->6379/tcp                       redis
    4e6d1ecd3811  registry.redhat.io/rhel8/postgresql-13:1-109                              run-postgresql  33 seconds ago  Up 34 seconds ago  0.0.0.0:5432->5432/tcp                       postgresql-quay
    d2eadac74fda  registry-proxy.engineering.redhat.com/rh-osbs/quay-quay-rhel8:v3.9.0-131  registry        4 seconds ago   Up 4 seconds ago   0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp  quay

  4. 次のコマンドを入力して、PostgreSQL コンテナー内でシェルを実行します。

    $ podman exec -it postgresql-quay -- /bin/bash
  5. 次のコマンドを実行して psql を入力します。

    bash-4.4$ psql
  6. 次のコマンドを入力して、geo レプリケートされたデプロイメント内のサイトのリストを表示します。

    quay=# select * from imagestoragelocation;

    出力例

     id |       name
    ----+-------------------
      1 | usstorage
      2 | eustorage

  7. 次のコマンドを入力して postgres CLI を終了し、bash-4.4 に再度入ります。

    \q
  8. 次のコマンドを入力して、eustorage サイトを完全に削除します。

    重要

    次の操作は元に戻すことができません。注意して使用してください。

    bash-4.4$ python -m util.removelocation eustorage

    出力例

    WARNING: This is a destructive operation. Are you sure you want to remove eustorage from your storage locations? [y/n] y
    Deleted placement 30
    Deleted placement 31
    Deleted placement 32
    Deleted placement 33
    Deleted location eustorage

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.