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의 인스턴스 프로비저닝 을 참조하십시오.

서비스 자격 증명 집합 만들기

  1. 단계에 따라 HMAC Object Storage 인스턴스에 대한 서비스 인증 정보 세트를 작성하십시오. 버킷을 작성하려면 사용자가 작성하는 신임 정보에 관리자 역할이 있어야 합니다.

  2. HMAC 서비스 신임 정보 세트를 작성한 후 신임 정보의 세부사항을 검토하고 apikey, access_key_idsecret_access_key 를 기록해 두십시오. 다음 단계를 위해 이 값을 저장하십시오.

자격 증명을 저장하기 위한 비밀 만들기

  1. 서비스 인증 정보에서 apikey, access_key_idsecret_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-KEY
    
    출력 예
    secret/my-cos-secret created
    
  2. 비밀 번호가 생성되었는지 확인합니다.
    oc get secrets | grep my-cos
    
    출력 예
    my-cos-secret              ibm/ibmc-s3fs                         3      11m
    

플러그인 설치

클러스터에 플러그인을 설치할 때 --set quotaLimit=true 옵션을 지정해야 합니다. 이 옵션을 지정하면 PVC로 작성하는 모든 버킷에 PVC의 스토리지 크기와 동일한 할당량 한계가 있음을 의미합니다.

  1. 단계에 따라 플러그인을 설치하고 할당량 한계를 사용으로 설정 하십시오. 클러스터에 플러그인을 이미 설치한 경우 이 단계를 건너뛸 수 있습니다. 플러그인이 이미 설치되어 있는지 확인하려면 다음 단계를 수행하십시오.

  2. 드라이버 팟 (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 버킷을 자동으로 작성할 수 있습니다.

  1. 다음 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
    
  2. 클러스터에 PVC를 작성하십시오.

    oc apply -f pvc.yaml
    

    출력 예

    persistentvolumeclaim/my-cos-pvc created
    
  3. PVC를 나열하고 my-cos-pvcBound 상태인지 확인하십시오.

    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
    
  4. 콘솔에서 Object Storage 인스턴스를 탐색하고 버킷 탭을 클릭하십시오.

  5. 자동으로 작성된 버킷의 세부사항을 검토하십시오. 버킷 이름의 형식은 tmp-s3fs-XXXX 입니다.

  6. tmp-s3fs-XXXX 버킷을 클릭한 후 구성 탭을 클릭하십시오.

  7. 구성 페이지에서 할당량 적용 섹션을 찾으십시오. PVC에서 지정한 크기와 동일한 할당량으로 버킷이 자동으로 작성되었습니다. 이 예제에서 값은 20Gi 입니다.

버킷에 파일 업로드

  1. 다음 파드 구성을 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
    
  2. 콘솔에서 Object Storage 인스턴스를 탐색하고 버킷 탭을 클릭하십시오.

  3. tmp-s3fs-XXXX 버킷을 클릭한 후 업로드를 클릭하십시오.

  4. 이전에 저장한 pod.yaml 파일을 업로드하십시오.

버킷을 마운트하는 앱 작성

  1. 다음 팟 (Pod) 구성을 복사하고 이를 pod.yaml 파일에 저장하십시오. 이 예제 팟 (Pod) 은 my-cos-pvc PVC에서 작성된 버킷을 마운트하고 이전에 업로드한 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
    
  2. 클러스터에서 팟(Pod)을 작성하십시오.
    oc apply -f pod.yaml
    
    출력 예
    pod/cat-test-file created
    
  3. 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를 작성했습니다. 그런 다음 버킷에 있는 파일의 컨텐츠를 인쇄하는 단순 앱을 배치했습니다.

다음 단계