Satellite 클러스터용 IBM Cloud Object Storage 드라이버 구성

Satellite 클러스터에 IBM Cloud Object Storage 드라이버를 배포하여 IBM, AWS, Wasabi, Azure 등 여러 S3-compatible 클라우드 스토리지 공급자 전반에 걸쳐 데이터를 생성하고 액세스하는 방법을 알아보세요.

스토리지 템플릿을 해당 위치의 클러스터에 배포하려면 먼저 콘솔에서 Satellite 구성에 클러스터 관리자 액세스 사용 옵션을 선택하거나 클러스터를 만들 때 --enable-config-admin 옵션을 포함하여 Satellite 구성을 설정해야 합니다.

Satellite 스토리지 서비스의 범위를 리소스 그룹으로 지정할 수 없습니다. 그러나 위치 및 클러스터와 같은 다른 리소스의 범위를 리소스 그룹으로 지정하는 경우에는 Satellite 리더를 추가하고 계정의 모든 리소스에 대한 관리자 역할을 연결해야 합니다.

전제조건

  1. Satellite 위치를 작성하십시오.

  2. 오브젝트 스토리지 제공자에서 서비스 신임 정보 세트를 작성하십시오.

  3. s3 신임 정보를 포함하는 시크릿을 작성하십시오.

오브젝트 스토리지 신임 정보를 포함하는 클러스터에서 시크릿 작성

