4.2. Multicloud Object Gateway CLI および YAML を使用した namespace バケットの追加
namespace バケットの詳細は、namespace バケットの管理 を参照してください。
デプロイメントのタイプに応じて、また YAML または Multicloud Object Gateway (MCG) CLI を使用するかどうかに応じて、以下の手順のいずれかを選択して namespace バケットを追加します。
4.2.1. YAML を使用した AWS S3 namespace バケットの追加
前提条件
- OpenShift Data Foundation Operator がインストールされた OpenShift Container Platform。
Multicloud Object Gateway (MCG) へのアクセス。
詳細は、第 2 章 アプリケーションの使用による Multicloud Object Gateway へのアクセス を参照してください。
手順
認証情報でシークレットを作成します。
apiVersion: v1 kind: Secret metadata: name: <namespacestore-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>
ここで、
<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 を適用します。
apiVersion: noobaa.io/v1alpha1 kind: NamespaceStore metadata: finalizers: - noobaa.io/finalizer labels: app: noobaa name: <resource-name> namespace: openshift-storage spec: awsS3: secret: name: <namespacestore-secret-name> namespace: <namespace-secret> targetBucket: <target-bucket> type: aws-s3
<resource-name>
- リソースに指定する名前。
<namespacestore-secret-name>
- 前の手順で作成されたシークレット
<namespace-secret>
- シークレットが見つかる namespace。
<target-bucket>
- NamespaceStore 用に作成したターゲットバケット。
namespace バケットの namespace ポリシーを定義する namespace バケットクラスを作成します。namespace ポリシーには、
single
またはmulti
のタイプが必要です。タイプ
single
の namespace ポリシーには、以下の設定が必要です。apiVersion: noobaa.io/v1alpha1 kind: BucketClass metadata: labels: app: noobaa name: <my-bucket-class> namespace: openshift-storage spec: namespacePolicy: type: single: resource: <resource>
<my-bucket-class>
- 一意の namespace バケットクラス名。
<resource>
- namespace バケットの読み取りおよび書き込みターゲットを定義する単一の NamespaceStore の名前。
タイプが
multi
の namespace ポリシーには、以下の設定が必要です。apiVersion: noobaa.io/v1alpha1 kind: BucketClass metadata: labels: app: noobaa name: <my-bucket-class> namespace: openshift-storage spec: namespacePolicy: type: Multi multi: writeResource: <write-resource> readResources: - <read-resources> - <read-resources>
<my-bucket-class>
- 一意のバケットクラス名。
<write-resource>
-
namespace バケットの
write
ターゲットを定義する単一の NamespaceStore の名前。 <read-resources>
-
namespace バケットの
read
ターゲットを定義する NamespaceStores の名前のリスト。
以下の YAML を使用して前の手順に定義されたバケットクラスを使用する Object Bucket Class (OBC) リソースを使用して、バケットを作成します。
apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: <resource-name> namespace: openshift-storage spec: generateBucketName: <my-bucket> storageClassName: openshift-storage.noobaa.io additionalConfig: bucketclass: <my-bucket-class>
<resource-name>
- リソースに指定する名前。
<my-bucket>
- バケットに指定したい名前。
<my-bucket-class>
- 前のステップで作成されたバケットクラス。
OBC が Operator によってプロビジョニングされると、バケットが MCG で作成され、Operator は OBC と同じ namespace 上に同じ名前で Secret
および ConfigMap
を作成します。
4.2.2. YAML を使用した IBM COS namespace バケットの追加
前提条件
- OpenShift Data Foundation Operator がインストールされた OpenShift Container Platform。
- Multicloud Object Gateway (MCG) へのアクセス。第 2 章 アプリケーションの使用による Multicloud Object Gateway へのアクセス を参照してください。
手順
認証情報でシークレットを作成します。
apiVersion: v1 kind: Secret metadata: name: <namespacestore-secret-name> type: Opaque data: IBM_COS_ACCESS_KEY_ID: <IBM COS ACCESS KEY ID ENCODED IN BASE64> IBM_COS_SECRET_ACCESS_KEY: <IBM COS SECRET ACCESS KEY ENCODED IN BASE64>
<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 を適用します。
apiVersion: noobaa.io/v1alpha1 kind: NamespaceStore metadata: finalizers: - noobaa.io/finalizer labels: app: noobaa name: bs namespace: openshift-storage spec: s3Compatible: endpoint: <IBM COS ENDPOINT> secret: name: <namespacestore-secret-name> namespace: <namespace-secret> signatureVersion: v2 targetBucket: <target-bucket> type: ibm-cos
<IBM COS ENDPOINT>
- 適切な IBM COS エンドポイント。
<namespacestore-secret-name>
- 前の手順で作成されたシークレット
<namespace-secret>
- シークレットが見つかる namespace。
<target-bucket>
- NamespaceStore 用に作成したターゲットバケット。
namespace バケットの namespace ポリシーを定義する namespace バケットクラスを作成します。namespace ポリシーには、
single
またはmulti
のタイプが必要です。タイプ
single
の namespace ポリシーには、以下の設定が必要です。apiVersion: noobaa.io/v1alpha1 kind: BucketClass metadata: labels: app: noobaa name: <my-bucket-class> namespace: openshift-storage spec: namespacePolicy: type: single: resource: <resource>
<my-bucket-class>
- 一意の namespace バケットクラス名。
<resource>
-
namespace バケットの
read
およびwrite
ターゲットを定義する単一の NamespaceStore の名前。
タイプが
multi
の namespace ポリシーには、以下の設定が必要です。apiVersion: noobaa.io/v1alpha1 kind: BucketClass metadata: labels: app: noobaa name: <my-bucket-class> namespace: openshift-storage spec: namespacePolicy: type: Multi multi: writeResource: <write-resource> readResources: - <read-resources> - <read-resources>
<my-bucket-class>
- 一意のバケットクラス名。
<write-resource>
- namespace バケットの書き込みターゲットを定義する単一の NamespaceStore の名前。
<read-resources>
-
namespace バケットの
read
ターゲットを定義する NamespaceStores 名のリスト。
以下の YAML を適用して、前の手順で定義されたバケットクラスを使用する Object Bucket Class (OBC) リソースを使用してバケットを作成します。
apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: <resource-name> namespace: openshift-storage spec: generateBucketName: <my-bucket> storageClassName: openshift-storage.noobaa.io additionalConfig: bucketclass: <my-bucket-class>
<resource-name>
- リソースに指定する名前。
<my-bucket>
- バケットに指定したい名前。
<my-bucket-class>
前のステップで作成されたバケットクラス。
OBC が Operator によってプロビジョニングされると、バケットが MCG で作成され、Operator は OBC と同じ namespace 上に同じ名前で
Secret
およびConfigMap
を作成します。
4.2.3. Multicloud Object Gateway CLI を使用した AWS S3 namespace バケットの追加
前提条件
- OpenShift Data Foundation Operator がインストールされた OpenShift Container Platform。
- Multicloud Object Gateway (MCG) へのアクセス。第 2 章 アプリケーションの使用による Multicloud Object Gateway へのアクセス を参照してください。
カスタマーポータル から Multicloud Object Gateway (MCG) コマンドラインインターフェイスバイナリーをダウンロードし、実行可能にする。
注記アーキテクチャーに応じて適切な製品バリアントを選択してください。利用可能なプラットフォームは Linux (x86_64)、Windows、Mac OS です。
手順
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
<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
<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
<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>
<bucket-name>
- 選択したバケット名。
<custom-bucket-class>
- 前の手順で作成したバケットクラスの名前。
OBC が Operator によってプロビジョニングされると、バケットが MCG で作成され、Operator は OBC と同じ namespace 上に同じ名前で
Secret
およびConfigMap
を作成します。
4.2.4. Multicloud Object Gateway CLI を使用した IBM COS namespace バケットの追加
前提条件
- OpenShift Data Foundation Operator がインストールされた OpenShift Container Platform。
- Multicloud Object Gateway (MCG) へのアクセス。第 2 章 アプリケーションの使用による Multicloud Object Gateway へのアクセス を参照してください。
カスタマーポータル から MCG コマンドラインインターフェイスバイナリーをダウンロードし、実行可能にする。
注記Linux (x86_64)、Windows、Mac OS のいずれかを選択してください。
手順
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
<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
<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
<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>
<bucket-name>
- 選択したバケット名。
<custom-bucket-class>
- 前の手順で作成したバケットクラスの名前。
OBC が Operator によってプロビジョニングされると、バケットが MCG で作成され、Operator は OBC と同じ namespace 上に同じ名前で Secret
および ConfigMap
を作成します。