2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Red Hat Quay を CP4D のプライベート・コンテナー・レジストリとして使う

Last updated at Posted at 2023-09-06

Red Hat Quay Operator のインストール

  1. OpenShift Container Platform コンソールを使用して、Operators → OperatorHub を選択します。

  2. 検索ボックスに Red Hat Quay と入力し、Red Hat が提供する公式の Red Hat Quay Operator を選択します。機能、前提条件、デプロイメント情報について記載されている Installation ページに移動します。
    operator1.png

  3. インストール を選択します。Operator Installation ページが表示されます。
    operator2.png

  4. インストールのカスタマイズには、以下の選択肢を使用できます。
    i. Update Channel: 更新チャネルとして、最新リリースの stable-3.9 を選択します。
    ii. Installation Mode: Red Hat Quay Operator をクラスター全体で使用する場合は、クラスターのすべてのnamespace を選択します。
    iii. 更新の承認: 自動 を選択します。
    operator3.png

  5. インストール を選択します。
    operator4.png

# oc get pods -n openshift-operators
NAME                                    READY   STATUS    RESTARTS   AGE
quay-operator.v3.9.0-645f8977b6-pspc5   1/1     Running   0          77s

オブジェクトストレージの設定とRed Hat Quay のデプロイ

ここでは Amazon S3ストレージを使用する方法を紹介しますが、MCG (Multicloud Object Gateway) をインストール済みの場合、こちらで紹介されている方法で、オブジェクトストレージを使用せずにRed Hat Quayをデプロイすることもできます。

参考:

Red Hat Quay をインストールする前にオブジェクトストレージを設定する必要があります。今回は、管理対象外ストレージであるAmazon S3 ストレージを使用します。

  1. 次のコマンドを入力して、namespace (デフォルトのnamespaceは、quay-enterprise) を作成します。作成したnamespaceに、プロジェクトを切り替えます。

    # oc new-project quay-enterprise
    # oc project quay-enterprise
    
  2. こちらを参照してAmazon S3 bucketをセットアップし、アクセスに必要な認証情報を入手します。次のような config.yaml ファイルを作成し、アクセス情報を設定します。

    config.yaml
    DISTRIBUTED_STORAGE_CONFIG:
      s3Storage:
        - S3Storage
        - host: s3.ap-northeast-1.amazonaws.com
          s3_access_key: XXXXXXXXXXXXXXXXXXXX
          s3_secret_key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
          s3_bucket: quay-bucket
          storage_path: /datastorage/registry
    DISTRIBUTED_STORAGE_DEFAULT_LOCATIONS: []
    DISTRIBUTED_STORAGE_PREFERENCE:
        - s3Storage
    
  3. 次のコマンドを入力して、設定ファイルを使用して Secret を作成します。

    # oc create secret generic --from-file config.yaml=./config.yaml config-bundle-secret
    secret/config-bundle-secret created
    
  4. quayregistry.yaml ファイルを作成し、管理対象外コンポーネントを特定し、作成された Secret を参照します。

    quayregistry.yaml
    apiVersion: quay.redhat.com/v1
    kind: QuayRegistry
    metadata:
      name: my-registry
      namespace: quay-enterprise
    spec:
      configBundleSecret: config-bundle-secret
      components:
        - kind: objectstorage
          managed: false
    
  5. quayregistry.yaml ファイルを使用してレジストリーをデプロイします。

    # oc create -n quay-enterprise -f quayregistry.yaml
    quayregistry.quay.redhat.com/my-registry created
    
  6. 次のようなpodが起動します。

    # oc get pods -n quay-enterprise
    NAME                                              READY   STATUS      RESTARTS        AGE
    my-registry-clair-app-5457c98f98-67w46            1/1     Running     2 (3m49s ago)   4m3s
    my-registry-clair-app-5457c98f98-7mdpf            1/1     Running     0               2m35s
    my-registry-clair-app-5457c98f98-d25l8            1/1     Running     0               65s
    my-registry-clair-app-5457c98f98-kbb45            1/1     Running     2 (3m38s ago)   3m50s
    my-registry-clair-postgres-75f9b7f5dc-nkd7q       1/1     Running     1 (3m34s ago)   4m3s
    my-registry-quay-app-759c59859d-kgqnb             1/1     Running     0               3m5s
    my-registry-quay-app-759c59859d-p764v             1/1     Running     0               3m6s
    my-registry-quay-app-upgrade-dsp8s                0/1     Completed   0               4m3s
    my-registry-quay-config-editor-5d5b468dff-pxllh   1/1     Running     0               4m3s
    my-registry-quay-database-77cf6fbf7f-bsq2z        1/1     Running     0               4m3s
    my-registry-quay-mirror-6cd84fdfb5-hwskm          1/1     Running     0               4m3s
    my-registry-quay-mirror-6cd84fdfb5-m6sj2          1/1     Running     0               3m48s
    my-registry-quay-redis-68c786fcf4-wpw67           1/1     Running     0               4m3s
    

