13.3. Red Hat Quay を使用してリモートレジストリーをプロキシーする
次の手順では、Red Hat Quay を使用してリモートレジストリーをプロキシーする方法を説明します。この手順は、プロキシー quay.io に設定されています。これにより、ユーザーは podman
を使用して、quay.io 上の任意の名前空間から任意のパブリックイメージをプルできます。
前提条件
-
config.yaml の
FEATURE_PROXY_CACHE
がtrue
に設定されている。 - Member チームのロールが割り当てられている。チームのロールの詳細は、Red Hat Quay のユーザーおよび組織 を参照してください。
手順
- Red Hat Quay v2 UI で、組織の名前 (例: cache-org) をクリックします。
- ナビゲーションペインで、Settings をクリックします。
Remote Registry ボックスに、キャッシュするリモートレジストリーの名前 (例:
quay.io
) を入力し、Save をクリックします。注記Remote Registry に名前空間 (たとえば
quay.io/<namespace>
) を追加すると、組織内のユーザーはその名前空間からのみプロキシーできるようになります。- オプション: Remote Registry username ボックスに、前の手順で指定したリモートレジストリーへの認証に使用するユーザー名を入力します。アップストリームからの匿名プルの場合は、これを空のままにしておくことができます。作成時にユーザー名を設定していない場合は、プロキシーキャッシュを削除して新しいレジストリーを作成しない限り、ユーザー名を追加することはできません。
- オプション: Remote registry password ボックスに、リモートレジストリーへの認証に使用するパスワードを入力します。アップストリームからの匿名プルの場合は、これを空のままにしておくことができます。作成時にユーザー名を設定していない場合は、プロキシーキャッシュを削除して新しいレジストリーを作成しない限り、ユーザー名を追加することはできません。
オプション: Expiration フィールドに時間を設定します。
注記- プロキシー組織でキャッシュされたイメージのデフォルトのタグ Expiration フィールドは 86400 秒に設定されています。プロキシー組織では、タグがプルされるたびに、タグの有効期限が UI の Expiration フィールドに設定された値に更新されます。この機能は、Quay のデフォルトの 個別タグ有効期限 機能とは異なります。プロキシー組織では、個々のタグ機能をオーバーライドできます。これが発生すると、プロキシー組織の Expiration フィールドに従って、個々のタグの有効期限がリセットされます。
- 期限切れのイメージは割り当てられた時間が経過すると消えますが、Red Hat Quay には引き続き保存されます。イメージが完全に削除されるタイミング、またはコレクションされるタイミングは、組織の Time Machine の設定によって異なります。特に指定がない限り、ガベージコレクションのデフォルトの時間は 14 日です。
- オプション: 安全でないプロトコルを使用する場合は、http ボックスをオンにします。チェックされていない場合は、リモートレジストリーを要求するのに https が使用されます。
- Save をクリックします。
検証
CLI で、プロキシーキャッシュとして機能する、指定されたリモートレジストリー (例:
quay.io
) からパブリックイメージをプルします。$ podman pull <registry_url>/<organization_name>/<quayio_namespace>/<image_name>
重要組織がリモートレジストリー内の単一の名前空間からプルするように設定されている場合は、リモートレジストリーの名前空間を URL から省略する必要があります。たとえば、
podman pull <registry_url>/<organization_name>/<image_name>
です。
13.3.1. プロキシー組織でのストレージクォータ制限の活用
Red Hat Quay 3.8 では、プロキシーキャッシュ機能が強化され、タグ付きイメージの自動プルーニング機能が追加されました。イメージタグの自動プルーニングは、プロキシーされた名前空間にクォータ制限が設定されている場合にのみ使用できます。現在、イメージサイズが組織のクォータより大きい場合は、管理者が必要なスペースを作成するまで、イメージのアップロードはスキップされます。現在、割り当てられたスペースを超えるイメージがプッシュされると、自動プルーニングの機能強化により、使用頻度の最も低いタグが削除対象としてマークされます。その結果、新しいイメージタグが保存され、最も使用頻度の低いイメージタグが削除対象としてマークされます。
- 自動プルーニング機能の一部として、削除対象としてマークされたタグは、最終的にガベージコレクター (gc) ワーカープロセスによってガベージコレクションされます。そのため、この期間中はクォータサイズの制限が完全には適用されません。
- 現在、名前空間クォータサイズの計算では、マニフェストの子のサイズは考慮されていません。これは既知の問題であり、Red Hat Quay の今後のバージョンで修正される予定です。
13.3.1.1. プロキシー組織でのストレージクォータ制限機能のテスト
次の手順を使用して、プロキシーキャッシュとストレージクォータ制限が有効になっている組織の自動プルーニング機能をテストします。
前提条件
- 組織がプロキシー組織として機能するように設定されている。次の例では、quay.io からプロキシーします。
-
config.yaml
ファイルのFEATURE_PROXY_CACHE
がtrue
に設定されている。 -
config.yaml
ファイルでFEATURE_QUOTA_MANAGEMENT
がtrue
に設定されている。 -
組織には
150 MB
などのクォータ制限が設定されている。
手順
プロキシー組織からリポジトリーにイメージをプルします。以下に例を示します。
$ podman pull quay-server.example.com/proxytest/projectquay/quay:3.7.9
リポジトリーに残っているスペースによっては、プロキシー組織から追加のイメージのプルが必要になる場合があります。以下に例を示します。
$ podman pull quay-server.example.com/proxytest/projectquay/quay:3.6.2
Red Hat Quay レジストリー UI で、リポジトリーの名前をクリックします。
-
ナビゲーションペインで Tags をクリックし、
quay:3.7.9
とquay:3.6.2
がタグ付けされていることを確認します。
-
ナビゲーションペインで Tags をクリックし、
リポジトリーに割り当てられたクォータを超えるように、最後のイメージをプルします。次に例を示します。
$ podman pull quay-server.example.com/proxytest/projectquay/quay:3.5.1
-
Red Hat Quay レジストリーの Tags ページを更新します。プッシュした最初のイメージ (
quay:3.7.9
など) は、自動プルーニングされているはずです。Tags ページにはquay:3.6.2
とquay:3.5.1
が表示されるはずです。