9.8. 개체 버킷 클레임
개체 버킷 클레임은 워크로드에 대해 S3 호환 버킷 백엔드를 요청하는 데 사용할 수 있습니다.
다음 세 가지 방법으로 오브젝트 버킷 클레임을 생성할 수 있습니다.
개체 버킷 클레임은 새 액세스 키 및 시크릿 액세스 키를 포함하여 버킷에 대한 권한이 있는 NooBaa에 새 버킷 및 애플리케이션 계정을 생성합니다. 애플리케이션 계정은 단일 버킷에만 액세스할 수 있으며 기본적으로 새 버킷을 생성할 수 없습니다.
9.8.1. 동적 개체 버킷 클레임
영구 볼륨과 유사하게 애플리케이션의 YAML에 오브젝트 버킷 클레임의 세부 정보를 추가하고, 오브젝트 서비스 엔드포인트, 액세스 키 및 구성 맵 및 시크릿에서 사용할 수 있는 시크릿 액세스 키를 가져올 수 있습니다. 이 정보를 애플리케이션의 환경 변수로 동적으로 읽기가 쉽습니다.
절차
애플리케이션 YAML에 다음 행을 추가합니다.
apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: <obc-name> spec: generateBucketName: <obc-bucket-name> storageClassName: openshift-storage.noobaa.io
이러한 행은 개체 버킷 클레임 자체입니다.
-
<obc-name>
을 고유한 개체 버킷 클레임 이름으로 바꿉니다. -
<obc-bucket-name>
을 개체 버킷 클레임의 고유한 버킷 이름으로 바꿉니다.
-
YAML 파일에 더 많은 줄을 추가하여 개체 버킷 클레임의 사용을 자동화할 수 있습니다. 아래 예제는 데이터를 사용한 구성 맵과 인증 정보가 있는 시크릿인 버킷 클레임 결과 간의 매핑입니다. 이 특정 작업은 NooBaa의 개체 버킷을 클레임하여 버킷과 계정을 만듭니다.
apiVersion: batch/v1 kind: Job metadata: name: testjob spec: template: spec: restartPolicy: OnFailure containers: - image: <your application image> name: test env: - name: BUCKET_NAME valueFrom: configMapKeyRef: name: <obc-name> key: BUCKET_NAME - name: BUCKET_HOST valueFrom: configMapKeyRef: name: <obc-name> key: BUCKET_HOST - name: BUCKET_PORT valueFrom: configMapKeyRef: name: <obc-name> key: BUCKET_PORT - name: AWS_ACCESS_KEY_ID valueFrom: secretKeyRef: name: <obc-name> key: AWS_ACCESS_KEY_ID - name: AWS_SECRET_ACCESS_KEY valueFrom: secretKeyRef: name: <obc-name> key: AWS_SECRET_ACCESS_KEY
- <obc-name>의 모든 인스턴스를 오브젝트 버킷 클레임 이름으로 바꿉니다.
- <your 애플리케이션 이미지>를 애플리케이션 이미지로 바꿉니다.
업데이트된 YAML 파일을 적용합니다.
# oc apply -f <yaml.file>
-
<yaml.file>
을 YAML 파일의 이름으로 바꿉니다.
-
새 구성 맵을 보려면 다음을 실행합니다.
# oc get cm <obc-name>
obc-name
을 개체 버킷 클레임의 이름으로 바꿉니다.출력에 다음 환경 변수가 있을 수 있습니다.
-
BUCKET_HOST
- 애플리케이션에서 사용할 엔드 포인트 BUCKET_PORT
- 애플리케이션에 사용할 수 있는 포트-
포트는
BUCKET_HOST
와 관련이 있습니다. 예를 들어BUCKET_HOST
가 https://my.example.com 이고BUCKET_PORT
가 443이면 개체 서비스의 엔드포인트는 https://my.example.com:443 입니다.
-
포트는
-
BUCKET_NAME
- 요청되거나 생성된 버킷 이름 -
AWS_ACCESS_KEY_ID
- 인증 정보의 일부인 액세스 키 -
AWS_SECRET_ACCESS_KEY
- 인증 정보의 일부인 비밀 액세스 키
-
AWS_ACCESS_KEY_ID
및 AWS_SECRET_ACCESS_KEY
를 검색합니다. 이름은 AWS S3 API와 호환되도록 사용됩니다. 특히 MCG(Multicloud Object Gateway) 버킷에서 S3 작업을 수행하는 동안 키를 지정해야 합니다. 키는 Base64로 인코딩됩니다. 키를 사용하기 전에 디코딩합니다.
# oc get secret <obc_name> -o yaml
<obc_name>
- 오브젝트 버킷 클레임의 이름을 지정합니다.