10.8. 개체 버킷 클레임
개체 버킷 클레임은 워크로드에 대해 S3 호환 버킷 백엔드를 요청하는 데 사용할 수 있습니다.
다음 세 가지 방법으로 오브젝트 버킷 클레임을 생성할 수 있습니다.
개체 버킷 클레임은 새 액세스 키 및 시크릿 액세스 키를 포함하여 버킷에 대한 권한이 있는 NooBaa에 새 버킷 및 애플리케이션 계정을 생성합니다. 애플리케이션 계정은 단일 버킷에만 액세스할 수 있으며 기본적으로 새 버킷을 생성할 수 없습니다.
10.8.1. 동적 개체 버킷 클레임 링크 복사링크가 클립보드에 복사되었습니다!
영구 볼륨과 유사하게 애플리케이션의 YAML에 개체 버킷 클레임(OBC)의 세부 정보를 추가하고, 오브젝트 서비스 엔드포인트, 액세스 키 및 시크릿에서 사용 가능한 시크릿 액세스 키를 가져올 수 있습니다. 이 정보를 애플리케이션의 환경 변수로 동적으로 읽기가 쉽습니다.
Multicloud Object Gateway 끝점은 OpenShift에서 자체 서명된 인증서를 사용하는 경우에만 자체 서명 인증서를 사용합니다. OpenShift에서 서명된 인증서를 사용하면 Multicloud Object Gateway 엔드포인트 인증서를 서명된 인증서로 자동 대체합니다. 브라우저를 통해 끝점에 액세스하여 Multicloud Object Gateway에서 현재 사용하는 인증서를 가져옵니다. 자세한 내용은 애플리케이션을 사용하여 Multicloud Object Gateway 액세스를 참조하십시오.
절차
애플리케이션 YAML에 다음 행을 추가합니다.
apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: <obc-name> spec: generateBucketName: <obc-bucket-name> storageClassName: openshift-storage.noobaa.io이 행은 OBC 자체입니다.
-
<obc-name>을 고유한 OBC 이름으로 바꿉니다. -
<obc-bucket-name>을 OBC의 고유한 버킷 이름으로 바꿉니다.
-
YAML 파일에 더 많은 줄을 추가하여 OBC 사용을 자동화할 수 있습니다. 아래 예제는 데이터를 사용한 구성 맵과 인증 정보가 있는 시크릿인 버킷 클레임 결과 간의 매핑입니다. 이 특정 작업은 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>의 모든 인스턴스를 OBC 이름으로 바꿉니다. -
<your 애플리케이션 이미지>를 애플리케이션 이미지로 바꿉니다.
-
업데이트된 YAML 파일을 적용합니다.
# oc apply -f <yaml.file><yaml.file>을 YAML 파일의 이름으로 바꿉니다.새 구성 맵을 보려면 다음을 실행합니다.
# oc get cm <obc-name> -o yamlobc-name을 OBC 이름으로 바꿉니다.출력에 다음 환경 변수가 있을 수 있습니다.
-
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>- 오브젝트 버킷 클레임의 이름을 지정합니다.