3.2.2. マネージドストレージ

Operator が Quay のオブジェクトストレージを管理する必要がある場合は、クラスターが ObjectBucketClaim API 経由でオブジェクトストレージを提供できるようにする必要があります。Red Hat OpenShift Data Foundations (ODF) Operator を使用する場合は、サポートされるオプションを 2 つ使用できます。

  • ローカルの Kubernetes PersistentVolume ストレージでサポートされる Multi-Cloud Object Gateway のスタンドアロンインスタンス

    • 高可用性がない
    • Quay サブスクリプションに含まれる
    • ODF に別のサブスクリプションは必要ない
  • スケールアウト Object Service と Ceph を使用する ODF の実稼働デプロイメント

    • 高可用性がある
    • ODF に別のサブスクリプションが必要

スタンドアロンのインスタンスオプションを使用するには、以下の読み取りを続行します。ODF の実稼働デプロイメントについては、公式ドキュメント を参照してください。

注記

オブジェクトストレージのディスク容量は、50 GiB が Operator によって自動的に割り当てられます。この数は、ほとんどの小規模/中規模の Red Hat Quay インストールで利用可能なストレージの量を表しますが、実際のユースケースには十分ではない可能性があります。現時点で、RHOCS ボリュームのサイズ変更は Operator によって処理されません。詳細は、管理ストレージのサイズ変更についてのセクションを参照してください。

3.2.2.1. スタンドアロン Object Gateway について

Red Hat Quay サブスクリプションの一環として、Red Hat OpenShift Data Foundations Operator (以前は OpenShift Container Storage Operator として知られる) の Multi-Cloud Object Gateway (MCG) コンポーネントを使用することができます。このゲートウェイコンポーネントを使用すると、Kubernetes PersistentVolume ベースのブロックストレージがサポートする Quay への S3 互換のオブジェクトストレージインターフェイスを指定できます。この使用は、Operator によって管理される Quay デプロイメントや、以下に示す MCG インスタンスの仕様に限定されます。

Red Hat Quay はローカルファイルシステムのストレージをサポートしないため、ユーザーは代わりに Kubernetes PersistentVolume ストレージと組み合わせてゲートウェイを利用し、サポートされるデプロイメントを提供できます。PersistentVolume はオブジェクトストレージのバッキングストアとしてゲートウェイインスタンスに直接マウントされ、ブロックベースの StorageClass がサポートされます。

PersistentVolume の性質上、これはスケールアウトできる高可用性ソリューションではなく、Red Hat OpenShift Data Foundations (ODF) などのスケールアウトストレージシステムを置き換えることはできません。ゲートウェイの単一インスタンスのみが実行されています。再スケジュール、更新、または予定外のダウンタイムが原因でゲートウェイを実行している Pod が利用できなくなると、接続された Quay インスタンスのパフォーマンスが一時的に低下します。

3.2.2.1.1. スタンドアロン Object Gateway の作成

ODF (以前の名前は OpenShift Container Storage) Operator をインストールし、単一のインスタンスの Multi-Cloud Gateway サービスを設定するには、以下の手順に従います。

  1. OpenShift コンソールを開き、Operators → OperatorHub を選択してから OpenShift Data Foundation Operator を選択します。
  2. インストールを選択します。すべてのデフォルトオプションを受け入れ、Install を再度選択します。
  3. 約 1 分以内に、Operator はインストールを開始し、namespace openshift-storage を作成します。Status 列に Succeeded のマークが付けられると、完了を確認できます。

    When the installation of the ODF Operator is complete, you are prompted to create a storage system. Do not follow this instruction. Instead, create NooBaa object storage as outlined the following steps.
  4. NooBaa オブジェクトストレージを作成します。以下の YAML を noobaa.yml という名前のファイルに保存します。

    apiVersion: noobaa.io/v1alpha1
    kind: NooBaa
    metadata:
      name: noobaa
      namespace: openshift-storage
    spec:
     dbResources:
       requests:
         cpu: '0.1'
         memory: 1Gi
     dbType: postgres
     coreResources:
       requests:
         cpu: '0.1'
         memory: 1Gi

    これにより、Multi-cloud Object Gateway の単一のインスタンスデプロイメントが作成されます。

  5. 以下のコマンドを使用して設定を適用します。

    $ oc create -n openshift-storage -f noobaa.yaml
    noobaa.noobaa.io/noobaa created
  6. 数分後に、MCG インスタンスがプロビジョニングを終了していることを確認できるはずです (PHASE 列が Ready に設定されます)。

    $ oc get -n openshift-storage noobaas noobaa -w
    NAME     MGMT-ENDPOINTS              S3-ENDPOINTS                IMAGE                                                                                                            PHASE   AGE
    noobaa   [https://10.0.32.3:30318]   [https://10.0.32.3:31958]   registry.redhat.io/ocs4/mcg-core-rhel8@sha256:56624aa7dd4ca178c1887343c7445a9425a841600b1309f6deace37ce6b8678d   Ready   3d18h
  7. 次に、ゲートウェイのバッキングストアを設定します。以下の YAML を noobaa-pv-backing-store.yaml という名前のファイルに保存します。

    noobaa-pv-backing-store.yaml

    apiVersion: noobaa.io/v1alpha1
    kind: BackingStore
    metadata:
      finalizers:
      - noobaa.io/finalizer
      labels:
        app: noobaa
      name: noobaa-pv-backing-store
      namespace: openshift-storage
    spec:
      pvPool:
        numVolumes: 1
        resources:
          requests:
            storage: 50Gi 1
        storageClass: STORAGE-CLASS-NAME 2
      type: pv-pool

    1
    オブジェクトストレージサービスの全体的な容量。必要に応じて調整します。
    2
    要求される PersistentVolumes に使用する StorageClass。クラスターのデフォルトを使用するようにこのプロパティーを削除します。
  8. 以下のコマンドを使用して設定を適用します。

    $ oc create -f noobaa-pv-backing-store.yaml
    backingstore.noobaa.io/noobaa-pv-backing-store created

    これにより、ゲートウェイのバッキングストア設定が作成されます。Quay のすべてのイメージは、上記の設定によって作成される PersistentVolume のゲートウェイを経由してオブジェクトとして保存されます。

  9. 最後に、以下のコマンドを実行して PersistentVolume バッキングストアを Operator によって発行されるすべての ObjectBucketClaims のデフォルトにします。

    $ oc patch bucketclass noobaa-default-bucket-class --patch '{"spec":{"placementPolicy":{"tiers":[{"backingStores":["noobaa-pv-backing-store"]}]}}}' --type merge -n openshift-storage

これにより、Red Hat Quay の Multi-Cloud Object Gateway インスタンスの設定が完了します。この設定は、Red Hat OpenShift Data Foundations がインストールされているクラスターで並行して実行できないことに注意してください。