10장. 오브젝트 버킷에 대한 캐싱 정책

캐시 버킷은 허브 대상과 캐시 대상이 있는 네임스페이스 버킷입니다. hub 대상은 S3 호환 큰 오브젝트 스토리지 버킷입니다. 캐시 버킷은 MCG(Local Multicloud Object Gateway) 버킷입니다. AWS 버킷 또는 IBM COS 버킷을 캐시하는 캐시 버킷을 생성할 수 있습니다.

10.1. AWS 캐시 버킷 생성

사전 요구 사항

  • MCG(Multicloud Object Gateway) 명령줄 인터페이스를 다운로드합니다.

    # subscription-manager repos --enable=rh-odf-4-for-rhel-8-x86_64-rpms
    # yum install mcg
    참고

    서브스크립션 관리자를 사용하여 리포지토리를 활성화하기 위해 적절한 아키텍처를 지정합니다. IBM Z 인프라의 경우 다음 명령을 사용합니다.

    # subscription-manager repos --enable=rh-odf-4-for-rhel-8-s390x-rpms

    또는 https://access.redhat.com/downloads/content/547/ver=4/rhel---8/4/x86_64/package 에 있는 OpenShift Data Foundation RPM에서 MCG 패키지를 설치할 수 있습니다.

    참고

    아키텍처에 따라 올바른 제품 변형을 선택합니다.

절차

  1. NamespaceStore 리소스를 생성합니다. NamespaceStore는 MCG 네임 스페이스 버킷의 데이터에 대한 읽기 또는 쓰기 대상으로 사용할 기본 스토리지를 나타냅니다. MCG 명령줄 인터페이스에서 다음 명령을 실행합니다.

    noobaa namespacestore create aws-s3 <namespacestore> --access-key <AWS ACCESS KEY> --secret-key <AWS SECRET ACCESS KEY> --target-bucket <bucket-name>
    1. <namespacestore> 를 namespacestore의 이름으로 바꿉니다.
    2. <AWS ACCESS KEY><AWS SECRET ACCESS KEY> 를 이를 위해 생성한 AWS 액세스 키 ID 및 시크릿 액세스 키로 바꿉니다.
    3. <bucket-name> 을 기존 AWS 버킷 이름으로 교체합니다. 이 인수는 MCG에 백업 저장소에 대한 대상 버킷으로 사용할 버킷을 알려주고 그 이후 데이터 스토리지 및 관리에 사용할 버킷을 알려줍니다.

      YAML을 적용하여 스토리지 리소스를 추가할 수도 있습니다. 먼저 인증 정보를 사용하여 보안을 생성합니다.

      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> BASE64>의 결과를 사용해야 합니다.

      <namespacestore-secret-name> 을 고유한 이름으로 교체합니다.

      다음 YAML을 적용합니다.

      apiVersion: noobaa.io/v1alpha1
      kind: NamespaceStore
      metadata:
        finalizers:
        - noobaa.io/finalizer
        labels:
          app: noobaa
        name: <namespacestore>
        namespace: openshift-storage
      spec:
        awsS3:
          secret:
            name: <namespacestore-secret-name>
            namespace: <namespace-secret>
          targetBucket: <target-bucket>
        type: aws-s3
    4. <namespacestore> 를 고유한 이름으로 교체합니다.
    5. <namespacestore-secret-name> 을 이전 단계에서 생성한 보안으로 교체합니다.
    6. <namespace-secret> 을 이전 단계에서 보안을 생성하는 데 사용되는 네임스페이스로 교체합니다.
    7. <target-bucket> 을 namespacestore에 대해 생성한 AWS S3 버킷으로 바꿉니다.
  2. 다음 명령을 실행하여 버킷 클래스를 생성합니다.

    noobaa bucketclass create namespace-bucketclass cache <my-cache-bucket-class> --backingstores <backing-store> --hub-resource <namespacestore>
    1. <my-cache-bucket-class> 를 고유한 버킷 클래스 이름으로 교체합니다.
    2. <backing-store> 를 관련 백업 저장소로 바꿉니다. 이 필드에서 쉼표로 구분된 백업 저장소를 하나 이상 나열할 수 있습니다.
    3. <namespacestore> 를 이전 단계에서 생성한 namespacestore로 바꿉니다.
  3. 다음 명령을 실행하여 2단계에서 정의된 버킷 클래스를 사용하는 OBC(오브젝트 버킷 클레임) 리소스를 사용하여 버킷을 생성합니다.

    noobaa obc create <my-bucket-claim> my-app --bucketclass <custom-bucket-class>
    1. <my-bucket-claim> 을 고유 이름으로 교체합니다.
    2. <custom-bucket-class> 를 2단계에서 생성된 버킷 클래스의 이름으로 바꿉니다.