第7章 Operator を使用した Red Hat Quay のデプロイ
Red Hat Quay は、コマンドラインインターフェイスを使用して、または OpenShift Container Platform コンソールから OpenShift Container Platform にデプロイできます。手順は基本的に同じです。
7.1. コマンドラインからの Red Hat Quay のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインインターフェイス (CLI) を使用して Red Hat Quay をデプロイするには、次の手順を実行します。
前提条件
- CLI を使用して OpenShift Container Platform にログインしている。
手順
次のコマンドを入力して、namespace (例:
quay-enterprise)を作成します。$ oc new-project quay-enterpriseオプション: Red Hat Quay デプロイメントで何かを事前に設定する場合は、設定バンドルの
Secretを作成します。$ oc create secret generic quay-enterprise-config-bundle --from-file=config-bundle.tar.gz=/path/to/config-bundle.tar.gzquayregistry.yamlという名前のファイルにQuayRegistryカスタムリソースを作成します。最小限のデプロイメントでは、すべてのデフォルトを使用します。
quayregistry.yaml:
apiVersion: quay.redhat.com/v1 kind: QuayRegistry metadata: name: example-registry namespace: quay-enterpriseオプション: 一部のコンポーネントを管理対象外にする必要がある場合、この情報を
specフィールドに追加します。最小デプロイメントは次の例のようになります。管理対象外コンポーネントを含む quayregistry.yaml の例
apiVersion: quay.redhat.com/v1 kind: QuayRegistry metadata: name: example-registry namespace: quay-enterprise spec: components: - kind: clair managed: false - kind: horizontalpodautoscaler managed: false - kind: mirror managed: false - kind: monitoring managed: falseオプション: 設定バンドル (例:
init-config-bundle-secret) を作成している場合は、これをquayregistry.yamlファイルで参照します。設定バンドルを含む quayregistry.yaml の例
apiVersion: quay.redhat.com/v1 kind: QuayRegistry metadata: name: example-registry namespace: quay-enterprise spec: configBundleSecret: init-config-bundle-secretオプション: プロキシーを設定している場合は、Red Hat Quay、Clair、およびミラーリングのオーバーライドを使用して情報を追加できます。
プロキシーが設定された quayregistry.yaml の例
kind: QuayRegistry metadata: name: quay37 spec: configBundleSecret: config-bundle-secret components: - kind: objectstorage managed: false - kind: route managed: true - kind: mirror managed: true overrides: env: - name: DEBUGLOG value: "true" - name: HTTP_PROXY value: quayproxy.qe.devcluster.openshift.com:3128 - name: HTTPS_PROXY value: quayproxy.qe.devcluster.openshift.com:3128 - name: NO_PROXY value: svc.cluster.local,localhost,quay370.apps.quayperf370.perfscale.devcluster.openshift.com - kind: tls managed: false - kind: clair managed: true overrides: env: - name: HTTP_PROXY value: quayproxy.qe.devcluster.openshift.com:3128 - name: HTTPS_PROXY value: quayproxy.qe.devcluster.openshift.com:3128 - name: NO_PROXY value: svc.cluster.local,localhost,quay370.apps.quayperf370.perfscale.devcluster.openshift.com - kind: quay managed: true overrides: env: - name: DEBUGLOG value: "true" - name: NO_PROXY value: svc.cluster.local,localhost,quay370.apps.quayperf370.perfscale.devcluster.openshift.com - name: HTTP_PROXY value: quayproxy.qe.devcluster.openshift.com:3128 - name: HTTPS_PROXY value: quayproxy.qe.devcluster.openshift.com:3128
次のコマンドを入力して、指定の namespace に
QuayRegistryを作成します。$ oc create -n quay-enterprise -f quayregistry.yaml次のコマンドを入力して、
status.registryEndpointがいつ設定されるかを確認します。$ oc get quayregistry -n quay-enterprise example-registry -o jsonpath="{.status.registryEndpoint}" -w
関連情報
- Red Hat Quay のデプロイの進行状況を追跡する方法の詳細は、デプロイメントプロセスの監視およびデバッグ を参照してください。
7.1.1. API を使用した最初のユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、Red Hat Quay 組織で最初のユーザーを作成します。
前提条件
-
設定オプション
FEATURE_USER_INITIALIZEはTrueに設定する。 - データベースにユーザーが存在していない。
この手順では、"access_token": true を指定して OAuth トークンを要求します。
Red Hat Quay 設定ファイルを開き、以下の設定フィールドを更新します。
FEATURE_USER_INITIALIZE: true SUPER_USERS: - quayadmin次のコマンドを入力して、Red Hat Quay サービスを停止します。
$ sudo podman stop quay次のコマンドを入力して、Red Hat Quay サービスを開始します。
$ sudo podman run -d -p 80:8080 -p 443:8443 --name=quay -v $QUAY/config:/conf/stack:Z -v $QUAY/storage:/datastorage:Z {productrepo}/{quayimage}:{productminv}次の
CURLコマンドを実行して、ユーザー名、パスワード、電子メール、およびアクセストークンを使用して新しいユーザーを生成します。$ curl -X POST -k http://quay-server.example.com/api/v1/user/initialize --header 'Content-Type: application/json' --data '{ "username": "quayadmin", "password":"quaypass12345", "email": "quayadmin@example.com", "access_token": true}'成功すると、このコマンドはユーザー名、メール、および暗号化されたパスワードが含まれるオブジェクトを返します。以下に例を示します。
{"access_token":"6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED", "email":"quayadmin@example.com","encrypted_password":"1nZMLH57RIE5UGdL/yYpDOHLqiNCgimb6W9kfF8MjZ1xrfDpRyRs9NUnUuNuAitW","username":"quayadmin"} # gitleaks:allowデータベースにユーザーが存在している場合は、エラーが返されます。
{"message":"Cannot initialize user in a non-empty database"}パスワードが 8 文字以上でない場合や、空白が含まれている場合には、エラーが返されます。
{"message":"Failed to initialize user: Invalid password, password must be at least 8 characters and contain no whitespace."}以下のコマンドを入力して、Red Hat Quay デプロイメントにログインします。
$ sudo podman login -u quayadmin -p quaypass12345 http://quay-server.example.com --tls-verify=false出力例
Login Succeeded!
7.1.2. コマンドラインで作成されたコンポーネントの表示 リンクのコピーリンクがクリップボードにコピーされました!
デプロイされた Red Hat Quay コンポーネントを表示するには、次の手順を使用します。
前提条件
- Red Hat Quay を OpenShift Container Platform にデプロイしている。
手順
次のコマンドを入力して、デプロイされたコンポーネントを表示します。
$ oc get pods -n quay-enterprise出力例
NAME READY STATUS RESTARTS AGE example-registry-clair-app-5ffc9f77d6-jwr9s 1/1 Running 0 3m42s example-registry-clair-app-5ffc9f77d6-wgp7d 1/1 Running 0 3m41s example-registry-clair-postgres-54956d6d9c-rgs8l 1/1 Running 0 3m5s example-registry-quay-app-79c6b86c7b-8qnr2 1/1 Running 4 3m42s example-registry-quay-app-79c6b86c7b-xk85f 1/1 Running 4 3m41s example-registry-quay-app-upgrade-5kl5r 0/1 Completed 4 3m50s example-registry-quay-database-b466fc4d7-tfrnx 1/1 Running 2 3m42s example-registry-quay-mirror-6d9bd78756-6lj6p 1/1 Running 0 2m58s example-registry-quay-mirror-6d9bd78756-bv6gq 1/1 Running 0 2m58s example-registry-quay-postgres-init-dzbmx 0/1 Completed 0 3m43s example-registry-quay-redis-8bd67b647-skgqx 1/1 Running 0 3m42s
7.1.3. Horizontal Pod 自動スケーリング リンクのコピーリンクがクリップボードにコピーされました!
デフォルトのデプロイメントでは、以下の実行中の Pod が表示されます。
-
Red Hat Quay アプリケーション自体で使用する 2 つの Pod (
example-registry-quay-app-*`) -
Red Hat Quay ロギングに使用する 1 つの Redis Pod (
example-registry-quay-redis-*) -
Red Hat Quay がメタデータストレージに使用する PostgreSQL の 1 つのデータベース Pod (
example-registry-quay-database-*) -
2 つの
Quayミラーリング Pod (example-registry-quay-mirror-*) -
Clair アプリケーションの 2 つの Pod (
example-registry-clair-app-*) -
Clair 用の 1 つの PostgreSQL Pod (
example-registry-clair-postgres-*)
Horizontal PPod 自動スケーリングはデフォルトで managed に設定され、Quay、Clair、およびリポジトリーミラーリングの Pod 数は 2 に設定されます。これにより、Red Hat Quay Operator による Red Hat Quay の更新または再設定時、またはイベントの再スケジューリング中のダウンタイムを容易に回避できます。以下のコマンドを入力して、HPA オブジェクトに関する情報を表示できます。
$ oc get hpa -n quay-enterprise
出力例
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
example-registry-clair-app Deployment/example-registry-clair-app 16%/90%, 0%/90% 2 10 2 13d
example-registry-quay-app Deployment/example-registry-quay-app 31%/90%, 1%/90% 2 20 2 13d
example-registry-quay-mirror Deployment/example-registry-quay-mirror 27%/90%, 0%/90% 2 20 2 13d