7.3. ハイブリッドまたはマルチクラウド用のストレージリソースの追加
7.3.1. MCG コマンドラインインターフェースを使用したハイブリッドまたはマルチクラウドのストレージリソースの追加
Multicloud Object Gateway (MCG) は、クラウドプロバイダーおよびクラスター全体にまたがるデータの処理を単純化します。
これを実行するには、MCG で使用できるバッキングストレージを追加します。
VMWare デプロイメントの場合、「S3 と互換性のある NooBaa バッキングストアの作成」に進み、詳細の 手順を確認します。
前提条件
MCG コマンドラインインターフェースをダウンロードします。
# subscription-manager repos --enable=rh-ocs-4-for-rhel-8-x86_64-rpms # yum install mcg
-
または、
mcg
パッケージを、https://access.redhat.com/downloads/content/547/ver=4/rhel---8/4/x86_64/packages にある OpenShift Container Storage RPM からインストールできます。
手順
MCG コマンドラインインターフェースから、以下のコマンドを実行します。
noobaa backingstore create <backing-store-type> <backingstore_name> --access-key=<AWS ACCESS KEY> --secret-key=<AWS SECRET ACCESS KEY> --target-bucket <bucket-name>
-
<backing-store-type>
を、関連するバッキングストアタイプのaws-s3
、google-cloud-store
、azure-blob
、s3-compatible
、またはibm-cos
に置き換えます。 -
<backingstore_name>
を、バッキングストアの名前に置き換えます。 -
<AWS ACCESS KEY>
および<AWS SECRET ACCESS KEY>
を、作成した AWS アクセスキー ID およびシークレットアクセスキーに置き換えます。 <bucket-name>
を既存の AWS バケット名に置き換えます。この引数は、NooBaa に対して、バッキングストア、およびその後のデータストレージおよび管理のためのターゲットバケットとして使用するバケットについて指示します。出力は以下のようになります。
INFO[0001] ✅ Exists: NooBaa "noobaa" INFO[0002] ✅ Created: BackingStore "aws-resource" INFO[0002] ✅ Created: Secret "backing-store-secret-aws-resource"
-
YAML を使用してストレージリソースを追加することもできます。
認証情報でシークレットを作成します。
apiVersion: v1 kind: Secret metadata: name: <backingstore-secret-name> type: Opaque data: AWS_ACCESS_KEY_ID: <AWS ACCESS KEY ID ENCODED IN BASE64> AWS_SECRET_ACCESS_KEY: <AWS SECRET ACCESS KEY ENCODED IN BASE64>
-
Base64 を使用して独自の AWS アクセスキー ID およびシークレットアクセスキーを指定し、エンコードし、その結果を
<AWS ACCESS KEY ID ENCODED IN BASE64>
および<AWS SECRET ACCESS KEY ENCODED IN BASE64>
に使用する必要があります。 -
<backingStore-secret-name>
を一意の名前に置き換えます。
-
Base64 を使用して独自の AWS アクセスキー ID およびシークレットアクセスキーを指定し、エンコードし、その結果を
特定のバッキングストアについて以下の YAML を適用します。
apiVersion: noobaa.io/v1alpha1 kind: BackingStore metadata: finalizers: - noobaa.io/finalizer labels: app: noobaa name: bs namespace: noobaa spec: awsS3: secret: name: <backingstore-secret-name> namespace: noobaa targetBucket: <bucket-name> type: <backing-store-type>
-
<bucket-name>
を既存の AWS バケット名に置き換えます。この引数は、NooBaa に対して、バッキングストア、およびその後のデータストレージおよび管理のためのターゲットバケットとして使用するバケットについて指示します。 -
<backingstore-secret-name>
を直前の手順で作成したシークレットの名前に置き換えます。 -
<backing-store-type> を、関連するバッキングストアタイプの
aws-s3
、google-cloud-store
、azure-blob
、s3-compatible
、またはibm-cos
に置き換えます。
-
7.3.2. S3 と互換性のある NooBaa バッキングストアの作成
手順
MCG コマンドラインインターフェースから、以下のコマンドを実行します。
noobaa backingstore create s3-compatible rgw-resource --access-key=<RGW ACCESS KEY> --secret-key=<RGW SECRET KEY> --target-bucket=<bucket-name> --endpoint=http://rook-ceph-rgw-ocs-storagecluster-cephobjectstore.openshift-storage.svc.cluster.local:80
<RGW ACCESS KEY>
および<RGW SECRET KEY>
を取得するには、RGW ユーザーシークレット名を使用して以下のコマンドを実行します。oc get secret <RGW USER SECRET NAME> -o yaml
- Base64 からアクセスキー ID とアクセスキーをデコードし、それらのキーを保持します。
-
<RGW USER ACCESS KEY>
と<RGW USER SECRET ACCESS KEY>
を、直前の手順でデコードした適切なデータに置き換えます。 <bucket-name>
を既存の RGW バケット名に置き換えます。この引数は、NooBaa に対して、バッキングストア、およびその後のデータストレージおよび管理のためのターゲットバケットとして使用するバケットについて指示します。出力は以下のようになります。
INFO[0001] ✅ Exists: NooBaa "noobaa" INFO[0002] ✅ Created: BackingStore "rgw-resource" INFO[0002] ✅ Created: Secret "backing-store-secret-rgw-resource"
YAML を使用して backingstore を作成することもできます。
CephObjectStore
ユーザーを作成します。これにより、RGW 認証情報が含まれるシークレットも作成されます。apiVersion: ceph.rook.io/v1 kind: CephObjectStoreUser metadata: name: <RGW-Username> namespace: openshift-storage spec: store: ocs-storagecluster-cephobjectstore displayName: "<Display-name>"
-
<RGW-Username>
と<Display-name>
を、一意のユーザー名および表示名に置き換えます。
-
以下の YAML を S3 と互換性のあるバッキングストアについて適用します。
apiVersion: noobaa.io/v1alpha1 kind: BackingStore metadata: finalizers: - noobaa.io/finalizer labels: app: noobaa name: <backingstore-name> namespace: openshift-storage spec: s3Compatible: endpoint: http://rook-ceph-rgw-ocs-storagecluster-cephobjectstore.openshift-storage.svc.cluster.local:80 secret: name: <backingstore-secret-name> namespace: openshift-storage signatureVersion: v4 targetBucket: <RGW-bucket-name> type: s3-compatible
-
<backingstore-secret-name>
を、直前の手順でCephObjectStore
で作成したシークレットの名前に置き換えます。 -
<bucket-name>
を既存の RGW バケット名に置き換えます。この引数は、NooBaa に対して、バッキングストア、およびその後のデータストレージおよび管理のためのターゲットバケットとして使用するバケットについて指示します。
-
7.3.3. ユーザーインターフェースを使用したハイブリッドおよびマルチクラウドのストレージリソースの追加
手順
OpenShift Storage コンソールで、
Dashboards
→OCS Object Service
に移動し、noobaa
リンクを選択します。以下に強調表示されているように左側にある Resources タブを選択します。設定する一覧から、
Add Cloud Resource
を選択します。Add new connection
を選択します。関連するネイティブクラウドプロバイダーまたは S3 互換オプションを選択し、詳細を入力します。
新規に作成された接続を選択し、これを既存バケットにマップします。
- これらの手順を繰り返して、必要な数のバッキングストアを作成します。
NooBaa UI で作成されたリソースは、OpenShift UI または MCG CLI では使用できません。
7.3.4. 新規バッキングストアの作成
以下の手順を使用して、OpenShift Container Storage で新規のバッキングストアを作成します。
前提条件
- OpenShift への管理者アクセス。
手順
- OpenShift Web コンソールの左側のペインで Operators → Installed Operators をクリックし、インストールされた Operator を表示します。
- Installed Operator ページで、Project ドロップダウンリストから openshift-storage を選択し、openshift-storage プロジェクトに切り替えます。
- OpenShift Container Storage Operator をクリックします。
OpenShift Container Storage Operator ページで右側にスクロールし、Backing Store タブをクリックします。
図7.1 バッキングストアタブのある OpenShift Container Storage Operator ページ
Create Backing Store をクリックします。
図7.2 Create Backing Store ページ
Create New Backing Store ページで、以下を実行します。
-
namespace が
openshift-storage
に設定されていることを確認します。 - Backing Store Name を入力します。
- Provider を選択します。
- Remove を選択します。
- Endpoint を入力します。これはオプションです。
ドロップダウンリストから Secret を選択するか、または独自のシークレットを作成します。オプションで、Switch to Credentials ビューを選択すると、必要なシークレットを入力できます。
注記このメニューは、Google Cloud およびローカル PVC 以外のすべてのプロバイダーに関連します。
- Target bucket を入力します。ターゲットバケットは、リモートクラウドサービスでホストされるコンテナーストレージです。NooBaa に対してシステム用にこのバケットを使用できることを通知する接続を作成できます。
-
namespace が
- Create Backing Store をクリックします。
検証手順
- Operators → Installed Operators をクリックします。
- OpenShift Container Storage Operator をクリックします。
- 新規バッキングストアを検索します。