Menu Close
5.2. Multicloud Object Gateway CLI および YAML を使用した namespace バケットの追加
namespace バケットについての詳細は、「namespace バケット の管理」を参照してください。
デプロイメントのタイプに応じて、および YAML または Multicloud Object Gateway CLI を使用するかどうかに応じて、以下の手順のいずれかを選択して namespace バケットを追加します。
5.2.1. YAML を使用した AWS S3 namespace バケットの追加
前提条件
- 実行中の OpenShift Container Storage Platform
- Multicloud Object Gateway へのアクセスについては、第 2 章のアプリケーションでの Multicloud Object Gateway へのアクセスについて参照してください。https://access.redhat.com/documentation/ja-jp/red_hat_openshift_container_storage/4.7/html-single/managing_hybrid_and_multicloud_resources/index#accessing-the-Multicloud-object-gateway-with-your-applications_rhocs
手順
認証情報を使用してシークレットを作成します。
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>
-
Base64 を使用して独自の AWS アクセスキー ID およびシークレットアクセスキーを指定し、エンコードし、その結果を
<AWS ACCESS KEY ID ENCODED IN BASE64>
および<AWS SECRET ACCESS KEY ENCODED IN BASE64>
に使用する必要があります。ii.<namespacestore-secret-name>
を一意の名前に置き換えます。
-
Base64 を使用して独自の AWS アクセスキー ID およびシークレットアクセスキーを指定し、エンコードし、その結果を
OpenShift カスタムリソース定義(CRD)を使用して NamespaceStore リソースを作成します。NamespaceStore は、Multicloud Object Gateway namespace バケットでデータの読み取りおよび書き込みターゲットとして使用される基礎となるストレージを表します。NamespaceStore リソースを作成するには、以下の YAML を適用します。
apiVersion: noobaa.io/v1alpha1 kind: NamespaceStore metadata: finalizers: - noobaa.io/finalizer labels: app: noobaa name: mybucketnamespace namespace: k8snamespace spec: awsS3: secret: name: <namespacestore-secret-name> namespace: k8snamespace targetBucket: awsdatalake type: aws-s3
-
<namespacestore-secret-name>
を、手順 1 で作成したシークレットに置き換えます。
-
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>
を一意のバケットクラス名に置き換えます。<resource>
を namespace バケットの読み取りおよび書き込みターゲットを定義する単一の namespace-store に置き換えます。タイプが
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 バケットの書き込みターゲットを定義する単一の namespace-store に置き換えます。<read-resources
を、namespace バケットの読み取りターゲットを定義する namespace-stores の一覧に置き換えます。
以下の YAML を適用して、手順 2 に定義されたバケットクラスを使用する Object Bucket Class(OBC)リソースを使用してバケットを作成します。
apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: my-bucket-claim namespace: my-app spec: generateBucketName: my-bucket storageClassName: noobaa.noobaa.io additionalConfig: bucketclass: <my-bucket-class>
-
<my-bucket-class>
を直前の手順で作成したバケットクラスに置き換えます。
-
OBC が Operator によってプロビジョニングされると、バケットが Multicloud Object Gateway で作成され、Operator は OBC の同じ namespace にある OBC の名前で Secret および ConfigMap を作成します。