概念実証 - Red Hat Quay のデプロイ
はじめに リンクのコピーリンクがクリップボードにコピーされました!
次の 概念実証 のデプロイメント方法は、実稼働環境ではサポートされていません。このデプロイメントタイプはローカルストレージを使用します。ローカルストレージは、Red Hat Quay などのストレージレジストリーが要求する並行アクセスの際に、必要な読み取り後の書き込みの一貫性とデータの整合性を提供する保証はありません。このデプロイメントタイプは、実稼働環境では使用しないでください。テスト目的でのみ使用してください。
Red Hat Quay は、コンテナーイメージをビルドして、保護し、これを提供するためのエンタープライズ品質のレジストリーです。このドキュメントでは、概念実証 (非実稼働) 目的で Red Hat Quay をデプロイする方法を詳しく説明します。このドキュメントの主な目的は次のとおりです。
- 基本的な非実稼働目的で Red Hat Quay をデプロイする方法
- イメージのプッシュ、プル、タグ付け、整理の方法など、Red Hat Quay のコンテナーイメージ管理の評価
- 可用性とスケーラビリティーの調査
- SSL/TLS 証明書を使用した高度な Red Hat Quay 概念実証環境をデプロイする方法
このドキュメントの主な目的以外にも、概念実証デプロイメントを使用して、Red Hat Quay が提供するさまざまな機能をテストできます。たとえば、スーパーユーザーの設定、リポジトリークォータ制限の設定、アクションログストレージ用の Splunk の有効化、脆弱性レポート用の Clair の有効化などです。このガイドの手順を実行した後に利用できる機能のリストは、「次のステップ」セクションを参照してください。
この概念実証のデプロイ手順は、単一の物理または仮想マシン上で実行できます。
第1章 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux (RHEL) 9
- Red Hat Enterprise Linux (RHEL) 9 の最新バージョンを入手するには、Red Hat Enterprise Linux のダウンロード を参照してください。
- インストール手順は、Red Hat Enterprise Linux 9 の製品ドキュメント を参照してください。
- Red Hat への有効なサブスクリプション
- 2 つ以上の仮想 CPU
- 4 GB 以上の RAM
テストシステムに約 30 GB のディスク容量。次のように分類できます。
- Red Hat Enterprise Linux (RHEL) オペレーティングシステム用に約 10 GB のディスク容量。
- 3 つのコンテナーを実行するための Docker ストレージ用に約 10 GB のディスク容量。
Red Hat Quay ローカルストレージ用に約 10 GB のディスク容量。
注記CEPH またはその他のローカルストレージでは、より多くのメモリーが必要になる場合があります。
サイジングの詳細は Quay 3.x Sizing Guidelines を参照してください。
Red Hat Quay では次のアーキテクチャーがサポートされています。
- amd64/x86_64
- s390x
- ppc64le
1.1. Podman のインストール リンクのコピーリンクがクリップボードにコピーされました!
このドキュメントでは、コンテナーを作成し、デプロイするために Podman を使用します。
Podman および関連技術の詳細は、Red Hat Enterprise Linux 9 のコンテナーの構築、実行、および管理 を参照してください。
システムに Podman がインストールされていない場合は、同等の Docker コマンドを使用できる可能性がありますが、これは、推奨しません。Docker は Red Hat Quay 3.12 でテストされておらず、今後のリリースで非推奨になる予定です。Podman は、高可用性と実稼働レベルの品質を備えた Red Hat Quay 3.12 をデプロイする場合に推奨されます。
次の手順を使用して、Podman をインストールします。
手順
次のコマンドを入力して、Podman をインストールします。
sudo yum install -y podman
$ sudo yum install -y podmanCopy to Clipboard Copied! Toggle word wrap Toggle overflow または、コンテナーソフトウェアパッケージの完全なセットをプルする
container-toolsモジュールをインストールできます。sudo yum module install -y container-tools
$ sudo yum module install -y container-toolsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第2章 Red Hat Quay の概念実証デプロイメントのための Red Hat Enterprise Linux の準備 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を使用して、Red Hat Quay の概念実証デプロイメント用に Red Hat Enterprise Linux (RHEL) を設定します。
2.1. RHEL サーバーのインストールおよび登録 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を使用して、Red Hat Quay の概念実証デプロイメント用に Red Hat Enterprise Linux (RHEL) サーバーを設定します。
手順
- 最新の RHEL 9 サーバーをインストールします。最小インストール (シェルアクセスのみ) を実行するか、Server plus GUI (デスクトップが必要な場合) を実行できます。
- Red Hat Subscription-Manager を使用して RHEL システムを Red Hat Customer Portal に登録およびサブスクライブする方法 の説明に従って、RHEL サーバーシステムを登録およびサブスクライブします。
以下のコマンドを入力して、システムを登録し、利用可能なサブスクリプションを一覧表示します。利用可能な RHEL サーバーのサブスクリプションを選択し、プール ID に割り当て、最新のソフトウェアにアップグレードします。
subscription-manager register --username=<user_name> --password=<password> subscription-manager refresh subscription-manager list --available subscription-manager attach --pool=<pool_id> yum update -y
# subscription-manager register --username=<user_name> --password=<password> # subscription-manager refresh # subscription-manager list --available # subscription-manager attach --pool=<pool_id> # yum update -yCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2. レジストリー認証 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を使用して、Red Hat Quay の概念実証のためにレジストリーを認証します。
手順
Red Hat Container Registry の認証 手順に従って、
registry.redhat.ioへの認証を設定します。認証を設定すると、Quayコンテナーをプルできます。注記これは、イメージが Quay.io でホストされていた以前のバージョンの Red Hat Quay とは異なります。
次のコマンドを入力して、レジストリーにログインします。
sudo podman login registry.redhat.io
$ sudo podman login registry.redhat.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザー名のパスワードの入力を求められます。
2.3. ファイアウォールの設定 リンクのコピーリンクがクリップボードにコピーされました!
システムでファイアウォールを実行している場合は、Red Hat Quay へのアクセスが許可されるルールを追加する必要がある場合があります。次の手順を使用して、概念実証のデプロイメントのためにファイアウォールを設定します。
手順
必要なコマンドは、システムにマップしたポートによって異なります。次に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4. IP アドレスおよび命名サービス リンクのコピーリンクがクリップボードにコピーされました!
相互に通信できるように Red Hat Quay でコンポーネントコンテナーを設定するには、いくつかの方法があります。次に例を示します。
- ネームサービスの使用。コンテナーの再起動によって通常は IP アドレスが変更される場合でもデプロイメントを存続したい場合は、ネーミングサービスを実装できます。たとえば、dnsname プラグインは、コンテナーが名前で相互を解決できるように使用します。
-
ホストネットワークの使用。
podman runコマンドを--net=hostオプションと共に使用してから、アドレスを設定に指定する際にホストでコンテナーポートを使用できます。このオプションは、2 つのコンテナーが同じポートを使用する必要がある場合に、ポートの競合の影響を受けやすくなります。この方法は、推奨しません。 - ポートマッピングの設定。ポートマッピングを使用してホスト上のポートを公開し、これらのポートをホストの IP アドレスまたはホスト名と組み合わせて使用できます。
このドキュメントでは、ポートマッピングを使用し、ホストシステムの静的 IP アドレスを使用することを前提としています。
| コンポーネント | ポートマッピング | アドレス |
|---|---|---|
| Quay |
| http://quay-server.example.com |
| Postgres for Quay |
| quay-server.example.com:5432 |
| Redis |
| quay-server.example.com:6379 |
| Postgres for Clair V4 |
| quay-server.example.com:5433 |
| Clair V4 |
| http://quay-server.example.com:8081 |
第3章 Red Hat Quay をデプロイするためのシステムの準備 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay の概念実証環境をデプロイするには、ポートマッピング、データベース、および Redis を設定してからレジストリーをデプロイする必要があります。以下の手順に従って、Red Hat Quay をデプロイするためにシステムを準備します。
3.1. Red Hat Quay のポートマッピングの設定 リンクのコピーリンクがクリップボードにコピーされました!
ポートマッピングを使用してホスト上のポートを公開し、そのポートをホスト IP アドレスまたはホスト名と組み合わせて使用して、Red Hat Quay のエンドポイントに移動できます。
手順
次のコマンドを入力して、ホストシステムの静的 IP アドレスを取得します。
ip a
$ ip aCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
--- link/ether 6c:6a:77:eb:09:f1 brd ff:ff:ff:ff:ff:ff inet 192.168.1.132/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp82s0 ------ link/ether 6c:6a:77:eb:09:f1 brd ff:ff:ff:ff:ff:ff inet 192.168.1.132/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp82s0 ---Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Quay のエンドポイントに到達するために使用する IP アドレスとローカルホスト名 (例:
quay-server.example.com) を/etc/hostsファイルに追加します。次のコマンドを入力すると、IP アドレスとホスト名が/etc/hostsファイルに追加されたことを確認できます。cat /etc/hosts
$ cat /etc/hostsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
192.168.1.132 quay-server.example.com
192.168.1.132 quay-server.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. データベースの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay には、メタデータを保存するためのデータベースが必要です。このドキュメントでは、全体を通して PostgreSQL を使用しています。このデプロイメントでは、ローカルファイルシステム上のディレクトリーを使用してデータベースデータを永続化します。
PostgreSQL データベースをセットアップするには、次の手順を使用します。
手順
ここでは
$QUAY変数で示されているインストールフォルダーに、次のコマンドを入力して、データベースデータ用のディレクトリーを作成します。mkdir -p $QUAY/postgres-quay
$ mkdir -p $QUAY/postgres-quayCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、適切な権限を設定します。
setfacl -m u:26:-wx $QUAY/postgres-quay
$ setfacl -m u:26:-wx $QUAY/postgres-quayCopy to Clipboard Copied! Toggle word wrap Toggle overflow データベースデータのボリューム定義を使用して、ユーザー名、パスワード、およびデータベース名とポートを指定して、
Postgresコンテナーを起動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Postgres
pg_trgmモジュールがインストールされていることを確認します。sudo podman exec -it postgresql-quay /bin/bash -c 'echo "CREATE EXTENSION IF NOT EXISTS pg_trgm" | psql -d quay -U postgres'
$ sudo podman exec -it postgresql-quay /bin/bash -c 'echo "CREATE EXTENSION IF NOT EXISTS pg_trgm" | psql -d quay -U postgres'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Quayコンテナーにはpg_trgmモジュールが必要です。
3.3. Redis の設定 リンクのコピーリンクがクリップボードにコピーされました!
Redis は、Red Hat Quay によってライブビルダーログに使用されるキーと値のストアです。
以下の手順を使用して、Red Hat Quay の概念実証用の Redis コンテナーをデプロイします。
手順
次のコマンドを入力して、ポートとパスワードを指定して
Redisコンテナーを起動します。sudo podman run -d --rm --name redis \ -p 6379:6379 \ -e REDIS_PASSWORD=strongpassword \ registry.redhat.io/rhel8/redis-6:1-110
$ sudo podman run -d --rm --name redis \ -p 6379:6379 \ -e REDIS_PASSWORD=strongpassword \ registry.redhat.io/rhel8/redis-6:1-110Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第4章 Red Hat Quay のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay デプロイメントを設定したら、次の手順を使用してデプロイできます。
前提条件
- Red Hat Quay データベースが実行されている。
- Redis サーバーが実行されている。
4.1. YAML 設定ファイルの作成 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を使用して、Red Hat Quay をローカルにデプロイします。
手順
次のコマンドを入力して、Red Hat Quay コンテナーのデプロイに使用される最小限の
config.yamlファイルを作成します。touch config.yaml
$ touch config.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の YAML 設定をコピーし、
config.yamlファイルに貼り付けます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Quay 設定バンドルをコピーするディレクトリーを作成します。
mkdir $QUAY/config
$ mkdir $QUAY/configCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Quay 設定ファイルをディレクトリーにコピーします。
cp -v config.yaml $QUAY/config
$ cp -v config.yaml $QUAY/configCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.1. Red Hat Quay スーパーユーザーの設定 リンクのコピーリンクがクリップボードにコピーされました!
オプションで、config.yaml ファイルを編集し必要な設定フィールドを追加してスーパーユーザーを追加できます。スーパーユーザーアカウントのリストは、SUPER_USERS フィールドの配列として保存されます。スーパーユーザーには次の機能があります。
- ユーザー管理
- 組織管理
- サービスキーの管理
- ログの透過性の変更
- 使用状況ログの管理
- グローバルに表示されるユーザーメッセージの作成
手順
SUPER_USERS配列をconfig.yamlファイルに追加します。SERVER_HOSTNAME: quay-server.example.com SETUP_COMPLETE: true SUPER_USERS: - quayadmin ...
SERVER_HOSTNAME: quay-server.example.com SETUP_COMPLETE: true SUPER_USERS: - quayadmin1 ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- このガイドに従う場合は、
quayadminを使用します。
4.2. イメージデータ用のローカルストレージの準備 リンクのコピーリンクがクリップボードにコピーされました!
次の手順を使用して、レジストリーイメージを保存するローカルファイルシステムを設定します。
手順
次のコマンドを入力して、レジストリーイメージを保存するローカルディレクトリーを作成します。
mkdir $QUAY/storage
$ mkdir $QUAY/storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow レジストリーイメージを保存するディレクトリーを設定します。
setfacl -m u:1001:-wx $QUAY/storage
$ setfacl -m u:1001:-wx $QUAY/storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. Red Hat Quay レジストリーのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
次の手順を使用して、Quay レジストリーコンテナーをデプロイします。
手順
次のコマンドを入力して、設定データ用の適切なボリュームとイメージデータ用のローカルストレージを指定して、
Quayレジストリーコンテナーを起動します。sudo podman run -d --rm -p 80:8080 -p 443:8443 \ --name=quay \ -v $QUAY/config:/conf/stack:Z \ -v $QUAY/storage:/datastorage:Z \ registry.redhat.io/quay/quay-rhel8:v3.12.12
$ sudo podman run -d --rm -p 80:8080 -p 443:8443 \ --name=quay \ -v $QUAY/config:/conf/stack:Z \ -v $QUAY/storage:/datastorage:Z \ registry.redhat.io/quay/quay-rhel8:v3.12.12Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第5章 Red Hat Quay の使用 リンクのコピーリンクがクリップボードにコピーされました!
次の手順では、インターフェイスを使用して新しい組織とリポジトリーを作成する方法、および既存のリポジトリーを検索および参照する方法を示します。手順 3 の後に、コマンドラインインターフェイスを使用してレジストリーと対話し、イメージのプルおよびプッシュを実行できます。
手順
-
ブラウザーを使用して
http://quay-server.example.comにある Red Hat Quay レジストリーのユーザーインターフェイスにアクセスします (/etc/hostsファイルとconfig.yamlファイルでホスト名としてquay-server.example.comを設定していることを前提とします)。 -
Create Accountをクリックし、ユーザーを追加します (例:quayadminとパスワードpassword)。 コマンドラインで、レジストリーにログインします。
sudo podman login --tls-verify=false quay-server.example.com
$ sudo podman login --tls-verify=false quay-server.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Username: quayadmin Password: password Login Succeeded!
Username: quayadmin Password: password Login Succeeded!Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.1. Red Hat Quay でのイメージのプッシュとプル リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を使用して、イメージを Red Hat Quay レジストリーにプッシュおよびプルします。
手順
Red Hat Quay レジストリーからイメージのプッシュおよびプルをテストするには、まず外部レジストリーからサンプルイメージをプルします。
sudo podman pull busybox
$ sudo podman pull busyboxCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、イメージのローカルコピーを表示します。
sudo podman images
$ sudo podman imagesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/library/busybox latest 22667f53682a 14 hours ago 1.45 MB
REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/library/busybox latest 22667f53682a 14 hours ago 1.45 MBCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力してこのイメージにタグを付けます。これにより、イメージをレジストリーにプッシュする準備が整います。
sudo podman tag docker.io/library/busybox quay-server.example.com/quayadmin/busybox:test
$ sudo podman tag docker.io/library/busybox quay-server.example.com/quayadmin/busybox:testCopy to Clipboard Copied! Toggle word wrap Toggle overflow イメージをレジストリーにプッシュします。この手順の後に、ブラウザーを使用して、リポジトリーでタグ付けされたイメージを確認できます。
sudo podman push --tls-verify=false quay-server.example.com/quayadmin/busybox:test
$ sudo podman push --tls-verify=false quay-server.example.com/quayadmin/busybox:testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Getting image source signatures Copying blob 6b245f040973 done Copying config 22667f5368 done Writing manifest to image destination Storing signatures
Getting image source signatures Copying blob 6b245f040973 done Copying config 22667f5368 done Writing manifest to image destination Storing signaturesCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドラインからイメージへのアクセスをテストするには、まずイメージのローカルコピーを削除します。
sudo podman rmi quay-server.example.com/quayadmin/busybox:test
$ sudo podman rmi quay-server.example.com/quayadmin/busybox:testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Untagged: quay-server.example.com/quayadmin/busybox:test
Untagged: quay-server.example.com/quayadmin/busybox:testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 今度は Red Hat Quay レジストリーからイメージを再度プルします。
sudo podman pull --tls-verify=false quay-server.example.com/quayadmin/busybox:test
$ sudo podman pull --tls-verify=false quay-server.example.com/quayadmin/busybox:testCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2. スーパーユーザー管理パネルへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
config.yaml ファイルにスーパーユーザーを追加した場合は、以下の手順に従って Red Hat Quay UI の Superuser Admin Panel にアクセスできます。
前提条件
- スーパーユーザーを設定している。
手順
Red Hat Quay UI の Superuser Admin Panel にアクセスするには、UI のナビゲーションペインで現在のユーザーの名前またはアバターをクリックします。次に、Superuser Admin Panel をクリックします。
このページでは、ユーザー、組織、サービスキーの管理、ログの変更、使用状況ログの表示、組織のグローバルメッセージの作成を行うことができます。
第6章 SSL/TLS 証明書を使用した概念実証デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
以下のセクションに従って、SSL/TLS 証明書を使用した Red Hat Quay 概念実証デプロイメントを設定します。
6.1. SSL/TLS の使用 リンクのコピーリンクがクリップボードにコピーされました!
自己署名証明書を使用して Red Hat Quay を設定するには、認証局 (CA) と ssl.cert および ssl.key という名前のプライマリーキーファイルを作成する必要があります。
6.1.1. 認証局の作成 リンクのコピーリンクがクリップボードにコピーされました!
自己署名証明書を使用して Red Hat Quay を設定するには、最初に認証局 (CA) を作成する必要があります。認証局 (CA) を作成するには、次の手順を使用します。
手順
次のコマンドを入力して、ルート CA キーを生成します。
openssl genrsa -out rootCA.key 2048
$ openssl genrsa -out rootCA.key 2048Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、ルート CA 証明書を生成します。
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
$ openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーのホスト名など、証明書の要求に組み込まれる情報を入力します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.1.1. 証明書への署名 リンクのコピーリンクがクリップボードにコピーされました!
証明書に署名するには、次の手順を使用します。
手順
次のコマンドを入力してサーバーキーを生成します。
openssl genrsa -out ssl.key 2048
$ openssl genrsa -out ssl.key 2048Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、署名リクエストを生成します。
openssl req -new -key ssl.key -out ssl.csr
$ openssl req -new -key ssl.key -out ssl.csrCopy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーのホスト名など、証明書の要求に組み込まれる情報を入力します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のようにサーバーのホスト名を指定して、設定ファイルの
openssl.cnfを作成します。openssl.cnf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 設定ファイルを使用して、証明書
ssl.certを生成します。openssl x509 -req -in ssl.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out ssl.cert -days 356 -extensions v3_req -extfile openssl.cnf
$ openssl x509 -req -in ssl.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out ssl.cert -days 356 -extensions v3_req -extfile openssl.cnfCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.2. SSL/TLS の設定 リンクのコピーリンクがクリップボードにコピーされました!
SSL/TLS は、コマンドラインインターフェイス (CLI) を使用して config.yaml ファイルを手動で更新することで設定する必要があります。
6.2.1. コマンドラインインターフェイスを使用した SSL/TLS の設定 リンクのコピーリンクがクリップボードにコピーされました!
CLI を使用して SSL/TLS を設定するには、次の手順を実行します。
前提条件
- 認証局を作成して証明書に署名している。
手順
証明書ファイルとプライマリーキーファイルを設定ディレクトリーにコピーして、それぞれ
ssl.certとssl.keyという名前が付けられていることを確認します。cp ~/ssl.cert ~/ssl.key $QUAY/config
cp ~/ssl.cert ~/ssl.key $QUAY/configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
$QUAY/configディレクトリーに移動します。cd $QUAY/config
$ cd $QUAY/configCopy to Clipboard Copied! Toggle word wrap Toggle overflow config.yamlファイルを編集し、Red Hat Quay が TLS/SSL を処理するように指定します。config.yaml
... SERVER_HOSTNAME: quay-server.example.com ... PREFERRED_URL_SCHEME: https ...
... SERVER_HOSTNAME: quay-server.example.com ... PREFERRED_URL_SCHEME: https ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 次のコマンドを入力して、rootCA.pem ファイルの内容を ssl.cert ファイルの末尾に追加します。
cat rootCA.pem >> ssl.cert
$ cat rootCA.pem >> ssl.certCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
Quayコンテナーを停止します。sudo podman stop quay
$ sudo podman stop quayCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力してレジストリーを再起動します。
sudo podman run -d --rm -p 80:8080 -p 443:8443 \ --name=quay \ -v $QUAY/config:/conf/stack:Z \ -v $QUAY/storage:/datastorage:Z \ registry.redhat.io/quay/quay-rhel8:v3.12.12
$ sudo podman run -d --rm -p 80:8080 -p 443:8443 \ --name=quay \ -v $QUAY/config:/conf/stack:Z \ -v $QUAY/storage:/datastorage:Z \ registry.redhat.io/quay/quay-rhel8:v3.12.12Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3. SSL/TLS 設定のテスト リンクのコピーリンクがクリップボードにコピーされました!
SSL/TLS 設定は、コマンドラインインターフェイス (CLI) を使用してテストできます。SSL/TLS 設定をテストするには、次の手順を使用します。
6.3.1. CLI を使用した SSL/TLS 設定のテスト リンクのコピーリンクがクリップボードにコピーされました!
SSL/TLS 設定は、コマンドラインインターフェイス (CLI) を使用してテストできます。SSL/TLS 設定をテストするには、次の手順を使用します。
CLI を使用して SSL/TLS 設定をテストするには、次の手順を実行します。
手順
次のコマンドを入力して、SSL/TLS が有効な Red Hat Quay レジストリーへのログインを試行します。
sudo podman login quay-server.example.com
$ sudo podman login quay-server.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Error: error authenticating creds for "quay-server.example.com": error pinging docker registry quay-server.example.com: Get "https://quay-server.example.com/v2/": x509: certificate signed by unknown authority
Error: error authenticating creds for "quay-server.example.com": error pinging docker registry quay-server.example.com: Get "https://quay-server.example.com/v2/": x509: certificate signed by unknown authorityCopy to Clipboard Copied! Toggle word wrap Toggle overflow Podman は自己署名証明書を信頼しないため、
--tls-verify=falseオプションを使用する必要があります。sudo podman login --tls-verify=false quay-server.example.com
$ sudo podman login --tls-verify=false quay-server.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Login Succeeded!
Login Succeeded!Copy to Clipboard Copied! Toggle word wrap Toggle overflow 後のセクションで、ルート認証局を信頼するように Podman を設定します。
6.3.2. ブラウザーを使用した SSL/TLS 設定のテスト リンクのコピーリンクがクリップボードにコピーされました!
ブラウザーを使用して SSL/TLS 設定をテストするには、次の手順を実行します。
手順
Red Hat Quay レジストリーエンドポイント (例:
https://quay-server.example.com)に移動します。正しく設定されている場合、潜在的なリスクに関する警告がブラウザーに表示されます。
ログイン画面に進みます。接続が安全ではないという通知がブラウザーに表示されます。以下に例を示します。
次のセクションで、ルート認証局を信頼するように Podman を設定します。
6.4. 認証局を信頼するように Podman を設定する リンクのコピーリンクがクリップボードにコピーされました!
Podman は、/etc/containers/certs.d/ と /etc/docker/certs.d/ の 2 つのパスを使用して認証局 (CA) ファイルを検出します。CA を信頼するように Podman を設定するには、次の手順を使用します。
手順
ルート CA ファイルを
/etc/containers/certs.d/または/etc/docker/certs.d/のいずれかにコピーします。サーバーのホスト名によって決定される正確なパスを使用し、ファイルにca.crtという名前を付けます。sudo cp rootCA.pem /etc/containers/certs.d/quay-server.example.com/ca.crt
$ sudo cp rootCA.pem /etc/containers/certs.d/quay-server.example.com/ca.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Quay レジストリーにログインするときに
--tls-verify=falseオプションを使用する必要がなくなったことを確認します。sudo podman login quay-server.example.com
$ sudo podman login quay-server.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Login Succeeded!
Login Succeeded!Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5. 認証局を信頼するようにシステムを設定 リンクのコピーリンクがクリップボードにコピーされました!
認証局を信頼するようにシステムを設定するには、次の手順を使用します。
手順
次のコマンドを入力して、
rootCA.pemファイルをシステム全体の統合トラストストアにコピーします。sudo cp rootCA.pem /etc/pki/ca-trust/source/anchors/
$ sudo cp rootCA.pem /etc/pki/ca-trust/source/anchors/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、システム全体のトラストストア設定を更新します。
sudo update-ca-trust extract
$ sudo update-ca-trust extractCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション:
trust listコマンドを使用して、Quayサーバーが設定されていることを確認できます。trust list | grep quay
$ trust list | grep quay label: quay-server.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow https://quay-server.example.comでレジストリーを参照すると、接続が安全であることを示すロックアイコンが表示されます。
rootCA.pemファイルをシステム全体の信頼から削除するには、ファイルを削除して設定を更新します。sudo rm /etc/pki/ca-trust/source/anchors/rootCA.pem
$ sudo rm /etc/pki/ca-trust/source/anchors/rootCA.pemCopy to Clipboard Copied! Toggle word wrap Toggle overflow sudo update-ca-trust extract
$ sudo update-ca-trust extractCopy to Clipboard Copied! Toggle word wrap Toggle overflow trust list | grep quay
$ trust list | grep quayCopy to Clipboard Copied! Toggle word wrap Toggle overflow
詳細は、RHEL 9 のドキュメントの 共有システム証明書の使用 を参照してください。
第7章 次のステップ リンクのコピーリンクがクリップボードにコピーされました!
以下のセクションは、Red Hat Quay の概念実証バージョンをデプロイした後に役立ちます。以下の手順の多くは、概念実証デプロイメントで使用でき、Red Hat Quay の機能の詳細情報を提供します。
Red Hat Quay の使用。このガイドでは、次の概念を説明します。
- ユーザーとリポジトリーの追加
- イメージタグの使用
- ビルドワーカーを使用した Dockerfile のビルド
- ビルドトリガーをセットアップする
- リポジトリーイベントの通知の追加
- その他
Red Hat Quay の管理。このガイドでは、次の概念を説明します。
- SSL/TLS の使用
- アクションログストレージの設定
- Clair セキュリティースキャナーの設定
- リポジトリーのミラーリング
- IPv6 およびデュアルスタックデプロイメント
- Red Hat Quay の OIDC の設定
- Geo レプリケーション
- その他