IBM Cloud Object Storage 을 사용하는 앱에 대한 용량 할당량 설정
가상 프라이빗 클라우드 클래식 인프라
IBM Cloud Object Storage 을 사용하면 Red Hat OpenShift on IBM Cloud 클러스터에서 실행 중인 앱에 대한 버킷을 동적으로 프로비저닝할 수 있습니다. 프로비저닝 중에 해당 버킷에 대한 용량 할당량을 동적으로 설정할 수도 있습니다. 할당량은 워크로드가 사용하는 자원을 관리하는 동시에 불필요한 비용을 방지하는 데 도움이 될 수 있습니다.
목표
이 튜토리얼에서는 클러스터에 Object Storage 플러그인을 설치하고 플러그인으로 작성된 지속적 볼륨 청구 (PVC) 에 대한 할당량을 사용으로 설정합니다.
그런 다음 Object Storage 인스턴스에서 할당량 한계가 있는 버킷을 동적으로 작성하는 PVC를 작성합니다.
그런 다음 파일을 버킷에 업로드하고 버킷을 마운트하고 해당 파일의 컨텐츠를 인쇄하는 클러스터에 단순 앱을 배치합니다.
전제조건
이 튜토리얼을 시작하기 전에 다음 리소스와 도구를 만들었거나 설치했는지 확인하세요.
- IBM Cloud 계정 자세한 정보는 계정 작성 을 참조하십시오.
- IBM Cloud CLI, 컨테이너 서비스 CLI 플러그인 및 Helm CLI를 포함하는 CLI 도구. 자세한 정보는 IBM Cloud CLI 시작하기를 참조하십시오.
- Red Hat OpenShift on IBM Cloud 클러스터. VPC 클러스터가 있는 경우 VPC에 공용 게이트웨이가 연결되어 있는지 확인하세요. 자세한 정보는 클러스터 작성 을 참조하십시오.
- 클러스터와 동일한 지역에 있는 Object Storage 인스턴스입니다. 자세한 정보는 Object Storage의 인스턴스 프로비저닝 을 참조하십시오.
서비스 자격 증명 집합 만들기
-
단계에 따라 HMAC Object Storage 인스턴스에 대한 서비스 인증 정보 세트를 작성하십시오. 버킷을 작성하려면 사용자가 작성하는 신임 정보에 관리자 역할이 있어야 합니다.
-
HMAC 서비스 신임 정보 세트를 작성한 후 신임 정보의 세부사항을 검토하고
apikey,access_key_id및secret_access_key를 기록해 두십시오. 다음 단계를 위해 이 값을 저장하십시오.
자격 증명을 저장하기 위한 비밀 만들기
- 서비스 인증 정보에서
apikey,access_key_id및secret_access_key를 사용하여 시크릿을 작성하십시오.출력 예oc create secret generic my-cos-secret --type=ibm/ibmc-s3fs --from-literal=access-key=ACCESS-KEY --from-literal=secret-key=SECRET-KEY --from-literal=res-conf-apikey=API-KEYsecret/my-cos-secret created - 비밀 번호가 생성되었는지 확인합니다.
출력 예oc get secrets | grep my-cosmy-cos-secret ibm/ibmc-s3fs 3 11m
플러그인 설치
클러스터에 플러그인을 설치할 때 --set quotaLimit=true 옵션을 지정해야 합니다. 이 옵션을 지정하면 PVC로 작성하는 모든 버킷에 PVC의 스토리지 크기와 동일한 할당량 한계가 있음을 의미합니다.
-
단계에 따라 플러그인을 설치하고 할당량 한계를 사용으로 설정 하십시오. 클러스터에 플러그인을 이미 설치한 경우 이 단계를 건너뛸 수 있습니다. 플러그인이 이미 설치되어 있는지 확인하려면 다음 단계를 수행하십시오.
-
드라이버 팟 (Pod) 을 나열하여 플러그인이 설치되었는지 확인하십시오.
oc get pods -n ibm-object-s3fs | grep object출력 예
ibmcloud-object-storage-driver-k9x4l 1/1 Running 0 6m52s ibmcloud-object-storage-driver-kj9m6 1/1 Running 0 6m52s ibmcloud-object-storage-driver-l8gqk 1/1 Running 0 6m52s ibmcloud-object-storage-plugin-576fb8bd7-sxlkb 1/1 Running 0 6m52s
할당량을 사용하여 동적으로 버킷 프로비저닝
PVC를 작성할 때 동적 프로비저닝을 사용하여 Object Storage 버킷을 자동으로 작성할 수 있습니다.
-
다음 PVC 구성을 복사하여
pvc.yaml라는 파일에 저장하십시오. 이 예제 PVC는 할당량이20Gi인 버킷을 자동으로 작성합니다.kind: PersistentVolumeClaim apiVersion: v1 metadata: name: my-cos-pvc namespace: default annotations: ibm.io/auto-create-bucket: "true" ibm.io/auto-delete-bucket: "true" ibm.io/secret-name: "my-cos-secret" ibm.io/quota-limit: "true" spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi storageClassName: ibmc-s3fs-standard-cross-region -
클러스터에 PVC를 작성하십시오.
oc apply -f pvc.yaml출력 예
persistentvolumeclaim/my-cos-pvc created -
PVC를 나열하고
my-cos-pvc가Bound상태인지 확인하십시오.NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE my-cos-pvc Bound pvc-64a4e0c9-b5ec-40e3-8b7e-77ff47ae6c5e 20Gi RWO ibmc-s3fs-standard-cross-region 6s -
콘솔에서 Object Storage 인스턴스를 탐색하고 버킷 탭을 클릭하십시오.
-
자동으로 작성된 버킷의 세부사항을 검토하십시오. 버킷 이름의 형식은
tmp-s3fs-XXXX입니다. -
tmp-s3fs-XXXX버킷을 클릭한 후 구성 탭을 클릭하십시오. -
구성 페이지에서 할당량 적용 섹션을 찾으십시오. PVC에서 지정한 크기와 동일한 할당량으로 버킷이 자동으로 작성되었습니다. 이 예제에서 값은
20Gi입니다.
버킷에 파일 업로드
-
다음 파드 구성을
pod.yaml라는 파일에 저장합니다.apiVersion: v1 kind: Pod metadata: name: cat-test-file spec: containers: - name: app image: nginx volumeMounts: - name: my-vol mountPath: "/mnt" command: ["/bin/sh"] args: ["-c", "cat mnt/pod.yaml && sleep 5 && exit"] volumes: - name: my-vol persistentVolumeClaim: claimName: my-cos-pvc -
콘솔에서 Object Storage 인스턴스를 탐색하고 버킷 탭을 클릭하십시오.
-
tmp-s3fs-XXXX버킷을 클릭한 후 업로드를 클릭하십시오. -
이전에 저장한
pod.yaml파일을 업로드하십시오.
버킷을 마운트하는 앱 작성
- 다음 팟 (Pod) 구성을 복사하고 이를
pod.yaml파일에 저장하십시오. 이 예제 팟 (Pod) 은my-cos-pvcPVC에서 작성된 버킷을 마운트하고 이전에 업로드한pod.yaml파일의 컨텐츠를 인쇄합니다.apiVersion: v1 kind: Pod metadata: name: cat-test-file spec: containers: - name: app image: nginx volumeMounts: - name: my-vol mountPath: "/mnt" command: ["/bin/sh"] args: ["-c", "cat mnt/pod.yaml && sleep 5 && exit"] volumes: - name: my-vol persistentVolumeClaim: claimName: my-cos-pvc - 클러스터에서 팟(Pod)을 작성하십시오.
출력 예oc apply -f pod.yamlpod/cat-test-file created cat-test-file팟 (Pod) 의 로그를 가져오십시오. 이 예제에서 로그에는 이전에 업로드한pod.yaml파일의 인쇄된 컨텐츠가 포함되어 있습니다.apiVersion: v1 kind: Pod metadata: name: cat-test-file spec: containers: - name: app image: nginx volumeMounts: - name: my-vol mountPath: "/mnt" command: ["/bin/sh"] args: ["-c", "cat mnt/pod.yaml && sleep 5 && exit"] volumes: - name: my-vol persistentVolumeClaim: claimName: my-cos-pvc
검토
이 학습서에서는 클러스터에 Object Storage 플러그인을 설치하고 플러그인으로 작성된 PVC에 대한 할당량을 사용으로 설정했습니다. 그런 다음 Object Storage 인스턴스에서 할당량 한계가 있는 버킷을 동적으로 작성한 PVC를 작성했습니다. 그런 다음 버킷에 있는 파일의 컨텐츠를 인쇄하는 단순 앱을 배치했습니다.
다음 단계
- 버킷을 가리키도록 Object Storage CLI 를 설정하십시오.
- Object Storage SDK를 사용하여 앱에 스토리지를 추가 하십시오.