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

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

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

10.5.5.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> 대신 결과를 사용해야 합니다. ii. <namespacestore-secret-name> 을 고유한 이름으로 바꿉니다.
  2. OpenShift CRD(Custom Resource Definitions)를 사용하여 네임스페이스 저장소 리소스를 생성합니다. 네임 스페이스 저장소는 Multicloud Object Gateway 네임 스페이스 버킷의 데이터에 대한 읽기 또는 쓰기 대상으로 사용할 기본 스토리지를 나타냅니다. 네임스페이스 저장소 리소스를 생성하려면 다음 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> 을 네임 스페이스 저장소에 대해 생성한 대상 버킷으로 바꿉니다.
  3. 네임스페이스 버킷에 대한 네임스페이스 정책을 정의하는 네임스페이스 버킷 클래스를 생성합니다. 네임스페이스 정책에는 단일 또는 multi 의 유형이 필요합니다.

    • type single 의 네임스페이스 정책에는 다음과 같은 구성이 필요합니다.

      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> 를 네임 스페이스 버킷의 읽기 및 쓰기 대상을 정의할 단일 네임 스페이스 저장소의 이름으로 교체합니다.

    • type 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. 다음 YAML을 적용하여 2단계에 정의된 버킷 클래스를 사용하는 OBC(개체 버킷 클래스) 리소스를 사용하여 버킷을 생성합니다.

    apiVersion: objectbucket.io/v1alpha1
    kind: ObjectBucketClaim
    metadata:
      name: <resource-name>
      namespace: openshift-storage
    spec:
      generateBucketName: <my-bucket>
      storageClassName: noobaa.noobaa.io
      additionalConfig:
        bucketclass: <my-bucket-class>
    참고

    IBM Power Systems 및 IBM Z 인프라의 경우 openshift-storage.noobaa.io로 use storageClassName

    1. <my-bucket-class> 를 이전 단계에서 생성한 버킷 클래스로 바꿉니다.

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