11.4. namespace バケットの管理
namespace バケットを使用すると、異なるプロバイダーのデータリポジトリーを接続できるため、単一の統合ビューを使用してすべてのデータと対話できます。各プロバイダーに関連付けられたオブジェクトバケットを namespace バケットに追加し、namespace バケット経由でデータにアクセスし、一度にすべてのオブジェクトバケットを表示します。これにより、他の複数のストレージプロバイダーから読み込む間に、希望するストレージプロバイダーへの書き込みを行うことができ、新規ストレージプロバイダーへの移行コストが大幅に削減されます。
S3 API を使用して namespace バケットのオブジェクトと対話できます。詳細は、namespace バケットのオブジェクトの Amazon S3 API エンドポイント について参照してください。
namespace バケットは、このバケットの書き込みターゲットが利用可能で機能している場合にのみ使用できます。
11.4.1. namespace バケットのオブジェクトの Amazon S3 API エンドポイント リンクのコピーリンクがクリップボードにコピーされました!
Amazon Simple Storage Service (S3) API を使用して namespace バケットのオブジェクトと対話できます。
Multicloud Object Gateway (MCG) に提供された認証情報を使用して、AWS S3 namespace バケット操作を実行できることを確認します。AWS ツール aws-cli を使用して、すべての操作がターゲットバケットで実行できることを確認できます。また、この MCG アカウントを使用しているリストバケットには、ターゲットバケットが表示されます。
Red Hat OpenShift Data Foundation は、次の namespace バケット操作をサポートしています。
これらの操作および使用方法に関する最新情報は、Amazon S3 API リファレンスのドキュメントを参照してください。
11.4.2. Multicloud Object Gateway CLI および YAML を使用した namespace バケットの追加 リンクのコピーリンクがクリップボードにコピーされました!
namespace バケットの詳細は、namespace バケットの管理 を参照してください。
デプロイメントのタイプに応じて、また YAML または Multicloud Object Gateway CLI を使用するかどうかに応じて、以下の手順のいずれかを選択して namespace バケットを追加します。
11.4.2.1. YAML を使用した AWS S3 namespace バケットの追加 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- OpenShift Data Foundation Operator を使用した OpenShift Container Platform のインストール
Multicloud Object Gateway (MCG) へのアクセス。
詳細は、第 2 章 アプリケーションによるマルチクラウドオブジェクトゲートウェイへのアクセス を参照してください。
手順
認証情報でシークレットを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、
<namespacestore-secret-name>は一意の NamespaceStore 名になります。Base64を使用して独自の AWS アクセスキー ID およびシークレットアクセスキーを指定してエンコードし、その結果を<AWS ACCESS KEY ID ENCODED IN BASE64>および<AWS SECRET ACCESS KEY ENCODED IN BASE64>の代わりに使用する必要があります。OpenShift カスタムリソース定義 (CRD) を使用して NamespaceStore リソースを作成します。
NamespaceStore は、MCG namespace バケットでデータの
readまたはwriteターゲットとして使用される基礎となるストレージを表します。NamespaceStore リソースを作成するには、以下の YAML を適用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <resource-name>- リソースに指定する名前。
<namespacestore-secret-name>- 前の手順で作成されたシークレット
<namespace-secret>- シークレットが見つかる namespace。
<target-bucket>- NamespaceStore 用に作成したターゲットバケット。
namespace バケットの namespace ポリシーを定義する namespace バケットクラスを作成します。namespace ポリシーには、
singleまたはmultiのタイプが必要です。タイプ
singleの namespace ポリシーには、以下の設定が必要です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <my-bucket-class>- 一意の namespace バケットクラス名。
<resource>- namespace バケットの読み取りおよび書き込みターゲットを定義する単一の NamespaceStore の名前。
タイプが
multiの namespace ポリシーには、以下の設定が必要です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <my-bucket-class>- 一意のバケットクラス名。
<write-resource>-
namespace バケットの
writeターゲットを定義する単一の NamespaceStore の名前。 <read-resources>-
namespace バケットの
readターゲットを定義する NamespaceStores の名前のリスト。
以下の YAML を使用して前の手順に定義されたバケットクラスを使用する Object Bucket Class (OBC) リソースを使用して、バケットを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <resource-name>- リソースに指定する名前。
<my-bucket>- バケットに指定したい名前。
<my-bucket-class>- 前のステップで作成されたバケットクラス。
OBC が Operator によってプロビジョニングされると、バケットが MCG で作成され、Operator は OBC と同じ namespace 上に同じ名前で Secret および ConfigMap を作成します。
11.4.2.2. YAML を使用した IBM COS namespace バケットの追加 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- OpenShift Data Foundation Operator を使用した OpenShift Container Platform のインストール
- Multicloud Object Gateway (MCG) へのアクセスについては、第 2 章の Accessing the Multicloud Object Gateway with your applications を参照してください。
手順
認証情報でシークレットを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <namespacestore-secret-name>一意の NamespaceStore 名。
Base64を使用して独自の IBM COS アクセスキー ID およびシークレットアクセスキーを指定してエンコードし、その結果を<IBM COS ACCESS KEY ID ENCODED IN BASE64>および<IBM COS SECRET ACCESS KEY ENCODED IN BASE64>の代わりに使用する必要があります。
OpenShift カスタムリソース定義 (CRD) を使用して NamespaceStore リソースを作成します。
NamespaceStore は、MCG namespace バケットでデータの
readまたはwriteターゲットとして使用される基礎となるストレージを表します。NamespaceStore リソースを作成するには、以下の YAML を適用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <IBM COS ENDPOINT>- 適切な IBM COS エンドポイント。
<namespacestore-secret-name>- 前の手順で作成されたシークレット
<namespace-secret>- シークレットが見つかる namespace。
<target-bucket>- NamespaceStore 用に作成したターゲットバケット。
namespace バケットの namespace ポリシーを定義する namespace バケットクラスを作成します。namespace ポリシーには、
singleまたはmultiのタイプが必要です。タイプ
singleの namespace ポリシーには、以下の設定が必要です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <my-bucket-class>- 一意の namespace バケットクラス名。
<resource>-
namespace バケットの
readおよびwriteターゲットを定義する単一の NamespaceStore の名前。
タイプが
multiの namespace ポリシーには、以下の設定が必要です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow <my-bucket-class>- 一意のバケットクラス名。
<write-resource>- namespace バケットの書き込みターゲットを定義する単一の NamespaceStore の名前。
<read-resources>-
namespace バケットの
readターゲットを定義する NamespaceStores 名のリスト。
以下の YAML を適用して、前の手順で定義されたバケットクラスを使用する Object Bucket Class (OBC) リソースを使用してバケットを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <resource-name>- リソースに指定する名前。
<my-bucket>- バケットに指定したい名前。
<my-bucket-class>前のステップで作成されたバケットクラス。
OBC が Operator によってプロビジョニングされると、バケットが MCG で作成され、Operator は OBC と同じ namespace 上に同じ名前で
SecretおよびConfigMapを作成します。
11.4.2.3. Multicloud Object Gateway CLI を使用した AWS S3 namespace バケットの追加 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- OpenShift Data Foundation Operator を使用した OpenShift Container Platform のインストール
- Multicloud Object Gateway (MCG) へのアクセスについては、第 2 章の Accessing the Multicloud Object Gateway with your applications を参照してください。
- MCG コマンドラインインターフェイスをダウンロードします。
subscription-manager repos --enable=rh-odf-4-for-rhel-8-x86_64-rpms yum install mcg
# subscription-manager repos --enable=rh-odf-4-for-rhel-8-x86_64-rpms
# yum install mcg
サブスクリプションマネージャーを使用してリポジトリーを有効にするための適切なアーキテクチャーを指定します。たとえば、IBM Z の場合は、次のコマンドを使用します。
subscription-manager repos --enable=rh-odf-4-for-rhel-8-s390x-rpms
# subscription-manager repos --enable=rh-odf-4-for-rhel-8-s390x-rpms
または、MCG パッケージを、https://access.redhat.com/downloads/content/547/ver=4/rhel---8/4/x86_64/package にある OpenShift Data Foundation RPM からインストールできます。
お使いのアーキテクチャーに応じて、正しい製品バリアントを選択します。
手順
MCG コマンドラインインターフェイスで、NamespaceStore リソースを作成します。
NamespaceStore は、MCG namespace バケットでデータの
readまたはwriteターゲットとして使用される基礎となるストレージを表します。noobaa namespacestore create aws-s3 <namespacestore> --access-key <AWS ACCESS KEY> --secret-key <AWS SECRET ACCESS KEY> --target-bucket <bucket-name> -n openshift-storage
$ noobaa namespacestore create aws-s3 <namespacestore> --access-key <AWS ACCESS KEY> --secret-key <AWS SECRET ACCESS KEY> --target-bucket <bucket-name> -n openshift-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow <namespacestore>- NamespaceStore の名前。
<AWS ACCESS KEY>と<AWS SECRET ACCESS KEY>- この目的のために作成した AWS アクセスキー ID とシークレットアクセスキー。
<bucket-name>- 既存の AWS バケット名。この引数は、MCG に対して、バッキングストア、およびその後のデータストレージおよび管理のためのターゲットバケットとして使用するバケットについて指示します。
namespace バケットの namespace ポリシーを定義する namespace バケットクラスを作成します。namespace ポリシーは、
singleまたはmultiのいずれかになります。タイプが
singleの namespace ポリシーを使用して namespace バケットクラスを作成するには、以下を実行します。noobaa bucketclass create namespace-bucketclass single <my-bucket-class> --resource <resource> -n openshift-storage
$ noobaa bucketclass create namespace-bucketclass single <my-bucket-class> --resource <resource> -n openshift-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow <resource-name>- リソースに指定する名前。
<my-bucket-class>- 一意のバケットクラス名。
<resource>-
namespace バケットの
readおよびwriteターゲットを定義する単一の namespace-store。
タイプ
multiの namespace ポリシーを使用して namespace バケットクラスを作成するには、以下を実行します。noobaa bucketclass create namespace-bucketclass multi <my-bucket-class> --write-resource <write-resource> --read-resources <read-resources> -n openshift-storage
$ noobaa bucketclass create namespace-bucketclass multi <my-bucket-class> --write-resource <write-resource> --read-resources <read-resources> -n openshift-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow <resource-name>- リソースに指定する名前。
<my-bucket-class>- 一意のバケットクラス名。
<write-resource>-
namespace バケットの
writeターゲットを定義する単一の namespace-store。 <read-resources>s-
namespace バケットの
readターゲットを定義する、コンマで区切られた namespace-store のリスト。
前の手順で定義したバケットクラスを使用する Object Bucket Class (OBC) リソースを使用して、バケットを作成します。
noobaa obc create my-bucket-claim -n openshift-storage --app-namespace my-app --bucketclass <custom-bucket-class>
$ noobaa obc create my-bucket-claim -n openshift-storage --app-namespace my-app --bucketclass <custom-bucket-class>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <bucket-name>- 選択したバケット名。
<custom-bucket-class>- 前の手順で作成したバケットクラスの名前。
OBC が Operator によってプロビジョニングされると、バケットが MCG で作成され、Operator は OBC と同じ namespace 上に同じ名前で
SecretおよびConfigMapを作成します。
11.4.2.4. Multicloud Object Gateway CLI を使用した IBM COS namespace バケットの追加 リンクのコピーリンクがクリップボードにコピーされました!
前提条件
- OpenShift Data Foundation Operator を使用した OpenShift Container Platform のインストール
- Multicloud Object Gateway (MCG) へのアクセスについては、第 2 章の Accessing the Multicloud Object Gateway with your applications を参照してください。
MCG コマンドラインインターフェイスをダウンロードします。
subscription-manager repos --enable=rh-odf-4-for-rhel-8-x86_64-rpms yum install mcg
# subscription-manager repos --enable=rh-odf-4-for-rhel-8-x86_64-rpms # yum install mcgCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記サブスクリプションマネージャーを使用してリポジトリーを有効にするための適切なアーキテクチャーを指定します。
- IBM Power の場合は、次のコマンドを使用します。
subscription-manager repos --enable=rh-odf-4-for-rhel-8-ppc64le-rpms
# subscription-manager repos --enable=rh-odf-4-for-rhel-8-ppc64le-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow - IBM Z の場合は、次のコマンドを使用します。
subscription-manager repos --enable=rh-odf-4-for-rhel-8-s390x-rpms
# subscription-manager repos --enable=rh-odf-4-for-rhel-8-s390x-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow または、MCG パッケージを、https://access.redhat.com/downloads/content/547/ver=4/rhel---8/4/x86_64/package にある OpenShift Data Foundation RPM からインストールできます。
注記お使いのアーキテクチャーに応じて、正しい製品バリアントを選択します。
手順
MCG コマンドラインインターフェイスで、NamespaceStore リソースを作成します。
NamespaceStore は、MCG namespace バケットでデータの
readまたはwriteターゲットとして使用される基礎となるストレージを表します。noobaa namespacestore create ibm-cos <namespacestore> --endpoint <IBM COS ENDPOINT> --access-key <IBM ACCESS KEY> --secret-key <IBM SECRET ACCESS KEY> --target-bucket <bucket-name> -n openshift-storage
$ noobaa namespacestore create ibm-cos <namespacestore> --endpoint <IBM COS ENDPOINT> --access-key <IBM ACCESS KEY> --secret-key <IBM SECRET ACCESS KEY> --target-bucket <bucket-name> -n openshift-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow <namespacestore>- NamespaceStore の名前。
<IBM ACCESS KEY>、<IBM SECRET ACCESS KEY>、<IBM COS ENDPOINT>- IBM アクセスキー ID、シークレットアクセスキー、および既存の IBM バケットの場所に対応する該当する地域エンドポイント
<bucket-name>- 既存の IBM バケット名。この引数は、MCG に対して、バッキングストア、およびその後のデータストレージおよび管理のためのターゲットバケットとして使用するバケットについて指示します。
namespace バケットの namespace ポリシーを定義する namespace バケットクラスを作成します。namespace ポリシーには、
singleまたはmultiのタイプが必要です。タイプが
singleの namespace ポリシーを使用して namespace バケットクラスを作成するには、以下を実行します。noobaa bucketclass create namespace-bucketclass single <my-bucket-class> --resource <resource> -n openshift-storage
$ noobaa bucketclass create namespace-bucketclass single <my-bucket-class> --resource <resource> -n openshift-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow <resource-name>- リソースに指定する名前。
<my-bucket-class>- 一意のバケットクラス名。
<resource>-
namespace バケットの
readおよびwriteターゲットを定義する単一の NamespaceStore。
タイプ
multiの namespace ポリシーを使用して namespace バケットクラスを作成するには、以下を実行します。noobaa bucketclass create namespace-bucketclass multi <my-bucket-class> --write-resource <write-resource> --read-resources <read-resources> -n openshift-storage
$ noobaa bucketclass create namespace-bucketclass multi <my-bucket-class> --write-resource <write-resource> --read-resources <read-resources> -n openshift-storageCopy to Clipboard Copied! Toggle word wrap Toggle overflow <resource-name>- リソースに指定する名前。
<my-bucket-class>- 一意のバケットクラス名。
<write-resource>-
namespace バケットの
writeターゲットを定義する単一の NamespaceStore。 <read-resources>-
namespace バケットの
readターゲットを定義する NamespaceStores のコンマ区切りリスト。
前の手順で定義したバケットクラスを使用する Object Bucket Class (OBC) リソースを使用して、バケットを作成します。
noobaa obc create my-bucket-claim -n openshift-storage --app-namespace my-app --bucketclass <custom-bucket-class>
$ noobaa obc create my-bucket-claim -n openshift-storage --app-namespace my-app --bucketclass <custom-bucket-class>Copy to Clipboard Copied! Toggle word wrap Toggle overflow <bucket-name>- 選択したバケット名。
<custom-bucket-class>- 前の手順で作成したバケットクラスの名前。
OBC が Operator によってプロビジョニングされると、バケットが MCG で作成され、Operator は OBC と同じ namespace 上に同じ名前で Secret および ConfigMap を作成します。
11.4.3. OpenShift Container Platform ユーザーインターフェイスを使用した namespace バケットの追加 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform ユーザーインターフェイスを使用して namespace バケットを追加できます。namespace バケットの詳細は、namespace バケットの管理 を参照してください。
前提条件
- OpenShift Data Foundation Operator を使用する Openshift Container Platform がすでにインストールされている。
- Multicloud Object Gateway (MCG) へのアクセス。
手順
-
OpenShift Web コンソールで、Storage
Object Storage Namespace Store タブに移動します。 Create Namespace Store タブをクリックして、namespace バケットで使用される
namespacestoreリソースを作成します。-
namespacestore名を入力します。 - プロバイダーとリージョンを選択します。
- 既存のシークレットを選択するか、Switch to credentials をクリックして、シークレットキーおよびシークレットアクセスキーを入力してシークレットを作成します。
- ターゲットバケットを入力します。
- Create をクリックします。
-
-
Namespace Store タブで、新規作成された
namespacestoreが Ready 状態にあることを確認します。 - 必要な量のリソースをすべて作成するまで、手順 2 と 3 を繰り返します。
Bucket Class タブに移動し、Create Bucket Class をクリックします。
-
NamespaceBucketClass type ラジオボタンを選択します。 - BucketClass 名 を入力し、Next をクリックします。
namespace バケットの Namespace Policy Type を選択し、Next をクリックします。
- namespace ポリシータイプが Single の場合、読み取りリソースを選択する必要があります。
- namespace ポリシータイプが Multi の場合、読み取りリソースおよび書き込みリソースを選択する必要があります。
- namespace ポリシータイプが Cache の場合は、namespace バケットの読み取りおよび書き込みターゲットを定義する Hub namespace ストアを選択する必要があります。
- namespace バケットの読み取りおよび書き込みターゲットを定義する Read and Write NamespaceStore を 1 つ選択し、Next をクリックします。
- 新しいバケットクラスの詳細を確認し、Create Bucket Class をクリックします。
-
- Bucket Class タブに移動し、新たに作成されたリソースが Ready フェーズにあることを確認します。
Object Bucket Claims タブに移動し、Create Object Bucket Claim をクリックします。
- namespace バケットの ObjectBucketClaim Name を入力します。
-
StorageClass を
openshift-storage.noobaa.ioとして選択します。 -
一覧から、
namespacestore用に以前に作成した BucketClass を選択します。デフォルトでは、noobaa-default-bucket-classが選択されます。 - Create をクリックします。namespace バケットは、namespace のオブジェクトバケット要求とともに作成されます。
- Object Bucket Claims タブに移動し、作成された Object Bucket Claim が Bound 状態にあることを確認します。
- Object Buckets タブに移動し、namespace バケットがリストに存在し、Bound 状態にあることを確認します。