第4章 Red Hat Quay の設定
Red Hat Quay サービスをコンテナーとして実行する前に、同じ Quay
コンテナーを使用して Red Hat Quay のデプロイに必要な設定ファイル (config.yaml
) を作成する必要があります。これを実行するには、config
引数とパスワード (ここで my-secret-password を置き換える) を Quay
コンテナーに渡します。後に、そのパスワードを使用して設定ツールに quayconfig
としてログインします。
その例を以下で紹介します。
セットアップモードで quay を起動: 最初の quay ノードで、以下を実行します。
sudo podman run --rm -it --name quay_config -p 8080:8080 registry.redhat.io/quay/quay-rhel8:v3.12.9 config my-secret-password
# sudo podman run --rm -it --name quay_config -p 8080:8080 registry.redhat.io/quay/quay-rhel8:v3.12.9 config my-secret-password
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ブラウザーを開く: quay の設定ツールが起動したら、ブラウザーで、設定ツールを実行中のシステムの URL とポート 8080 を開きます (例: http://myquay.example.com:8080)。ユーザー名とパスワードの入力を求められます。
-
quayconfig としてログイン: プロンプトが表示されたら、
quayconfig
のユーザー名とパスワード (podman run
コマンドラインで入力したもの) を入力します。 - 必要な項目を入力: 既存の設定バンドルをマウントせずに設定ツールを起動すると、初期設定セッションが起動します。設定セッションでは、デフォルト値が自動的に入力されます。次のステップでは、残りの必須項目を入力する方法を説明します。
データベースを特定: 初期設定では、Red Hat Quay で使用するデータベースの種類と場所について、以下の情報を追加する必要があります。
- データベースの種類: MySQL または PostgreSQL を選択してください。基本的な例では MySQL を使用し、高可用性の Red Hat Quay on OpenShift の例では PostgreSQL を使用します。
- データベースサーバー: データベースの IP アドレスまたはホスト名、(3306 と異なる場合はポート番号も) 指定します。
- ユーザー名: データベースへの完全なアクセス権が割り当てられたユーザーを指定します。
- パスワード: 選択したユーザーに割り当てたパスワードを入力します。
- データベース名: データベースサーバーの起動時に割り当てたデータベース名を入力します。
SSL 証明書: 実稼働環境では、データベースに接続するための SSL 証明書を用意する必要があります。
次の図は、Red Hat Quay が使用するデータベースを示す画面の例です。
Redis のホスト名、サーバー設定を指定し、他に必要な設定を追加: 設定完了までに他に追加可能な設定は以下のとおりです。Red Hat Quay の高可用性デプロイメントの他の設定
- 基本的なテスト設定では、Redis のホスト名を特定するだけで十分です。ただし、この手順の最後で説明するように、Clair スキャンやリポジトリーミラーリングなどの他の機能も追加できます。
高可用性および OpenShift の設定では、共有ストレージやシステム間のセキュアな通信などの機能を実現するのに、さらに多くの設定が必要になります (以下に記載)。
ここでは、考慮する必要のある設定を説明します。
カスタム SSL 証明書: Red Hat Quay で使用するカスタムまたは自己署名の SSL 証明書をアップロードします。詳細は、SSL を使用した Red Hat Quay への接続の保護 を参照してください。これは、高可用性の場合に推奨しています。
重要基本デプロイメントと高可用性デプロイメントの両方で SSL 証明書の使用を推奨します。SSL を使用しないことにした場合は、セキュアでないレジストリーのテスト で説明されているように、新しい Red Hat Quay 設定をセキュアでないレジストリーとして使用するように、コンテナークライアントを設定する必要があります。
- 基本的な設定: 会社のロゴをアップロードして、Red Hat Quay のレジストリーをリブランディングします。
サーバー設定: Red Hat Quay サービスに到達するためのホスト名または IP アドレス、TLS の指定 (実稼働インストールでは推奨)。サーバーのホスト名は、Red Hat Quay の全デプロイメントに必要です。TLS 終端は 2 つの異なる方法で実行できます。
-
インスタンス自体で実行する。すべての TLS トラフィックが
Quay
コンテナー内の nginx サーバーによって制御されます (推奨される方法)。 - ロードバランサーで実行する。これは、推奨されません。ロードバランサーで TLS 設定が正しく行われないと、Red Hat Quay へのアクセスが失われる可能性があります。
-
インスタンス自体で実行する。すべての TLS トラフィックが
- データ整合性の設定: パフォーマンスと可用性を向上させるために、ロギングの一貫性保証の設定を緩和するかどうかを選択します。
- タイムマシン: 古いイメージタグを一定期間リポジトリーに残すことができ、ユーザーがタグの有効期限を独自に選択できるようにします。
- redis: Red Hat Quay が使用する redis サービスに接続するためのホスト名または IP アドレス (およびオプションのパスワード) を指定します。
- リポジトリーミラーリング: Enable Repository Mirroring チェックボックスを選択します。この機能を有効にすると、Red Hat Quay クラスターに、リモートレジストリーから選択したリポジトリーをミラーリングするリポジトリーを作成できます。リポジトリーミラーリングを有効にする前に、この手順で後述するように、リポジトリーミラーリングワーカーを起動します。
- レジストリーストレージ: ストレージの場所を特定します。クラウドとローカルの各種ストレージオプションがあります。高可用性にはリモートストレージが必要です。Red Hat Quay 高可用ストレージの例を使用している場合は、Ceph ストレージの場所を特定します。OpenShift では、この例では Amazon S3 のストレージを使用しています。
- アクションログの保存設定: アクションログは、デフォルトでは Red Hat Quay データベースに保存されます。大量のアクションログがある場合は、それらのログを Elasticsearch に転送して、後で検索や分析を行うことができます。これを行うには、アクションログストレージの値を Elasticsearch に変更し、アクションログストレージの設定 の説明に従って関連する設定を行います。
- アクションログのローテーションおよびアーカイブ: 30 日以上前のログをストレージに移動するログローテーションを有効にして、ストレージ領域を指定します。
- セキュリティースキャナー: セキュリティースキャナのエンドポイントと認証キーを選択して、セキュリティースキャンを有効にします。イメージスキャンを実行するように Clair をセットアップするには、Clair のセットアップ と Clair の設定 を参照してください。これは、高可用性の場合に推奨しています。
- アプリケーションレジストリー: Kubernetes のマニフェストや Helm のチャートなどを含む、追加のアプリケーションレジストリーを有効にします (App Registry の仕様 を参照)。
-
rkt 変換:
rkt fetch
が Red Hat Quay レジストリーからイメージを取得して使用できるようにします。GPG2 の公開鍵および秘密鍵が必要です。このフィールドは非推奨です。 - 電子メール: 通知やユーザーパスワードのリセットに使用する電子メールを有効にします。
- 内部認証: レジストリーのデフォルト認証をローカルデータベースから LDAP、Keystone (OpenStack)、JWT Custom Authentication、External Application Token に変更します。
- 外部認証 (OAuth): これを有効にして GitHub または GitHub Enterprise によるレジストリーへの認証を許可します。
- Google 認証: これを有効にして、Google によるレジストリーへの認証を許可します。
- アクセス設定: 基本的なユーザー名/パスワード認証がデフォルトで有効になっています。有効にできる他の認証タイプには、外部アプリケーショントークン (docker や rkt コマンドで使用されるユーザー生成トークン)、匿名アクセス (レジストリーにアクセスできる人なら誰でもアクセスできるようにする)、ユーザー作成 (ユーザーに自分のアカウントを作成させる)、暗号化クライアントパスワード (暗号化パスワードを含むコマンドラインユーザーアクセスを必要とする)、接頭辞ユーザー名の自動補完 (自動補完時にユーザー名を正確に一致させる必要がないように無効化する) などがあります。
-
レジストリープロトコル設定:
Restrict V1 Push Support
のチェックボックスをチェックしたままにし、Docker V1 プロトコルのプッシュへのアクセスを制限します。Red Hat は Docker V1 プッシュプロトコルを有効にしないように推奨していますが、有効にする場合は、有効にする namespace を明示的にホワイトリスト化する必要があります。 - Dockerfile ビルドサポート: ビルドして Red Hat Quay にプッシュする Dockerfile をユーザーが送信できるようにします。これは、マルチテナント環境では推奨されません。
変更内容の検証:
Validate Configuration Changes
を選択します。検証が成功すると、次のような Download Configuration モーダルが表示されます。-
設定のダウンロード:
Download Configuration
ボタンを選択し、後で Red Hat Quay の起動に使用するために、tarball (quay-config.tar.gz
) をローカルディレクトリーに保存します。
この時点で、Red Hat Quay 設定ツールを終了し、ブラウザーを閉じます。次に、最初の Red Hat Quay ノードをインストールするシステムに、この tarball ファイルをコピーします。基本的なインストールでは、同じシステム上で Red Hat Quay を実行しているだけの場合もあります。