概念実証(実稼働以外)向けの Red Hat Quay のデプロイ
Red Hat Quay のデプロイ
概要
前書き リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、コンテナーイメージをビルドし、保護し、これを提供するためのエンタープライズ品質のレジストリーです。この手順では、概念実証(非実稼働)向けの Red Hat Quay のデプロイ方法について説明します。
第1章 概要 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay の機能は次のとおりです。
- 高可用性
- Geo レプリケーション
- リポジトリーのミラーリング
- Docker v2、スキーマ 2(multiarch)のサポート
- 継続的インテグレーション
- Clair によるセキュリティースキャン
- カスタムログローテーション
- ダウンタイムなしのガベージコレクション
- 24 時間サポート
Red Hat Quay は以下のサポートを提供します。
- 複数の認証およびアクセス方法
- 複数のストレージバックエンド
- Quay、Clair、およびストレージバックエンドのカスタム証明書
- アプリケーションレジストリー
- 異なるコンテナーイメージタイプ
1.1. アーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay は、内部と外部の両方で数多くのコアコンポーネントで構成されます。
1.1.1. 内部コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
-
Quay(コンテナーレジストリー): Pod の複数のコンポーネントで構成される
Quay
コンテナーをサービスとして実行します。 - Clair: コンテナーイメージで脆弱性の有無をスキャンし、修正を提案します。
1.1.2. 外部コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
- データベース: Red Hat Quay でプライマリーメタデータストレージとして使用されます。これはイメージストレージ用ではないことに注意してください。
- Redis(key-value store): ライブビルダーログおよび Red Hat Quay チュートリアルを保存します。
クラウドストレージ: サポートされるデプロイメントでは、以下のストレージタイプのいずれかを使用する必要があります。
- パブリッククラウドストレージ: パブリッククラウド環境では、Amazon Web Services の Amazon S3 や Google Cloud の Google Cloud Storage などのクラウドプロバイダーのオブジェクトストレージを使用する必要があります。
- プライベートクラウドストレージ: プライベートクラウドでは、Ceph RADOS や OpenStack Swift などの S3 または Swift 準拠のオブジェクトストアが必要です。
実稼働環境の設定に「ローカルマウントディレクトリー」のストレージエンジンを使用しないでください。マウントされた NFS ボリュームはサポートされません。ローカルストレージは Red Hat Quay テストのみのインストールに使用されることが意図されています。
第2章 Red Hat Quay の使用開始 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay レジストリーは、以下の仕様を使用して、単一のマシン(物理または仮想)で実稼働以外の目的でデプロイできます。
2.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Red Hat Enterprise Linux(RHEL): Downloads ページから 最新の Red Hat Enterprise Linux 8 サーバーメディアを取得し、Red Hat Enterprise Linux 8 の製品ドキュメント でインストール手順に従います。
- 有効な Red Hat サブスクリプション: 有効な Red Hat Enterprise Linux 8 サーバーのサブスクリプションを設定します。
- CPU: 2 つ以上の仮想 CPU
- RAM: 4GB 以上
ディスク領域: 必要なディスク領域は、レジストリーのストレージのニーズによって異なります。テストシステムには約 30 GB のディスク領域があれば十分です(以下は内訳です)。
- 10GB 以上: Red Hat Enterprise Linux オペレーティングシステム用のディスク領域。
- 10GB 以上: docker ストレージ用のディスク容量(3 つのコンテナーを実行するために必要)
- Quay ローカルストレージ用に少なくとも 10GB のディスク領域。CEPH またはその他のローカルストレージにはより多くのメモリーが必要になる場合があることに注意してください。
サイジングについての詳細は Quay 3.x Sizing Guidlines を参照してください。
Red Hat Enterprise Linux(RHEL)8 は、可用性が高く、Red Hat Quay 3.6 の実稼働品質の高いデプロイメントに強く推奨されます。RHEL 7 は Red Hat Quay 3.6 ではテストされておらず、今後のリリースでは非推奨となります。
2.1.1. Podman の使用 リンクのコピーリンクがクリップボードにコピーされました!
本書では、コンテナーを作成し、デプロイするために Podman を使用します。システムに Podman がインストールされていない場合は、同等の Docker コマンドを使用できる必要があります。Podman および関連テクノロジーの詳細は、『 Building, running, and managing Linux containers on Red Hat Enterprise Linux 8 』を参照してください。
Podman は、Red Hat Quay 3.6 の可用性が高く、実稼働向けの品質の高いデプロイメントに強く推奨されます。Docker は Red Hat Quay 3.6 ではテストされておらず、今後のリリースでは非推奨となります。
2.2. Red Hat Enterprise Linux サーバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
2.2.1. RHEL サーバーのインストールおよび登録 リンクのコピーリンクがクリップボードにコピーされました!
- 最新の RHEL 8 サーバーをインストールします。最小インストール(シェルアクセスのみ)を実行するか、または「Server plus GUI」(デスクトップが必要な場合)を実行できます。
- 「 How to register and subscribe a system… 」で説明されているように、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 -y
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.2. Podman のインストール リンクのコピーリンクがクリップボードにコピーされました!
Podman を、システムにインストールされていない場合はインストールします。
sudo yum install -y podman
$ sudo yum install -y podman
Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、コンテナーソフトウェアパッケージの完全なセットをプルする
container-tools
モジュールをインストールできます。sudo yum module install -y container-tools
$ sudo yum module install -y container-tools
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.3. レジストリー認証 リンクのコピーリンクがクリップボードにコピーされました!
「 Red Hat Container Registry Authentication 」で説明されているように、
registry.redhat.io
への認証をセットアップし、Quay
コンテナーをプルできるようにします。これは、イメージがquay.io
でホストされる以前の Red Hat Quay リリースとは異なることに注意してください。以下のコマンドを使用してレジストリーにログインできます。
sudo podman login registry.redhat.io
$ sudo podman login registry.redhat.io Username: <username> Password: <password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.4. ファイアウォールの設定 リンクのコピーリンクがクリップボードにコピーされました!
システムでファイアウォールを実行している場合は、Red Hat Quay へのアクセスが許可されるルールを追加する必要がある場合があります。必要なコマンドは、マップされたポートによって異なります。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.5. IP アドレスおよび命名サービス リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay でコンポーネントコンテナーを設定し、それらが相互に通信できるようにする方法は多数あります。
コンテナーの IP アドレスの使用:
podman inspect
でコンテナーの IP アドレスを判別し、接続文字列を指定する際に設定ツールでこれらの値を使用します。以下に例を示します。sudo podman inspect -f "{{.NetworkSettings.IPAddress}}" postgresql-quay
$ sudo podman inspect -f "{{.NetworkSettings.IPAddress}}" postgresql-quay
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この方法は、コンテナーの IP アドレスが再起動後に変更されるためにホストの再起動の影響を受けます。
- 命名サービスの使用: デプロイメントをコンテナーの再起動後も存続させるようにする必要がある場合、通常は IP アドレスが変更される場合は、命名サービスを実装できます。たとえば、dnsname プラグインは、コンテナーが名前で相互を解決できるように使用します。
-
ホストネットワークの使用 - podman
run
コマンドを--net=host
オプションと共に使用してから、アドレスを設定に指定する際にホストでコンテナーポートを使用できます。2 つのコンテナーが同じポートを使用したい場合、ポートの競合の影響を受けます。したがって、このオプションは推奨されません。 - ポートマッピングの設定: ポートマッピングを使用して ホストでポートを公開し、これらのポートをホスト IP アドレスまたはホスト名と組み合わせて使用できます。
本書では、ポートマッピングを使用し、ホストシステムの静的 IP アドレスを使用することを前提としています。このデプロイメントでは、システムの IP アドレス 192.168.1.112
で quay-server.example.com
を使用し、/etc/hosts
ファイルでこの情報を設定します。
cat /etc/hosts ... 192.168.1.112 quay-server.example.com
$ cat /etc/hosts
...
192.168.1.112 quay-server.example.com
コンポーネント | ポートマッピング | Address |
---|---|---|
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 |
2.3. データベースの設定 リンクのコピーリンクがクリップボードにコピーされました!
Quay には、メタデータを格納するためのデータベースが必要です。Postgres は本書全体で使用され、高可用性設定の場合に推奨されます。または、以下で説明されている設定と同様の方法で MySQL を使用できます。
2.3.1. Postgres のセットアップ リンクのコピーリンクがクリップボードにコピーされました!
この概念実証のシナリオでは、ローカルファイルシステムのディレクトリーを使用してデータベースデータを永続化します。
ここでは $QUAY 変数で示されるインストールフォルダーで、データベースデータのディレクトリーを作成し、パーミッションを適切に設定します。
mkdir -p $QUAY/postgres-quay setfacl -m u:26:-wx $QUAY/postgres-quay
$ mkdir -p $QUAY/postgres-quay $ setfacl -m u:26:-wx $QUAY/postgres-quay
Copy to Clipboard Copied! Toggle word wrap Toggle overflow データベースデータのボリューム定義と共にユーザー名、パスワード、データベース名、ポートを指定して
podman run
を使用してPostgres
コンテナーを起動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Quay で必要な 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
2.4. Redis の設定 リンクのコピーリンクがクリップボードにコピーされました!
Redis は、ライブビルダーログおよび Red Hat Quay チュートリアル用に Quay によって使用される key-value ストアです。
2.4.1. Redis のセットアップ リンクのコピーリンクがクリップボードにコピーされました!
ポートとパスワードを指定して、
podman run
を使用してRedis
を起動します。sudo podman run -d --rm --name redis \ -p 6379:6379 \ -e REDIS_PASSWORD=strongpassword \ registry.redhat.io/rhel8/redis-5:1
$ sudo podman run -d --rm --name redis \ -p 6379:6379 \ -e REDIS_PASSWORD=strongpassword \ registry.redhat.io/rhel8/redis-5:1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5. Red Hat Quay の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay サービスを実行する前に、レジストリー設定、データベース、および Redis 接続パラメーターを含むすべてのコンポーネントの詳細を示す設定ファイルを生成する必要があります。
設定ファイルを生成するには、文字列
secret
などのパスワードを指定して、configモードで
Quay
コンテナーを実行します。sudo podman run --rm -it --name quay_config -p 80:8080 -p 443:8443 registry.redhat.io/quay/quay-rhel8:v3.6.8 config secret
$ sudo podman run --rm -it --name quay_config -p 80:8080 -p 443:8443 registry.redhat.io/quay/quay-rhel8:v3.6.8 config secret
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
ブラウザーを使用して
、http://quay-server.example.com
で設定ツールのユーザーインターフェースにアクセスします。本書では、quay-server.example.com
ホスト名を/etc/hosts ファイルに設定していること
に留意してください。 -
ユーザー名
quayconfig およびパスワード
secret
、または上記のpodman run
コマンドで指定した値を使用してログインします。
2.5.1. Red Hat Quay の設定 リンクのコピーリンクがクリップボードにコピーされました!
設定エディターで、以下の情報を入力します。
- 基本設定
- サーバー構成
- データベース
- Redis
2.5.1.1. 基本設定 リンクのコピーリンクがクリップボードにコピーされました!
基本的な設定設定で、レジストリーのタイトルおよびレジストリーの短いタイトルフィールドに入力します。デフォルト値が設定されていれば、デフォルト値を使用できます。
2.5.1.2. サーバー構成 リンクのコピーリンクがクリップボードにコピーされました!
レジストリーにアクセスできるネットワーク上の場所について HTTP ホストおよびポートを指定します。本書の手順に従っている場合は、quay-server.example.com
を入力します。
2.5.1.3. データベース リンクのコピーリンクがクリップボードにコピーされました!
Database セクションで、Red Hat Quay がメタデータを保存するために使用するデータベースの接続の詳細を指定します。本書の手順に従って概念実証用のシステムをデプロイする場合は、以下の値を入力します。
- Database Type: Postgres
- Database Server: quay-server.example.com:5432
- Username: quayuser
- Password: quaypass
- Database Name: quay
2.5.1.4. Redis リンクのコピーリンクがクリップボードにコピーされました!
Redis の key-value ストアは、リアルタイムイベントとビルドログを保管するために使用されます。本書の手順に従って概念実証用のシステムをデプロイする場合は、以下の値を入力します。
- Redis Hostname: quay-server.example.com
- Redis port: 6379(デフォルト)
- Redis password: strongpassword
2.5.2. 設定の検証およびダウンロード リンクのコピーリンクがクリップボードにコピーされました!
すべての必須フィールドが設定されたら、Validate Configuration Changes
をクリックして設定を検証します。エラーが報告される場合、すべての必須フィールドが有効であり、Red Hat Quay がデータベースおよび Redis サーバーに接続できるまで、設定の編集を継続します。
設定が有効になったら、設定ファイル
をダウンロードします。設定エディターを実行している Quay
コンテナーを停止します。
2.6. Red Hat Quay のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
2.6.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Quay データベースおよび Redis サーバーが実行中である。
- 有効な設定バンドルを生成している。
-
設定エディターの実行に使用した
Quay
コンテナーを停止している。
2.6.2. 設定フォルダーの準備 リンクのコピーリンクがクリップボードにコピーされました!
設定バンドルを展開し、Quay がこれを使用できるようにします。
mkdir $QUAY/config cp ~/Downloads/quay-config.tar.gz $QUAY/config cd $QUAY/config tar xvf quay-config.tar.gz
$ mkdir $QUAY/config $ cp ~/Downloads/quay-config.tar.gz $QUAY/config $ cd $QUAY/config $ tar xvf quay-config.tar.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.3. イメージデータ用のローカルストレージの準備 リンクのコピーリンクがクリップボードにコピーされました!
この概念実証用のデプロイメントでは、ローカルファイルシステムを使用してレジストリーイメージを保存します。
mkdir $QUAY/storage setfacl -m u:1001:-wx $QUAY/storage
$ mkdir $QUAY/storage $ setfacl -m u:1001:-wx $QUAY/storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6.4. Red Hat Quay レジストリーのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Podman run
を使用して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.6.8
$ 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.6.8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.7. Red Hat Quay の使用 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順では、インターフェースを使用し、新しい組織およびリポジトリーを作成し、既存のリポジトリーを検索および参照できます。ステップ 3 に従うと、コマンドラインインターフェースを使用してレジストリーと対話し、イメージをプッシュおよびプルできます。
-
ブラウザーを使用して
、http://quay-server.example.com
で Red Hat Quay レジストリーのユーザーインターフェースにアクセスします(quay-server.example.com
を/etc/hosts
ファイルのホスト名として設定していることを前提とします)。 -
Create Account
をクリックし、ユーザーを追加します(例:quayadmin
とパスワードpassword
)。 コマンドラインで、レジストリーにログインします。
sudo podman login --tls-verify=false quay-server.example.com
$ sudo podman login --tls-verify=false quay-server.example.com Username: quayadmin Password: password Login Succeeded!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.7.1. イメージのプッシュおよびプル リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay レジストリーからイメージのプッシュおよびプルをテストするには、まず外部レジストリーからサンプルイメージをプルします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Podman
images
コマンドを使用して、ローカルコピーを表示します。sudo podman images
$ sudo podman images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/library/busybox latest 22667f53682a 14 hours ago 1.45 MB ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このイメージにタグを付け、これを Red Hat Quay レジストリーにプッシュできるようにします。
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:test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次に、イメージを Red Hat Quay レジストリーにプッシュします。この手順の後に、ブラウザーを使用して、リポジトリーでタグ付けされたイメージを確認できます。
Copy 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:test Untagged: quay-server.example.com/quayadmin/busybox:test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Quay レジストリーからイメージを再度プルします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第3章 Red Hat Quay の高度なデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
3.1. SSL を使用した Red Hat Quay への接続の保護 リンクのコピーリンクがクリップボードにコピーされました!
3.1.1. SSL の使用について リンクのコピーリンクがクリップボードにコピーされました!
自己署名証明書で Red Hat Quay を設定するには、認証局 (CA)を作成し、必要なキーおよび証明書ファイルを生成する必要があります。
以下の例では、/etc/hosts
ファイルにエントリーの追加など、DNS または別の命名メカニズムを使用してサーバーのホスト名 quay-server.example.com
を設定していることを前提としています。
cat /etc/hosts ... 192.168.1.112 quay-server.example.com
$ cat /etc/hosts
...
192.168.1.112 quay-server.example.com
3.1.2. 認証局を作成し、証明書に署名します。 リンクのコピーリンクがクリップボードにコピーされました!
この手順の最後に、証明書ファイルと、ssl. cert および
という名前のプライマリーキーファイルがあります。
ssl.
key
3.1.2.1. 認証局の作成 リンクのコピーリンクがクリップボードにコピーされました!
ルート CA キーを生成します。
openssl genrsa -out rootCA.key 2048
$ openssl genrsa -out rootCA.key 2048
Copy 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.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーのホスト名など、証明書要求に組み込む情報を入力します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.2.2. 証明書に署名します。 リンクのコピーリンクがクリップボードにコピーされました!
サーバーキーを生成します。
openssl genrsa -out ssl.key 2048
$ openssl genrsa -out ssl.key 2048
Copy 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.csr
Copy 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.cnf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.3. UI を使用した SSL の設定 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Quay UI を使用して SSL を設定します。コマンドラインインターフェースを使用して SSL を設定するには、以下のセクションを参照してください。
Quay
コンテナーを設定モードで起動します。sudo podman run --rm -it --name quay_config -p 80:8080 -p 443:8443 registry.redhat.io/quay/quay-rhel8:v3.6.8 config secret
$ sudo podman run --rm -it --name quay_config -p 80:8080 -p 443:8443 registry.redhat.io/quay/quay-rhel8:v3.6.8 config secret
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Server Configuration セクションで、TLS に
Red Hat Quay handle TLS
を選択します。先に作成した証明書ファイルとプライベートキーファイルをアップロードし、証明書の作成時に Server Hostname が使用された値と一致することを確認します。更新された設定の検証およびダウンロード Quay コンテナーを停止し
、レジストリーを再起動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.4. コマンドラインで SSL の設定 リンクのコピーリンクがクリップボードにコピーされました!
別のオプションとして、コマンドラインインターフェースを使用できます。
証明書ファイルとプライマリーキーファイルを設定ディレクトリーにコピーし、それぞれ ssl.
cert と
。ssl.
key という名前が付けられていることを確認しますcp ~/ssl.cert $QUAY/config cp ~/ssl.key $QUAY/config cd $QUAY/config
$ cp ~/ssl.cert $QUAY/config $ cp ~/ssl.key $QUAY/config $ cd $QUAY/config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Config
.yaml
ファイルを編集し、Quay で TLS を処理できるように指定します。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 Quay コンテナーを停止し
、レジストリーを再起動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.1.5. コマンドラインを使用した SSL 設定のテスト リンクのコピーリンクがクリップボードにコピーされました!
Podman
login
コマンドを使用して、SSL を有効にして Quay レジストリーへのログインを試みます。sudo podman login quay-server.example.com
$ sudo podman login quay-server.example.com Username: quayadmin Password: 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Podman は自己署名証明書を信頼しません。回避策として
、--tls-verify
オプションを使用します。sudo podman login --tls-verify=false quay-server.example.com
$ sudo podman login --tls-verify=false quay-server.example.com Username: quayadmin Password: Login Succeeded!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ルート認証局(CA)を信頼するように Podman を設定する方法は、後続のセクションで説明します。
3.1.6. ブラウザーを使用した SSL 設定のテスト リンクのコピーリンクがクリップボードにコピーされました!
Quay レジストリーへのアクセスを試行する場合(この場合は https://quay-server.example.com
)、ブラウザーは潜在的なリスクについて警告します。
画面にログインすると、ブラウザーは接続が安全ではないことを通知します。
ルート認証局(CA)を信頼するようにシステムを設定する方法は、後続のセクションで説明します。
3.1.7. 認証局を信頼するように podman を設定する リンクのコピーリンクがクリップボードにコピーされました!
Podman は 2 つのパスを使用して CA ファイル( /etc/containers/certs.d/ と
)を検索します。
/etc/
docker/certs.d/
ルート CA ファイルをこれらの場所のいずれかにコピーし、サーバーのホスト名で決定した正確なパスを使用して、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.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、Docker を使用している場合は、ルート CA ファイルを同等の Docker ディレクトリーにコピーします。
sudo cp rootCA.pem /etc/docker/certs.d/quay-server.example.com/ca.crt
$ sudo cp rootCA.pem /etc/docker/certs.d/quay-server.example.com/ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
レジストリーにログインする際に 、--tls-verify=false
オプションを使用する必要がなくなりました。
sudo podman login quay-server.example.com
$ sudo podman login quay-server.example.com
Username: quayadmin
Password:
Login Succeeded!
3.1.8. 認証局を信頼するようにシステムを設定する リンクのコピーリンクがクリップボードにコピーされました!
ルート CA ファイルを統合されたシステム全体のトラストストアにコピーします。
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 extract
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Trust
list
コマンドを使用して、Quay サーバーが設定されていることを確認できます。trust list | grep quay
$ trust list | grep quay label: quay-server.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow https://quay-server.example.com
でレジストリーを参照すると、接続が安全であることを示すロックアイコンが表示されます。システム全体の信頼からルート CA を削除するには、ファイルを削除して設定を更新します。
sudo rm /etc/pki/ca-trust/source/anchors/rootCA.pem sudo update-ca-trust extract trust list | grep quay
$ sudo rm /etc/pki/ca-trust/source/anchors/rootCA.pem $ sudo update-ca-trust extract $ trust list | grep quay $
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
詳細は「RHEL 8 で 共有システム証明書の使用」 を参照してください。
3.2. Red Hat Quay スーパーユーザー リンクのコピーリンクがクリップボードにコピーされました!
Superuser
は、以下を実行する機能を含む拡張された特権を持つ Quay ユーザーアカウントです。
- ユーザーの管理
- 組織の管理
- サービスキーの管理
- 変更ログの表示
- 使用状況ログのクエリー
- グローバルに表示されるユーザーメッセージの作成
3.2.1. UI を使用したスーパーユーザーの Quay への追加 リンクのコピーリンクがクリップボードにコピーされました!
本セクションでは、Quay UI を使用してスーパーユーザーを追加する方法を説明します。コマンドラインインターフェースを使用してスーパーユーザーを追加するには、以下のセクションを参照してください。
Quay
コンテナーを設定モードで起動し、既存の設定をボリュームとして読み込みます。sudo podman run --rm -it --name quay_config \ -p 8080:8080 \ -p 443:8443 \ -v $QUAY/config:/conf/stack:Z \ registry.redhat.io/quay/quay-rhel8:v3.6.8 config secret
$ sudo podman run --rm -it --name quay_config \ -p 8080:8080 \ -p 443:8443 \ -v $QUAY/config:/conf/stack:Z \ registry.redhat.io/quay/quay-rhel8:v3.6.8 config secret
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
UI の
Access Settings
セクションで、Super Users
フィールドにユーザーの名前(この例ではquayadmin
)を入力し、Add
をクリックします。 設定ファイル
を検証し、ダウンロードしてから、設定モードで実行されているQuay
コンテナーを終了します。Config.yaml
ファイルを設定ディレクトリーに展開し、Quay
コンテナーをレジストリーモードで再起動します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.2. スーパーユーザーを追加するための config.yaml ファイルの編集 リンクのコピーリンクがクリップボードにコピーされました!
Config .yaml
ファイルを直接編集してスーパーユーザーを追加することもできます。スーパーユーザーアカウントの一覧は、SUPER_USERS フィールドの配列として保存されます
。
コンテナーレジストリーが実行中の場合はこれを停止し、
SUPER_USERS
配列をconfig.yaml
ファイルに追加します。$QUAY/config/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: - quayadmin ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.3. スーパーユーザー管理パネルへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
Quay レジストリーを再起動します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Super User Admin パネルにアクセスするには、UI の右上にある現在のユーザーの名前またはアバターをクリックします。ユーザーがスーパーユーザーとして追加されている場合、Super User Admin Panel というドロップダウンリストに追加のアイテムが表示されます。
3.2.3.1. グローバルに表示されるユーザーメッセージの作成 リンクのコピーリンクがクリップボードにコピーされました!
Superuser Admin Panel を使用すると、組織の Normal
、Warning
、または Error
メッセージを作成できます。
-
UI の右上でユーザー名をクリックします。
Super User Admin Panel を選択します
。 -
Red Hat Quay Management ページで、
左側のペインで Globally visible user messages
をクリックします。 Create Message
をクリックし、Normal
、Warning
、およびError
メッセージタイプを含むドロップダウンメニューを表示します。-
メッセージの入力には、click
to set message
を選択し、Create Message
をクリックします。
メッセージの削除は、Options
をクリックしてから Delete Message
をクリックして削除できます。
3.3. リポジトリーのミラーリング リンクのコピーリンクがクリップボードにコピーされました!
3.3.1. リポジトリーのミラーリング リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Quay リポジトリーミラーリングを使用すると、外部コンテナーレジストリー(または別のローカルレジストリー)から Red Hat Quay クラスターにイメージをミラーリングできます。リポジトリーミラーリングを使用すると、リポジトリー名とタグに基づいてイメージを Red Hat Quay に同期できます。
リポジトリーミラーリングが有効にされている Red Hat Quay クラスターから、以下を実行できます。
- 外部レジストリーからミラーリングするリポジトリーを選択する。
- 外部レジストリーにアクセスするための認証情報を追加します。
- 同期する特定のコンテナーイメージリポジトリー名とタグを特定します。
- リポジトリーが同期される間隔を設定
- 同期の現在の状態を確認します。
ミラーリング機能を使用するには、以下を行う必要があります。
- Red Hat Quay 設定で Repository Mirroring を有効にします。
- リポジトリーミラーリングワーカーを実行します。
- ミラーリングされたリポジトリーを作成します。
すべてのリポジトリミラーリングの設定は、コンフィグレーションツールのUIまたはQuay APIを使って行うことができます。
3.3.2. ミラーリング設定 UI リンクのコピーリンクがクリップボードにコピーされました!
設定モードで
Quay
コンテナーを起動し、Enable Repository Mirroring チェックボックスを選択します。HTTPS 通信を必要とし、ミラーリング時に証明書を検証する必要がある場合は、HTTPS を選択し、証明書の検証のチェックボックスを選択します。-
Configuration を検証し
、
ダウンロードしてから、更新された設定ファイルを使用してレジストリーモードで Quay を再起動します。
3.3.3. ミラーリングワーカー リンクのコピーリンクがクリップボードにコピーされました!
リポジトリーミラーリングワーカーを実行するには、
repomirror
オプションを指定してQuay
Pod を起動します。sudo podman run -d --name mirroring-worker \ -v $QUAY/config:/conf/stack:Z \ registry.redhat.io/quay/quay-rhel8:v3.6.8 repomirror
$ sudo podman run -d --name mirroring-worker \ -v $QUAY/config:/conf/stack:Z \ registry.redhat.io/quay/quay-rhel8:v3.6.8 repomirror
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 証明書
/root/ca.crt
を使用して TLS 通信を設定している場合、以下の例ではミラーリングワーカーの起動方法を示します。sudo podman run -d --name mirroring-worker \ -v $QUAY/config:/conf/stack:Z \ -v /root/ca.crt:/etc/pki/ca-trust/source/anchors/ca.crt \ registry.redhat.io/quay/quay-rhel8:v3.6.8 repomirror
$ sudo podman run -d --name mirroring-worker \ -v $QUAY/config:/conf/stack:Z \ -v /root/ca.crt:/etc/pki/ca-trust/source/anchors/ca.crt \ registry.redhat.io/quay/quay-rhel8:v3.6.8 repomirror
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3.4. ミラーリングされたリポジトリーの作成 リンクのコピーリンクがクリップボードにコピーされました!
本セクションで説明する手順は、Red Hat Quay クラスターの設定でリポジトリーミラーリングを有効にしており、ミラーリングワーカーをデプロイしていることを前提としています。
外部コンテナーレジストリーからリポジトリーをミラーリングする場合は、新しいプライベートリポジトリーを作成します。通常、ターゲットリポジトリーと同じ名前が使用されます(例: quay-rhel8)
。
3.3.4.1. リポジトリーのミラーリングの設定 リンクのコピーリンクがクリップボードにコピーされました!
Settings タブで、Repository State を
Mirror
に設定します。Mirror タブで、タグ、スケジューリング、およびアクセス情報と共に外部レジストリーに接続するための情報を入力します。
必要に応じて、以下のフィールドに詳細を入力します。
-
Registry Location: ミラーリングする外部リポジトリー(例:
registry.redhat.io/quay/quay-rhel8)
Tags: このフィールドは必須です。個別のタグまたはタグパターンのコンマ区切りリストを入力できます。(詳細は 、「タグパターン 」のセクションを参照してください。)
注記Quay がリモートリポジトリーでタグの一覧を取得するには、以下の要件のいずれかを満たしている必要があります。
- 「latest」タグのあるイメージがリモートリポジトリー ORに存在している必要があります。
- パターンの一致のない少なくとも 1 つの明示的なタグが、指定するタグの一覧に存在する必要があります。
- Start Date: ミラーリングが開始する日付。現在の日時がデフォルトで使用されます。
- Sync Interval: デフォルトで 24 時間ごとの同期に設定されます。これは時間または日に基づいて変更できます。
- Robot User: 新しいロボットアカウントを作成するか、または既存のロボットアカウントを選択してミラーリングを実行します。
- Username: ミラーリングするリポジトリーを保持する外部レジストリーにアクセスするためのユーザー名。
- Password: ユーザー名に関連付けられたパスワード。パスワードにはエスケープ文字(\)を必要とする文字を含めることはできません。
-
Registry Location: ミラーリングする外部リポジトリー(例:
3.3.4.2. 詳細設定 リンクのコピーリンクがクリップボードにコピーされました!
- Advanced Settings セクションで、必要な場合は TLS およびプロキシーを設定します。
- Verify TLS: ターゲットリモートレジストリーと通信する際に、HTTPS を必要とし、証明書を検証する必要がある場合にこのボックスにチェックを付けます。
- HTTP Proxy: リモートサイトへのアクセスに必要な HTTP プロキシーサーバーを特定します(必要な場合)。
- HTTPS Proxy: リモートサイトへのアクセスに必要な HTTPS プロキシーサーバーを特定します(必要な場合)。
- No Proxy: プロキシー を必要としない場所の一覧
3.3.4.3. 今すぐ同期する リンクのコピーリンクがクリップボードにコピーされました!
即時にミラーリング操作を実行するには、リポジトリーの Mirroring タブで Sync Now ボタンを押します。ログは、Usage Logs タブで利用できます。
ミラーリングが完了すると、イメージは Tags タブに表示されます。
以下は、完了した「Repository Mirroring」画面の例です。
3.3.5. タグパターンのミラーリング リンクのコピーリンクがクリップボードにコピーされました!
前述のように、少なくとも 1 つのタグを明示的に入力する必要がある(タグパターンではない)か、または タグの「latest」がレポートリポジトリーに存在している必要があります。(タグ「latest」はタグの一覧に指定されていない限り同期されません)。これは、ミラーリングする指定された一覧と比較するために、Quay がリモートリポジトリーのタグの一覧を取得するために必要です。
3.3.5.1. パターン構文 リンクのコピーリンクがクリップボードにコピーされました!
Pattern | 説明 |
* | すべての文字に一致します。 |
? | 任意の 1 文字に一致します。 |
[seq] | Seq の任意の文字 と一致します。 |
[!seq] | Seq に ない文字と一致します。 |
3.3.5.2. タグパターンの例 リンクのコピーリンクがクリップボードにコピーされました!
パターン例 | 一致例 |
v3* | v32, v3.1, v3.2, v3.2-4beta, v3.3 |
v3.* | v3.1, v3.2, v3.2-4beta |
v3.? | v3.1, v3.2, v3.3 |
v3.[12] | v3.1, v3.2 |
v3.[12]* | v3.1, v3.2, v3.2-4beta |
v3.[!1]* | v3.2, v3.2-4beta, v3.3 |
3.4. Clair V4 のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Clair はイメージのコンテンツを解析し、コンテンツに影響する脆弱性を報告するアプリケーションです。これは静的分析によって実行され、ランタイム時には実行されません。Clair の分析は 3 つの異なる部分に分類されます。
- Indexing: インデックス作成はマニフェストの Clair への送信から開始します。受信時に、Clair はレイヤーを取得し、その内容をスキャンし、IndexReport という中間表現を返します。マニフェストは、Clair のコンテナーイメージの表示です。Clair は OCI マニフェストとレイヤーがコンテンツ対応であることを活かして、重複作業を削減します。マニフェストがインデックス化されると、IndexReport は後で取得できるように永続します。
- Matching: マッチングは IndexReport を取り、レポートが表すマニフェストに影響を与える脆弱性を相関させます。Clair は継続的に新しいセキュリティーデータを取り込み、matcher への要求は IndexReport の最新の脆弱性分析を提供します。
- 通知: Clair は通知サービスを実装します。新規の脆弱性が検出されると、通知サービスはこれらの脆弱性がインデックス化されたマニフェストに影響するかどうかを判別します。その後、通知機能は設定に応じてアクションを実行します。
3.4.1. Clair 用の個別データベースのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
Clair には Postgres データベースが必要です。Quay が Postgres を使用している場合に Quay と Clair 間で共通データベースを共有できますが、この例では個別の Clair 固有のデータベースがデプロイされます。
この概念実証のシナリオでは、ローカルファイルシステムのディレクトリーを使用してデータベースデータを永続化します。
ここでは $QUAY 変数で示されるインストールフォルダーで、Clair データベースデータのディレクトリーを作成し、パーミッションを適切に設定します。
mkdir -p $QUAY/postgres-clairv4 setfacl -m u:26:-wx $QUAY/postgres-clairv4
$ mkdir -p $QUAY/postgres-clairv4 $ setfacl -m u:26:-wx $QUAY/postgres-clairv4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Podman を使用し、データベースデータのボリューム定義と共にユーザー名、パスワード、データベース名、ポートを指定して Postgres コンテナーを実行します。標準の Postgres ポート
5432
は Quay デプロイメントですでに使用されているため、このインスタンス5433
に異なるポートを公開します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Clair で必要な Postgres
uuid-ossp
モジュールがインストールされていることを確認します。sudo podman exec -it postgresql-clairv4 /bin/bash -c 'echo "CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\"" | psql -d clair -U postgres'
$ sudo podman exec -it postgresql-clairv4 /bin/bash -c 'echo "CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\"" | psql -d clair -U postgres'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.2. Clair の Quay 設定 リンクのコピーリンクがクリップボードにコピーされました!
Quay
コンテナーが実行中である場合はこれを停止し、これを設定モードで再起動し、既存の設定をボリュームとして読み込みます。sudo podman run --rm -it --name quay_config \ -p 80:8080 -p 443:8443 \ -v $QUAY/config:/conf/stack:Z \ registry.redhat.io/quay/quay-rhel8:v3.6.8 config secret
$ sudo podman run --rm -it --name quay_config \ -p 80:8080 -p 443:8443 \ -v $QUAY/config:/conf/stack:Z \ registry.redhat.io/quay/quay-rhel8:v3.6.8 config secret
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 設定ツールにログインし、UI の Security Scanner セクションでスキャンを有効にします。Quay
-server
システムでまだ使用されていないポート(例:8081
)を使用して、Clair の HTTP エンドポイントを設定します。Generate PSK ボタンを使用して
Clair の PSK(事前共有キー)を作成します。以下に例を示します。-
Security Scanner Endpoint:
http://quay-server.example.com:8081
Security Scanner PSK:
MTU5YzA4Y2ZkNzJoMQ==
スキャナーデータを設定するための UI が以下のイメージに表示されます。
セキュリティースキャナー UI
-
Security Scanner Endpoint:
設定ファイル
を検証し、ダウンロードしてから、設定エディターを実行しているQuay
コンテナーを停止します。設定バンドルを以前と同様に$QUAY/config
ディレクトリーに展開します。cp ~/Downloads/quay-config.tar.gz $QUAY/config cd $QUAY/config tar xvf quay-config.tar.gz
$ cp ~/Downloads/quay-config.tar.gz $QUAY/config $ cd $QUAY/config $ tar xvf quay-config.tar.gz
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Quay 設定ファイルが更新され、セキュリティースキャナーの以下のフィールドが含まれるようになりました。
$QUAY/config/config.yaml
3.4.3. Clair の設定 リンクのコピーリンクがクリップボードにコピーされました!
Clair 設定についての詳細は 、https://github.com/quay/clair/blob/main/Documentation/reference/config.md を参照してください。
/etc/
ディレクトリーに config.yaml ファイルを作成します(例:/etc/clairv4/config/config.yaml
)。以下の例を使用します。これは、概念実証用のデプロイメントで使用する最小の設定を示しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
http_listen_addr
は、Quay 設定ツールで指定した Clair HTTP エンドポイントのポート(この場合は8081)に設定されます。
-
Quay 設定ツールで生成した Clair の PSK(事前共有キー)は、iss
フィールドに指定される
発行側をquay
に設定し、認証に使用されます。
3.4.4. Clair の実行 リンクのコピーリンクがクリップボードにコピーされました!
Podman
run
コマンドを使用して Clair コンテナーを実行し、設定ツールで指定した HTTP エンドポイントポート(この場合は8081
)を公開します。sudo podman run -d --rm --name clairv4 \ -p 8081:8081 -p 8089:8089 \ -e CLAIR_CONF=/clair/config.yaml -e CLAIR_MODE=combo \ -v /etc/clairv4/config:/clair:Z \ registry.redhat.io/quay/clair-rhel8:v3.6.8
$ sudo podman run -d --rm --name clairv4 \ -p 8081:8081 -p 8089:8089 \ -e CLAIR_CONF=/clair/config.yaml -e CLAIR_MODE=combo \ -v /etc/clairv4/config:/clair:Z \ registry.redhat.io/quay/clair-rhel8:v3.6.8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次に、スキャナー設定が含まれる更新された設定ファイルを使用して
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.6.8
$ 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.6.8
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.5. Clair セキュリティースキャンの使用 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインで、レジストリーにログインします。
sudo podman login --tls-verify=false quay-server.example.com
$ sudo podman login --tls-verify=false quay-server.example.com Username: quayadmin Password: Login Succeeded!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サンプルイメージをプルし、これにタグを付け、レジストリーにプッシュします。
sudo podman pull ubuntu:20.04 sudo podman tag docker.io/library/ubuntu:20.04 quay-server.example.com/quayadmin/ubuntu:20.04 sudo podman push --tls-verify=false quay-server.example.com/quayadmin/ubuntu:20.04
$ sudo podman pull ubuntu:20.04 $ sudo podman tag docker.io/library/ubuntu:20.04 quay-server.example.com/quayadmin/ubuntu:20.04 $ sudo podman push --tls-verify=false quay-server.example.com/quayadmin/ubuntu:20.04
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下のイメージが示すように、セキュリティースキャンの結果が Quay UI に表示されます。
スキャンの要約
スキャンの詳細
3.4.6. National Vulnerability データベースの CVE レーティング リンクのコピーリンクがクリップボードにコピーされました!
Clair v4.2 では、Enrichment データが Quay UI で表示できるようになりました。さらに、Clair v4.2 は、検出された脆弱性について、National Vulnerability Database から CVSS スコアを追加します。
この変更により、脆弱性の distro のスコアの 2 つのレベルにある CVSS スコアがある場合、Quay UI はデフォルトで distro のスコアを提示します。以下は例になります。
これは以前のインターフェースとは異なります。これは、以下の情報のみを表示します。
3.5. コンテナーの再起動 リンクのコピーリンクがクリップボードにコピーされました!
--restart
オプションは podman で完全にサポートされていないため、「 Podman を使用したコンテナーの systemd への
ポート」で説明されているように、podman を systemdサービスとして設定できます。
3.5.1. Podman での systemd ユニットファイルの使用 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトで、Podman は既存のコンテナーまたは Pod のユニットファイルを生成します。Podman generate systemd --new コマンドを使用して、移植可能なその他の systemd
ユニットファイルを生成できます。--new
フラグでは、コンテナーの作成、起動、削除を行うユニットファイルを生成するように Podman に指示します。
以下のように、実行中の Red Hat Quay レジストリーから systemd ユニットファイルを作成します。
sudo podman generate systemd --new --files --name redis sudo podman generate systemd --new --files --name postgresql-quay sudo podman generate systemd --new --files --name quay sudo podman generate systemd --new --files --name postgresql-clairv4 sudo podman generate systemd --new --files --name clairv4
$ sudo podman generate systemd --new --files --name redis $ sudo podman generate systemd --new --files --name postgresql-quay $ sudo podman generate systemd --new --files --name quay $ sudo podman generate systemd --new --files --name postgresql-clairv4 $ sudo podman generate systemd --new --files --name clairv4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/lib/systemd/system
にユニットファイルをコピーして root ユーザーとしてインストールします。sudo cp -Z container-redis.service /usr/lib/systemd/system sudo cp -Z container-postgresql-quay.service /usr/lib/systemd/system sudo cp -Z container-quay.service /usr/lib/systemd/system sudo cp -Z container-postgresql-clairv4.service /usr/lib/systemd/system sudo cp -Z container-clairv4.service /usr/lib/systemd/system
$ sudo cp -Z container-redis.service /usr/lib/systemd/system $ sudo cp -Z container-postgresql-quay.service /usr/lib/systemd/system $ sudo cp -Z container-quay.service /usr/lib/systemd/system $ sudo cp -Z container-postgresql-clairv4.service /usr/lib/systemd/system $ sudo cp -Z container-clairv4.service /usr/lib/systemd/system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemd マネージャーの設定を再読み込みするには、次のコマンドを実行します。
sudo systemctl daemon-reload
$ sudo systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスを有効にし、システムの起動時に起動します。
sudo systemctl enable --now container-redis.service sudo systemctl enable --now container-postgresql-quay.service sudo systemctl enable --now container-quay.service sudo systemctl enable --now container-postgresql-clairv4.service sudo systemctl enable --now container-clairv4.service
$ sudo systemctl enable --now container-redis.service $ sudo systemctl enable --now container-postgresql-quay.service $ sudo systemctl enable --now container-quay.service $ sudo systemctl enable --now container-postgresql-clairv4.service $ sudo systemctl enable --now container-clairv4.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5.2. サービスの起動、停止、およびステータスのチェック リンクのコピーリンクがクリップボードにコピーされました!
Quay コンポーネントのステータスを確認します。
sudo systemctl status container-redis.service sudo systemctl status container-postgresql-quay.service sudo systemctl status container-quay.service sudo systemctl status container-postgresql-clairv4.service sudo systemctl status container-clairv4.service
$ sudo systemctl status container-redis.service $ sudo systemctl status container-postgresql-quay.service $ sudo systemctl status container-quay.service $ sudo systemctl status container-postgresql-clairv4.service $ sudo systemctl status container-clairv4.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Quay コンポーネントサービスを停止するには、以下を実行します。
sudo systemctl stop container-redis.service sudo systemctl stop container-postgresql-quay.service sudo systemctl stop container-quay.service sudo systemctl stop container-postgresql-clairv4.service sudo systemctl stop container-clairv4.service
$ sudo systemctl stop container-redis.service $ sudo systemctl stop container-postgresql-quay.service $ sudo systemctl stop container-quay.service $ sudo systemctl stop container-postgresql-clairv4.service $ sudo systemctl stop container-clairv4.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Quay コンポーネントサービスを起動するには、以下を実行します。
sudo systemctl start container-redis.service sudo systemctl start container-postgresql-quay.service sudo systemctl start container-quay.service sudo systemctl start container-postgresql-clairv4.service sudo systemctl start container-clairv4.service
$ sudo systemctl start container-redis.service $ sudo systemctl start container-postgresql-quay.service $ sudo systemctl start container-quay.service $ sudo systemctl start container-postgresql-clairv4.service $ sudo systemctl start container-clairv4.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5.3. 再起動後の再起動のテスト リンクのコピーリンクがクリップボードにコピーされました!
サービスを設定して有効にしたら、システムを再起動します。システムを再起動したら、podman ps
を使用して Quay コンポーネントのすべてのコンテナーが再起動されていることを確認します。
この場合、Quay
コンテナー自体は起動できませんでした。これは、セキュリティースキャンが Quay で有効にされている場合に、起動時に Clair への接続を試みるためです。ただし、Clair は初期化を完了せず、接続を受け入れることができないため、結果として Quay はすぐに終了します。この問題を解決するには、以下のセクションにあるように、Quay サービスを Clair サービスの依存関係を持つように設定する必要があります。
3.5.4. Clair の Quay の依存関係の設定 リンクのコピーリンクがクリップボードにコピーされました!
Quay の systemd
サービスファイルで、After=container-clairv4.service
を設定して 、[Unit]
セクションに Clair サービスの依存関係を設定します。Clair コンテナーの初期化に時間を指定するには 、[Service]
セクションに遅延を追加します( RestartSec=30
など)。以下は、Clair の依存関係を設定した後に変更された Quay ファイルの例です。
/usr/lib/systemd/system/container-quay.service
Quay サービス設定を更新したら、サーバーを再起動して podman ps
をすぐに実行します。
最初は Quay
コンテナーは利用できませんが、RestartSec
の遅延の期限が切れると、起動するはずです。
Quay
コンテナーの CREATED
フィールドには、サービス定義に設定されるように作成時間に 30 秒の差異が示されます。
Quay -server.example.com
で Red Hat Quay レジストリーにログインし、すべてが正常に再起動されていることを確認します。
3.6. FIPS の準備状態およびコンプライアンス リンクのコピーリンクがクリップボードにコピーされました!
FIPS (NIST (National Institute of Standards and Technology) が開発した Federal Information Processing Standard) は、特に銀行、医療、公共部門などの厳しく規制された分野で、機密データを保護および暗号化するための絶対的基準と見なされています。Red Hat Enterprise Linux および Red Hat OpenShift Container Platform は、システムが openssl
などの特定の FIPS 検証済み暗号モジュールの使用のみを許可する FIPS モードを提供することで、この標準をサポートします。これにより、FIPS への準拠が保証されます。
Red Hat Quay は、バージョン 3.5 以降の FIPS モードでの RHEL および OCP での実行をサポートします。さらに、Red Hat Quay 自体は、検証される暗号化ライブラリーのみ、または NIST が検証するプロセスにある暗号ライブラリーのみにコミットします。Red Hat Quay 3.5 では、RHEL 8.3 暗号ライブラリーをベースとした保留中の FIPS 140-2 検証があります。検証が確定されると、Red Hat Quay は正式に FIPS に準拠します。
第4章 次のステップ リンクのコピーリンクがクリップボードにコピーされました!
本書では、概念実証用の Red Hat Quay を設定し、デプロイする方法を説明します。実稼働環境へのデプロイに関する詳細は、『Deploy Red Hat Quay - High Availability』を参照してください。
『Using Red Hat Quay』ガイドでは、以下の方法について説明しています。
- ユーザーおよびリポジトリーの追加
- Use tags
- ビルドワーカーを使用した Dockerfile の自動ビルド
- ビルドトリガーの設定
- リポジトリーイベントの通知の追加
『Manage Red Hat Quay』ガイドでは、以下の方法について説明しています。
- SSL および TLS の使用
- Clair によるセキュリティースキャンの有効化
- リポジトリーミラーリングの使用
- LDAP 認証の設定
- ストレージの Georeplication の使用