YAML を使用した AWS S3 名前空間バケットの追加

YAML ファイルを使用して、 AWS S3 名前空間バケットを追加します。

開始前に

手順

  1. 資格情報を使用して秘密を作成します。
    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 名です。
    AWS アクセス・キー ID のエンコード場所 BASE64
    AWS BASE64でエンコードされた秘密アクセス・キー
    Base64を使用して独自の AWS アクセス・キー ID と秘密アクセス・キーを指定およびエンコードし、 AWS ACCESS KEY ID ENCODED IN BASE64 および AWS SECRET ACCESS KEY ENCODED IN BASE64の代わりに結果を使用する必要があります。
  2. OpenShift カスタム・リソース定義 (CRD) を使用して NamespaceStore リソースを作成します。

    NamespaceStore は、MCG 名前空間バケット内のデータの 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
    リソース名

    リソースに指定したい名前。

    名前空間ストア・シークレット名 (namespacestore-secret-name)

    前のステップで作成したシークレット。

    名前空間-秘密

    シークレットを見つけることができる名前空間。

    ターゲット・バケット

    NamespaceStore用に作成したターゲット・バケット。

  3. 名前空間バケットの名前空間ポリシーを定義する名前空間バケット・クラスを作成します。
    名前空間ポリシーには、 single または multiのいずれかのタイプが必要です。
    • タイプ single の名前空間ポリシーには、以下の構成が必要です。

      apiVersion: noobaa.io/v1alpha1
      kind: BucketClass
      metadata:
        labels:
          app: noobaa
        name: <my-bucket-class>
        namespace: openshift-storage
      spec:
        namespacePolicy:
          type:
          single:
            resource: <resource>
      マイ・バケット・クラス

      固有の名前空間バケット・クラス名。

      リソース

      名前空間バケットの読み取りおよび書き込みのターゲットを定義する単一の NamespaceStore の名前。

    • タイプ multi の名前空間ポリシーには、以下の構成が必要です。
      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>
      マイ・バケット・クラス

      固有のバケット・クラス名。

      書き込みリソース

      名前空間バケットの write ターゲットを定義する単一の NamespaceStore の名前。

      読み取りリソース

      名前空間バケットの read ターゲットを定義する NamespaceStores の名前のリスト。

  4. オブジェクト・バケット・クラス (OBC) リソースを使用してバケットを作成します。
    以下の YAML を使用して、前のステップで定義したバケット・クラスを使用します。
    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>
    リソース名

    リソースに指定したい名前。

    マイ・バケット

    バケットに指定したい名前。

    マイ・バケット・クラス

    前のステップで作成したバケット・クラス。

    オペレーターによって OBC がプロビジョンされると、バケットが MCG に作成され、オペレーターは、OBC と同じ名前で同じ名前空間内に SecretConfigMap を作成します。