서비스 인증 정보를 포함하는 클러스터에서 Kubernetes 시크릿을 작성하십시오.

  1. 오브젝트 스토리지 제공자에 기반한 단계에 따라 클러스터에서 시크릿을 작성하십시오. 시크릿을 작성하는 경우 모든 값이 base64로 자동 인코딩됩니다. 다음 예시에서 비밀 이름은 cos-write-access 입니다.

    • IBM Cloud Object Storage

      1. 서비스 인스턴스 ID를 확인하세요.

        ibmcloud resource service-instance <service_name> | grep GUID
        
      2. 클러스터의 시크릿을 작성하십시오.

        oc create secret generic cos-write-access --type=ibm/ibmc-s3fs --from-literal=api-key=API-KEY --from-literal=service-instance-id=SERVICE-INSTANCE-ID
        
    • AWS 또는 Wasabi

        oc create secret generic cos-write-access --type=ibm/ibmc-s3fs --from-literal=access-key=ACCESS-KEY-ID --from-literal=secret-key=SECRET-ACCESS-KEY
        ```
    
    
    
    
    

콘솔에서 구성 작성 및 지정

  1. 매개변수 참조를 검토하십시오.

  2. ‘위치’ 콘솔에서 스토리지 구성을 생성할 위치를 선택합니다.

  3. 스토리지 > 스토리지 구성 작성을 선택하십시오.

  4. 구성의 이름을 입력하십시오.

  5. 저장소 유형 을 선택하십시오.

  6. 버전을 선택한 후 ‘다음’을 클릭하세요

  7. 선택한 스토리지 유형 이 사용자 정의 매개변수를 허용하는 경우 매개변수 탭에서 이를 입력하십시오.

  8. 선택한 스토리지 유형 에 시크릿이 필요한 경우 시크릿 탭에 시크릿을 입력하십시오.

  9. 스토리지 클래스 탭에서 구성에 의해 배치되는 스토리지 클래스를 검토하거나 사용자 정의 스토리지 클래스를 작성하십시오.

  10. 서비스에 지정 탭에서 구성을 지정할 서비스를 선택하십시오.

  11. 완료를 클릭하여 스토리지 구성을 지정하십시오.

CLI에서 구성 작성

  1. 사용할 템플리트 버전에 대한 매개변수 참조 를 검토하십시오.

  2. IBM Cloud에 로그인하십시오.

    ibmcloud login
    
  3. Satellite 위치를 나열하고 Managed from 열을 기록하십시오.

    ibmcloud sat location ls
    
  4. Satellite 위치의 Managed from 지역을 대상으로 지정하십시오. 예를 들어 wdc의 경우 us-east를 대상으로 지정하십시오. 자세한 정보는 Satellite 지역을 참조하십시오.

    ibmcloud target -r us-east
    
  5. default 이외의 리소스 그룹을 사용하는 경우 해당 그룹을 대상으로 지정하십시오.

    ibmcloud target -g RESOURCE_GROUP
    
  6. 사용할 템플리트 버전에 대해 다음 예제 명령 중 하나를 복사하십시오. 명령에 대한 자세한 정보는 명령 참조 에서 ibmcloud sat storage config create 의 내용을 참조하십시오.

    버전 2.2 구성을 작성하는 예제 명령입니다.

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name ibm-object-storage-plugin --template-version 2.2 --param "helm-release-name=HELM-RELEASE-NAME"  --param "parameters=PARAMETERS"  --param "license=LICENSE"  --param "s3provider=S3PROVIDER"  --param "cos-storageclass=COS-STORAGECLASS"  --param "cos-endpoint=COS-ENDPOINT"
    
  7. 사용하려는 설정에 따라 명령을 사용자 정의하십시오.

  8. 구성을 생성하려면 해당 명령을 실행하십시오.

  9. 설정이 정상적으로 생성되었는지 확인하십시오.

    ibmcloud sat storage config get --config CONFIG
    

API에서 구성 작성

  1. API키를 생성한 후 새로 고치기 토큰을 요청하십시오. 자세한 정보는 API 키를 사용하여 IBM Cloud IAM 토큰 생성을 참조하십시오.

  2. 사용할 템플리트 버전에 대한 매개변수 참조 를 검토하십시오.

  3. 다음 예제 요청 중 하나를 복사하고 사용할 변수를 대체하십시오.

    버전 2.2 구성을 작성하기 위한 요청의 예입니다.

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"ibm-object-storage-plugin\", \"storage-template-version\": \"2.2\", \"update-assignments\": true, \"user-config-parameters\": { \"entry.name\": \"HELM-RELEASE-NAME\", { \"entry.name\": \"PARAMETERS\", { \"entry.name\": \"LICENSE\", { \"entry.name\": \"S3PROVIDER\", { \"entry.name\": \"COS-STORAGECLASS\", { \"entry.name\": \"COS-ENDPOINT\",\"user-secret-parameters\": }
    

CLI에서 과제 생성하기

  1. 저장소 구성을 나열하고, 클러스터에 할당할 저장소 구성을 기록해 두십시오.

    ibmcloud sat storage config ls
    
  2. 저장을 할당하려는 클러스터, 클러스터 그룹 또는 서비스의 ID를 확인하십시오.

    클러스터가 Satellite Config에 등록되어 있는지 확인하거나 그룹을 작성하려면 Satellite Config와 사용할 클러스터 설정을 참조하십시오.

    클러스터 그룹을 나열하는 명령 예제입니다.

    ibmcloud sat group ls
    

    클러스터를 나열하는 명령 예제입니다.

    ibmcloud oc cluster ls --provider satellite
    

    Satellite 서비스를 나열하는 예제 명령입니다.

    ibmcloud sat service ls --location LOCATION
    
  3. 이전에 검색한 클러스터, 그룹 또는 서비스에 스토리지 구성을 지정하십시오. 자세한 정보는 ibmcloud sat storage assignment create 명령을 참조하십시오.

    클러스터 그룹에 구성을 지정하는 예제 명령입니다.

    ibmcloud sat storage assignment create --group GROUP --config CONFIG --name NAME
    

    클러스터에 구성을 지정하는 예제 명령입니다.

    ibmcloud sat storage assignment create --cluster CLUSTER --config CONFIG --name NAME
    

    서비스 클러스터에 구성을 지정하는 예제 명령입니다.

    ibmcloud sat storage assignment create --service-cluster-id CLUSTER --config CONFIG --name NAME
    
  4. 지정이 작성되었는지 확인하십시오.

    ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
    

API에서 스토리지 지정 작성

  1. 다음 예제 요청 중 하나를 복사하십시오.

    클러스터에 구성을 지정하기 위한 요청의 다른 연결입니다.

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignmentByCluster" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"CLUSTER-ID\", \"controller\": \"LOCATION-ID\", \"name\": \"ASSIGNMENT-NAME\"}"
    

    클러스터 그룹에 구성을 지정하기 위한 요청 예제.

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"string\", \"groups\": [ \"CLUSTER-GROUP\" ], \"name\": \"ASSIGNMENT-NAME\"}"
    
  2. 변수를 세부사항으로 대체하고 요청을 실행하십시오.

  3. 지정을 나열하여 지정이 작성되었는지 확인하십시오.

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignments" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    

콘솔에서 스토리지 지정 업데이트

Satellite 콘솔 을 사용하여 지정에 최신 패치 업데이트를 적용할 수 있습니다.

  1. Satellite 콘솔위치 페이지에서 위치를 선택하십시오.

  2. 스토리지 탭을 클릭하여 구성을 보십시오.

  3. 업데이트하려는 구성을 클릭하세요.

  4. 최신 개정판 또는 패치를 적용하려면 정보 정보 (i) 아이콘을 클릭하십시오.

  5. 선택사항: 스토리지 지정에 대해 자동 패치 업데이트를 사용으로 설정하십시오. 자동 패치 업데이트를 사용으로 설정하면 지정에 항상 최신 보안 수정사항이 포함됩니다.

자동 패치 업데이트를 사용하는 경우에도 주요 업데이트를 수동으로 적용해야 합니다.

CLI에서 수동으로 지정 업그레이드

최신 스토리지 템플리트 개정을 사용하도록 지정을 업그레이드하십시오.

  1. Satellite 스토리지 지정을 나열하고 업그레이드하려는 Satellite 지정을 기록해 두십시오.

    ibmcloud sat storage assignment ls
    
  2. Satellite 스토리지 템플리트를 나열하여 사용 가능한 최신 버전을 보십시오.

    ibmcloud sat storage template ls
    
  3. Satellite 지정을 업그레이드하십시오.

    지정을 업그레이드하는 예제 명령입니다.

    ibmcloud sat storage assignment upgrade --assignment ASSIGNMENT
    

CLI에서 구성 및 지정에 대한 자동 패치 업데이트 사용

sat storage assignment autopatch enable CLI를 사용하여 지정에 대한 자동 패치 업데이트를 사용으로 설정할 수 있습니다. 자동 패치 업데이트를 사용으로 설정하면 최신 스토리지 템플리트 개정 (패치) 이 자동으로 적용됩니다. 여전히 주요 업데이트를 수동으로 적용해야 합니다.

  1. Satellite 스토리지 구성을 나열합니다. 구성 ID를 기록해 두세요.

    ibmcloud sat storage assignment ls
    
  2. 다음 예제 명령 중 하나를 실행하여 구성 및 연관된 지정에 대한 자동 패치 업데이트를 사용으로 설정하십시오. 이전 단계에서 확인한 구성 ID를 입력하십시오.

    지정에 대한 자동 패치 업데이트를 사용으로 설정하는 예제 명령입니다.

    ibmcloud sat storage assignment autopatch enable --config CONFIG  (--all | --assignment ASSIGNMENT-ID [--assignment ASSIGNMENT-ID])
    

    지정된 구성에서 모든 스토리지 지정에 대한 자동 패치 업데이트를 사용으로 설정하는 예제 명령입니다.

    ibmcloud sat storage assignment autopatch enable --config CONFIG --all
    

    특정 구성에서 모든 지정에 대해 자동 패치 업데이트를 사용하지 않도록 설정하는 예제 명령입니다.

    ibmcloud sat storage assignment autopatch disable --config CONFIG --all
    

    단일 지정 및 특정 구성에 대한 자동 패치 업데이트를 사용 안함으로 설정하는 예제 명령입니다.

    ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-ID
    

    다중 지정 및 특정 구성에 대한 자동 패치 업데이트를 사용 안함으로 설정하는 예제 명령입니다.

    ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-ID --assignment ASSIGNMENT-ID
    

API에서 구성 및 지정 업그레이드

/v2/storage/satellite/updateAssignment API를 사용하여 새 클러스터 또는 클러스터 그룹으로 지정을 업데이트할 수 있습니다. 개정 업데이트를 적용하려면 updateConfigVersiontrue 로 설정하십시오.

  1. 다음 예제 요청을 복사하고 업데이트할 클러스터 그룹 및 지정의 변수를 대체하십시오.

    curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/updateAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"groups\": [ \"CLUSTER-GROUPS\" ], \"name\": \"ASSIGNMENT-NAME\", \"updateConfigVersion\": true, \"uuid\": \"ASSIGNMENT-ID\"}"
    
  2. 요청을 실행하십시오.

  3. 업데이트를 확인하기 위해 지정 세부사항을 가져오십시오.

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    

API에서 지정에 대한 자동 패치 업데이트 사용

/v2/storage/satellite/setAssignmentAutoupgrade API를 사용하여 지정에 대한 자동 패치 업데이트를 사용으로 설정할 수 있습니다. 자동 패치 업데이트를 사용으로 설정하면 최신 스토리지 템플리트 개정 (패치) 이 자동으로 적용됩니다. 여전히 주요 업데이트를 수동으로 적용해야 합니다.

  1. 다음 예제 요청을 복사하고 업데이트할 클러스터 그룹 및 지정의 변수를 대체하십시오.

    curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/setAssignmentAutoupgrade" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d { "config": "string", "controller": "string", "autopatch": boolean,"assignment" : { "all": boolean, "uuid": ["string", "string", ...], } }
    
  2. 요청을 실행하십시오.

  3. 지정 세부사항을 가져와서 업그레이드를 확인하십시오.

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    

다음 기능을 사용하는 앱을 배포하려면 IBM Cloud Object Storage

ibm-object-s3fs 드라이버를 사용하여 클러스터 워크로드에서 활용할 수 있는 PVC를 생성할 수 있습니다.

  1. 오브젝트 스토리지 구성을 참조하는 PVC를 작성하십시오.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: demo #Enter a name for your PVC.
      namespace: default
      annotations:
      ibm.io/auto-create-bucket: "false"
      ibm.io/auto-delete-bucket: "false"
      ibm.io/bucket: BUCKET-NAME #Enter the name of your object storage bucket.
      ibm.io/secret-name: SECRET-NAME #Enter the name of the secret you created earlier.
      ibm.io/secret-namespace: NAMESPACE #Enter the namespace where you want to create the PVC.
    spec:
        accessModes:
        - ReadWriteOnce
        resources:
            requests:
                storage: 10Gi
        storageClassName: ibmc-s3fs-cos #The storage class that you want to use.
    
  2. 클러스터에 PVC를 작성하십시오.

    oc apply -f pvc-cos.yaml
    
  3. 생성한 PVC를 마운트하는 파드를 위한 YAML 구성 파일을 생성합니다.

    apiVersion: v1
    kind: Pod
    metadata:
      name: demo-pod
      namespace: default
    spec:
      securityContext:
        runAsUser: 2000
        fsGroup: 2000
      volumes:
      - name: demo-vol
        persistentVolumeClaim:
            claimName: demo
      containers:
      - name: test
        image: nginxinc/nginx-unprivileged
        imagePullPolicy: Always
        volumeMounts:
        - name: demo-vol
          mountPath: /mnt/cosvol
    
  4. 클러스터에서 팟(Pod)을 작성하십시오.

    oc apply -f demo-pod.yaml
    
  5. 팟(Pod)이 배치되었는지 확인하십시오. 앱이 Running 상태가 되는 데 몇 분 정도 걸릴 수 있습니다.

    oc get pods
    
    NAME                                READY   STATUS    RESTARTS   AGE
    demo-pod                            1/1     Running   0          2m58s
    
  6. 팟(Pod)에 로그인하여 앱이 블록 스토리지 볼륨에 쓸 수 있는지 확인하십시오.

    oc exec demo-pod -- bash -c "touch /mnt/cosvol/test.txt && ls /mnt/cosvol" test.txt
    

콘솔을 사용하여 ‘ IBM Cloud Object Storage ’ 스토리지 구성을 제거하기

  1. Satellite 스토리지 대시보드에서 삭제할 스토리지 구성을 선택하십시오.
  2. 조치 > 삭제를 선택하십시오.
  3. 스토리지 구성의 이름을 입력하십시오.
  4. 삭제를 선택하십시오.

명령행을 사용하여 IBM Cloud Object Storage 스토리지 구성 제거

IBM Cloud Object Storage 구성이 더 이상 필요하지 않은 경우, 클러스터에서 앱, PVC, PV 및 할당을 제거할 수 있습니다.

  1. 스토리지 지정을 나열하고 클러스터에 사용한 지정을 찾으십시오.

    ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
    
  2. 지정을 제거하십시오. 지정이 제거되고 나면 드라이버 팟과 스토리지 클래스가 스토리지 지정의 일부인 모든 클러스터에서 제거됩니다.

    ibmcloud sat storage assignment rm --assignment <assignment_ID>
    
  3. 드라이버가 클러스터에서 제거되었는지 확인하십시오.

    1. 클러스터의 스토리지 클래스를 나열하고 스토리지 클래스가 제거되었는지 확인하십시오.
        oc get sc
        ```
    1. `kube-system` 네임스페이스에 있는 팟을 나열하고 스토리지 드라이버 팟이 제거되었는지 확인하십시오.
    
    ```sh {: pre}
        oc get pods -n kube-system | grep cos
        ```
    
  4. 선택사항: 스토리지 구성을 제거하십시오.

    1. 스토리지 구성을 나열하십시오.
        ibmcloud sat storage config ls
        ```
    1. 스토리지 구성을 제거하십시오.
    
    ```sh {: pre}
        ibmcloud sat storage config rm --config <config_name>
        ```
    
    

매개변수 참조

2.2 매개변수 참조

표 1. 2.2 매개변수 참조
표시 이름 CLI 옵션 유형 설명 기본값
릴리스 이름 helm-release-name Config Helm 차트 릴리스 이름. ibm-object-storage-plugin
Helm 차트 추가 매개변수 parameters Config Helm 차트 추가 매개변수. 해당사항 없음
Object Storage 플러그인 라이센스 license Config Object storage 플러그인 라이센스: Apache 라이센스 버전 2.0. 라이센스에 동의하고 플러그인을 설치하려면 'true'로 설정하십시오. 해당사항 없음
Object Storage 제공자 s3provider Config 사용 가능한 제공자는 'IBM', 'AWS' 및 'Wasabi'입니다. 이 이외의 제공자의 경우 'Object Storage 서비스 엔드포인트' 매개변수를 제공해야 합니다. 해당사항 없음
Object Storage 지역 cos-storageclass Config 오브젝트 스토리지가 있는 지역을 입력하십시오. IBM COS 지역의 경우 https://ibm.biz/cos-endpoints-list를 참조하십시오. Wasabi의 경우 https://ibm.biz/wasabi-endpoints를 참조하십시오. AWS의 경우 https://ibm.biz/aws-endpoints를 참조하십시오. 해당사항 없음
Object Storage 서비스 엔드포인트 cos-endpoint Config Object Storage 서비스 엔드포인트. IBM, AWS 또는 Wasabi 이외의 Object Storage 제공자를 사용하는 경우 필수입니다. 둘 다 설정되면 'Object Storage 제공자'에 환경 설정이 제공됩니다. 해당사항 없음

IBM Cloud Object Storage 에 대한 스토리지 클래스 참조

클라우드 오브젝트 스토리지 클래스 참조
스토리지 클래스 이름 볼륨 바인딩 모드 유지
ibm-s3fs-cos 즉시 거짓
ibm-s3fs-cos-perf 즉시 거짓

IBM Cloud Object Storage에 대한 도움 및 지원 받기

IBM Cloud Object Storage 을 사용하는 경우 지원 케이스를 열기 전에 다음 리소스를 사용해 보세요.

  1. Block Storage for VPC 문서 에서 FAQ를 검토하십시오.
  2. 문제점 해결 문서 를 검토하여 공통 문제를 해결하십시오.
  3. 상태 페이지로 이동하여 IBM Cloud 플랫폼 및 리소스의 상태를 확인하세요.
  4. 스택 오버플로우 를 검토하여 다른 사용자에게 동일한 문제점이 발생했는지 확인하십시오. ibm-cloudCOS 로 질문에 태그를 지정하십시오.
  5. Block Storage for VPC에 문제가 발생하는 경우 IBM Cloud® 지원을 사용하여 지원 요청을 제출하십시오.