10.5.2. Multicloud Object Gateway CLI 및 YAML을 사용하여 네임스페이스 버킷 추가

네임스페이스 버킷에 대한 자세한 내용은 네임스페이스 버킷 관리를 참조하십시오.

배포 유형 및 YAML 또는 Multicloud Object Gateway CLI를 사용할지 여부에 따라 다음 절차 중 하나를 선택하여 네임스페이스 버킷을 추가합니다.

10.5.2.1. 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>
    1. Base64를 사용하여 자체 AWS 액세스 키 ID 및 시크릿 액세스 키를 제공하고 <AWS ACCESS KEY ID ENCODED IN BASE64><AWS SECRET ACCESS KEY ENCODED IN BASE64> BASE64>의 결과를 사용해야 합니다.
    2. <namespacestore-secret-name> 을 고유한 이름으로 교체합니다.
  2. OpenShift CRD(Custom Resource Definitions)를 사용하여 NamespaceStore 리소스를 생성합니다. NamespaceStore는 MCG 네임 스페이스 버킷의 데이터에 대한 읽기 또는 쓰기 대상으로 사용할 기본 스토리지를 나타냅니다. 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
    1. <resource-name> 을 리소스에 지정할 이름으로 교체합니다.
    2. <namespacestore-secret-name> 을 1단계에서 생성된 보안으로 교체합니다.
    3. <namespace-secret> 을 보안을 찾을 수 있는 네임스페이스로 바꿉니다.
    4. <target-bucket> 을 NamespaceStore에 대해 생성한 대상 버킷으로 바꿉니다.
  3. 네임스페이스 버킷에 대한 네임스페이스 정책을 정의하는 네임스페이스 버킷 클래스를 생성합니다. 네임스페이스 정책에는 단일 또는 다중 유형의 유형이 필요합니다.

    • 유형 단일 의 네임스페이스 정책에는 다음 구성이 필요합니다.

      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> 를 네임 스페이스 버킷의 읽기 및 쓰기 대상을 정의하는 단일 네임스페이스 저장소의 이름으로 바꿉니다.
    • 유형 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>
      • <my-bucket-class> 를 고유한 버킷 클래스 이름으로 교체합니다.
      • <write-resource> 를 네임스페이스 버킷의 쓰기 대상을 정의하는 단일 네임스페이스 저장소의 이름으로 교체합니다.
      • <read-resources> 를 네임스페이스 버킷의 읽기 대상을 정의하는 namespace-stores 이름 목록으로 바꿉니다.
  4. 2단계에서 정의된 버킷 클래스를 사용하는 OBC(Object Bucket Class) 리소스를 사용하여 버킷을 생성하려면 다음 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>
    1. <resource-name> 을 리소스에 지정할 이름으로 교체합니다.
    2. <my-bucket> 을 버킷에 부여하려는 이름으로 교체합니다.
    3. <my-bucket-class> 를 이전 단계에서 만든 버킷 클래스로 바꿉니다.

Operator가 OBC를 프로비저닝하면 MCG에 버킷이 생성되고 Operator는 동일한 이름과 OBC의 동일한 네임스페이스에 Secret 및 ConfigMap을 생성합니다.