最初のユーザーの作成

Red Hat Quay UI を使用した最初のユーザーの作成

  1. OpenShift Container Platform コンソールで、Operators → Installed Operators に移動し、Red Hat Quay オペレーターをクリックします。
    create_user0.png
  2. Quay Registry から新しくインストールした QuayRegistry オブジェクト(ここではmy-registry)をクリックして詳細を表示します。
    create_user1.png
  3. Registry Endpoint の URL をクリックし、Red Hat Quay レジストリー UI にアクセスします。
    create_user2.png
  4. Red Hat Quay レジストリー UI で Create Account を選択し、ユーザーを作成します。
    create_user3.png
    5.Username、Password、Email の詳細を入力し、Create Account をクリックします。
    create_user4.png
  5. 最初のユーザーを作成すると、自動的に Red Hat Quay レジストリーにログインされます。
    create_user5.png

Organization の作成

IBM Cloud Pak for Data のプライベート・コンテナー・レジストリーとして使用する場合は、イメージのミラーリングの前に cpcpopen というOrganizationを作成しておく必要があります。

参照:
プライベート・コンテナー・レジストリーの要件 - 必要なイメージ接頭部の許可

  1. 「+」 → New Organization をクリックします。
    organization1.png

  2. Organization Name に cp および cpopen を入力し、Create Organization をクリックします。
    create_org_cp.png
    create_org_cpopen.png

IBM Cloud Pak for Data のプライベート・コンテナー・レジストリーとして使用する場合で、Amazon Elastic File System のセットアップを実施する場合は、さらにもう一つOrganizationを作成しておく必要があります。Red Hat Quayの場合、一番上の階層がOrganizationとなりますが、Organization はリポジトリとは違いその直下にイメージをミラーリングすることができないためです。

例えば、 sig-storage というOrganization を作成した場合、ミラーリング実行コマンドを次のように変更して実行します。

cpd-cli manage mirror-nfs-provisioner \
--target_registry=${PRIVATE_REGISTRY_LOCATION}/sig-storage \
--source_registry=k8s.gcr.io/sig-storage

## 参考:マニュアル記載のミラーリングコマンド
cpd-cli manage mirror-nfs-provisioner \
--target_registry=${PRIVATE_REGISTRY_LOCATION} \
--source_registry=k8s.gcr.io/sig-storage

これにより、sig-storage/nfs-subdir-external-provisioner というリポジトリにイメージがミラーリングされます。
sig-storage.png
その後のステップで NFS_IMAGE 環境変数を設定する時には、次のように設定します。

export NFS_IMAGE=${PRIVATE_REGISTRY_LOCATION}/sig-storage/nfs-subdir-external-provisioner:v4.0.2

環境

  • ROSA 4.12
  • Red Hat Quay 3.9 (3.9.1でも同様であることを確認済み)
  • IBM Cloud Pak for Data 4.7
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?