IBM Cloud 스토리지 유틸리티

이 주제에서는 IBM Cloud Kubernetes Service 클러스터에서 포맷되지 않은 원시 블록 스토리지를 관리하기 위한 유틸리티에 대해 설명합니다. 유틸리티와 절차는 클러스터 인프라 유형에 따라 다릅니다.

클래식 클러스터
IBM Cloud Block Storage 어태치터 플러그인을 사용하여 클래식 워커 노드에 원시 블록 스토리지를 연결하세요.
VPC 클러스터
IBM Cloud API 또는 CLI를 사용하여 Block Storage for VPC 원시 파일을 VPC 워커 노드에 연결합니다. VPC 워커 노드에 원시 Block Storage for VPC 추가하기를 참조하세요.

클래식: IBM Cloud Block Storage Attacher 플러그인(베타) 설치

IBM Cloud Block Storage Attacher 플러그인을 사용하여 클러스터의 클래식 작업자 노드에 포맷되지 않은 그리고 마운트 해제된 원지 블록 스토리지를 연결합니다.

예를 들어, 다음과 같은 소프트웨어 정의 스토리지(SDS) 솔루션을 사용하여 데이터를 저장하려면 Portworx 와 같은 소프트웨어 정의 스토리지(SDS) 솔루션에 데이터를 저장할 때, SDS 사용에 최적화되어 있고 추가 로컬 디스크가 장착된 기존의 베어 메탈 워커 노드를 사용하지 않고도 가능합니다. 클래식 비 SDS 작업자 노드에 로컬 디스크를 추가하려면 블록 스토리지 디바이스를 IBM Cloud 인프라 계정에 수동으로 작성하고 IBM Cloud Block Volume Attacher를 사용하여 스토리지를 비 SDS 작업자 노드에 연결해야 합니다.

IBM Cloud Block Volume Attacher 플러그인은 디먼 세트의 일부로 클러스터의 모든 작업자 노드에 팟(Pod)을 작성하고 나중에 블록 스토리지 디바이스를 비 SDS 작업자 노드에 연결하는 데 사용할 Kubernetes 스토리지 클래스를 설정합니다.

IBM Cloud 블록 볼륨 어태치터 플러그인 업데이트 또는 제거에 대한 지침은 플러그인 업데이트플러그인 제거하기를 참조하세요.

  1. 지시사항에 따라 로컬 머신에 Helm 클라이언트 버전 3을 설치하십시오.

  2. Helm 저장소를 업데이트하여 이 저장소에 있는 모든 Helm 차트의 최신 버전을 검색하십시오.

    helm repo update
    
  3. IBM Cloud Block Volume Attacher 플러그인을 설치하십시오. 플러그인을 설치하면 사전 정의된 블록 스토리지 클래스가 클러스터에 추가됩니다.

    helm install block-attacher iks-charts/ibm-block-storage-attacher --namespace kube-system
    

    출력 예

    NAME:   block-volume-attacher
    LAST DEPLOYED: Thu Sep 13 22:48:18 2018
    NAMESPACE: default
    STATUS: DEPLOYED
    RESOURCES:
    ==> v1beta1/ClusterRoleBinding
    NAME                             AGE
    ibmcloud-block-storage-attacher  1s
    ==> v1beta1/DaemonSet
    NAME                             DESIRED  CURRENT  READY  UP-TO-DATE  AVAILABLE  NODE SELECTOR  AGE
    ibmcloud-block-storage-attacher  0        0        0      0           0          <none>         1s
    ==> v1/StorageClass
    NAME                 PROVISIONER                AGE
    ibmc-block-attacher  ibm.io/ibmc-blockattacher  1s
    ==> v1/ServiceAccount
    NAME                             SECRETS  AGE
    ibmcloud-block-storage-attacher  1        1s
    ==> v1beta1/ClusterRole
    NAME                             AGE
    ibmcloud-block-storage-attacher  1s
    NOTES:
    Thank you for installing: ibmcloud-block-storage-attacher.   Your release is named: block-volume-attacher
    Please refer Chart README.md file for attaching a block storage
    Please refer Chart RELEASE.md to see the release details/fixes
    
  4. IBM Cloud Block Volume Attacher 디먼 세트가 설치되었는지 확인하십시오.

    oc get pod -n kube-system -o wide | grep attacher
    

    출력 예

    ibmcloud-block-storage-attacher-z7cv6           1/1       Running            0          19m
    

    하나 이상의 ibmcloud-block-storage-attacher 팟(Pod)이 나타나면 설치가 완료된 것입니다. 팟(Pod)의 수는 클러스터의 작업자 노드 수와 동일합니다. 모든 팟(Pod)이 실행 중(Running) 상태여야 합니다.

  5. IBM Cloud Block Volume Attacher에 대한 스토리지 클래스가 작성되었는지 확인하십시오.

    oc get sc | grep attacher
    

    출력 예

    ibmc-block-attacher       ibm.io/ibmc-blockattacher   11m
    

IBM Cloud Block Storage Attacher 플러그인 업데이트

기존 IBM Cloud Block Storage Attacher 플러그인을 최신 버전으로 업그레이드할 수 있습니다.

  1. Helm 저장소를 업데이트하여 이 저장소에 있는 모든 Helm 차트의 최신 버전을 검색하십시오.

    helm repo update
    
  2. 선택사항: 최신 Helm 차트를 로컬 머신에 다운로드하십시오. 그런 다음, 패키지의 압축을 풀고 release.md 파일을 검토하여 최신 릴리스 정보를 찾으십시오.

    helm pull iks-charts/ibmcloud-block-storage-plugin
    
  3. IBM Cloud Block Storage Attacher 플러그인에 대한 Helm 차트의 이름을 찾으십시오.

    helm ls -A
    

    출력 예

    <helm_chart_name>    1           Wed Aug  1 14:55:15 2022    DEPLOYED    ibm-block-storage-attacher-1.0.0    default
    
  4. IBM Cloud Block Storage Attacher를 최신 버전으로 업그레이드하십시오.

    helm upgrade --force --recreate-pods <helm_chart_name> ibm-block-storage-attacher
    

IBM Cloud Block Volume Attacher 플러그인 제거

클러스터에서 IBM Cloud Block Storage Attacher 플러그인을 프로비저닝하고 사용하지 않으려면 Helm 차트를 설치 제거할 수 있습니다.

  1. IBM Cloud Block Storage Attacher 플러그인에 대한 Helm 차트의 이름을 찾으십시오.

    helm list | grep ibm-block-storage-attacher
    

    출력 예

    <helm_chart_name>    1           Wed Aug  1 14:55:15 2022    DEPLOYED    ibm-block-storage-attacher-1.0.0    default
    
  2. Helm 차트를 제거하여 IBM Cloud Block Storage Attacher 플러그인을 삭제하십시오.

    helm uninstall <helm_chart_name> -n <namespace>
    
  3. IBM Cloud Block Storage Attacher 팟(Pod)이 제거되었는지 확인하십시오.

    oc get pod -n kube-system -o wide | grep attacher
    

    CLI 출력에 팟(Pod)이 표시되지 않으면 팟(Pod) 제거가 성공한 것입니다.

  4. IBM Cloud Block Storage Attacher 스토리지 클래스가 제거되었는지 확인하십시오.

    oc get sc | grep attacher
    

CLI 출력에 스토리지 클래스가 표시되지 않으면 스토리지 클래스 제거가 성공한 것입니다.

클래식: 특정 작업자 노드에 블록 스토리지 수동 추가

이 옵션을 사용하면 다양한 블록 스토리지 구성을 추가하거나, 일부 워커 노드에만 블록 스토리지를 추가하거나, 프로비저닝 과정을 보다 세밀하게 제어할 수 있습니다.

  1. 클러스터에 있는 워커 노드를 나열하고, 블록 스토리지 장치를 추가할 비-SDS 워커 노드의 사설 IP 주소와 영역을 기록해 두십시오.

    ibmcloud oc worker ls --cluster CLUSTER_NAME_OR_ID
    
  2. “블록 스토리지 구성 결정” 섹션의 3단계와 4단계를 검토하여, 비-SDS 워커 노드에 추가할 블록 스토리지 장치의 유형, 용량 및 IOPS 수를 선택하십시오.

  3. 비 SDS 작업자 노드가 있는 동일한 구역에 블록 스토리지 디바이스를 작성하십시오.

    GB당 2 IOPS를 제공하는 20 GB 내구성형 블록 스토리지를 프로비저닝하는 예시.

    ibmcloud sl block volume-order --storage-type endurance --size 20 --tier 2 --os-type LINUX --datacenter dal10
    

    100IOPS로 20GB 성능 블록 스토리지를 프로비저닝하는 예.

    ibmcloud sl block volume-order --storage-type performance --size 20 --iops 100 --os-type LINUX --datacenter dal10
    
  4. 블록 스토리지 디바이스가 작성되었는지 확인하고 볼륨의 id를 기록해 두십시오. 참고: 블록 스토리지 장치가 바로 표시되지 않는 경우, 몇 분 정도 기다려 주십시오. 그런 다음, 이 명령을 다시 실행하십시오.

    ibmcloud sl block volume-list
    

    출력 예

    id         username          datacenter   storage_type                capacity_gb   bytes_used   ip_addr         lunId   active_transactions   
    123456789  IBM02SL1234567-8  dal10        performance_block_storage   20            -            161.12.34.123   0       0   
    
  5. 볼륨에 대한 세부사항을 검토하고 Target IPLUN Id를 기록해 두십시오.

    ibmcloud sl block volume-detail <volume_ID>
    

    출력 예

    NAME                       Value   
    ID                         1234567890   
    User name                  IBM123A4567890-1   
    Type                       performance_block_storage   
    Capacity (GB)              20   
    LUN Id                     0   
    IOPS                       100   
    Datacenter                 dal10   
    Target IP                  161.12.34.123   
    # of Active Transactions   0   
    Replicant Count            0
    
  6. 비 SDS 작업자 노드에 권한 부여하여 블록 스토리지 디바이스에 액세스하십시오. <volume_ID> 을 앞서 확인한 블록 스토리지 장치의 볼륨 ID로, <private_worker_IP> 을 해당 장치를 연결할 비-SDS 워커 노드의 사설 IP 주소로 각각 대체하십시오.

    ibmcloud sl block access-authorize <volume_ID> -p <private_worker_IP>
    

    출력 예

    The IP address 123456789 was authorized to access <volume_ID>.
    
  7. 비 SDS 작업자 노드가 정상적으로 권한 부여되었는지 확인하고 host_iqn, usernamepassword를 기록해 두십시오.

    ibmcloud sl block access-list <volume_ID>
    

    출력 예

    ID          name                 type   private_ip_address   source_subnet   host_iqn                                      username   password           allowed_host_id   
    123456789   <private_worker_IP>  IP     <private_worker_IP>  -               iqn.2018-09.com.ibm:ibm02su1543159-i106288771   IBM02SU1543159-I106288771   R6lqLBj9al6e2lbp   1146581   
    

    host_iqn, username 및 **password**가 지정되어 있으면 권한 부여에 성공한 것입니다.

  8. 작업자 노드에 블록 스토리지 디바이스를 연결하십시오.

클래식: 비SDS 작업자 노드에 원시 블록 스토리지 연결

블록 스토리지 디바이스를 비 SDS 작업자 노드에 연결하려면 IBM Cloud Block Volume Attacher 스토리지 클래스와 블록 스토리지 디바이스의 세부사항을 사용하여 지속적 스토리지(PV)를 작성해야 합니다.

  1. PV 작성을 준비하십시오.

    • mkpvyaml 컨테이너를 사용한 경우 다음 명령을 실행하십시오.

      1. pv-<cluster_name>.yaml 파일을 여십시오.

        nano pv-<cluster_name>.yaml
        
      2. PV에 대한 구성을 검토하십시오.

    • 블록 스토리지를 수동으로 추가한 경우:

      1. pv.yaml 파일을 작성하십시오. 다음 명령은 nano 편집기로 파일을 작성합니다.

        nano pv.yaml
        
      2. PV에 블록 스토리지 디바이스의 세부사항을 추가하십시오.

        apiVersion: v1
        kind: PersistentVolume
        metadata:
          name: <pv_name>
          annotations:
            ibm.io/iqn: "<IQN_hostname>"
            ibm.io/username: "<username>"
            ibm.io/password: "<password>"
            ibm.io/targetip: "<targetIP>"
            ibm.io/lunid: "<lunID>"
            ibm.io/nodeip: "<private_worker_IP>"
            ibm.io/volID: "<volume_ID>"
        spec:
          capacity:
            storage: <size>
          accessModes:
            - ReadWriteOnce
          hostPath:
              path: /
          storageClassName: ibmc-block-attacher
        
    metadata.name
    PV의 이름을 입력하십시오.
    ibm.io/iqn
    이전에 검색한 IQN 호스트 이름을 입력하십시오.
    ibm.io/username
    이전에 검색한 IBM Cloud 인프라 사용자 이름을 입력하십시오.
    ibm.io/password
    이전에 검색한 IBM Cloud 인프라 비밀번호를 입력하십시오.
    ibm.io/targetip
    이전에 검색한 대상 IP를 입력하십시오.
    ibm.io/lunid
    이전에 검색한 블록 스토리지 디바이스의 LUN ID를 입력하십시오.
    ibm.io/nodeip
    블록 스토리지 장치를 연결하고, 앞서 해당 블록 스토리지 장치에 대한 액세스 권한을 부여한 워커 노드의 사설 IP 주소를 입력하십시오.
    ibm.io/volID
    이전에 검색한 블록 스토리지 볼륨의 ID를 입력하십시오.
    storage
    이전에 검색한 블록 스토리지 디바이스의 크기를 입력하십시오. 예를 들어, 블록 스토리지 디바이스가 20GB이면 20Gi를 입력하십시오.
  2. PV를 작성하여 블록 스토리지 디바이스를 비 SDS 작업자 노드에 연결하십시오.

    • mkpvyaml 컨테이너를 사용한 경우 다음 명령을 실행하십시오.
        oc apply -f pv-<cluster_name>.yaml
        ```
    - 블록 스토리지를 수동으로 추가한 경우 다음 명령을 실행하십시오.
    
    ```sh {: pre}
        oc apply -f pv.yaml
        ```
    
  3. 블록 스토리지가 작업자 노드에 연결되었는지 확인하십시오.

    oc describe pv <pv_name>
    

    출력 예

    NAME:            kube-wdc07-cr398f790bc285496dbeb8e9137bc6409a-w1-pv1
    Labels:          <none>
    Annotations:     ibm.io/attachstatus=attached
                    ibm.io/dm=/dev/dm-1
                    ibm.io/iqn=iqn.2018-09.com.ibm:ibm02su1543159-i106288771
                    ibm.io/lunid=0
                    ibm.io/mpath=3600a09803830445455244c4a38754c66
                    ibm.io/nodeip=10.176.48.67
                    ibm.io/password=R6lqLBj9al6e2lbp
                    ibm.io/targetip=161.26.98.114
                    ibm.io/username=IBM02SU1543159-I106288771
                    kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","kind":"PersistentVolume","metadata":{"annotations":{"ibm.io/iqn":"iqn.2018-09.com.ibm:ibm02su1543159-i106288771","ibm.io/lunid":"0"...
    Finalizers:      []
    StorageClass:    ibmc-block-attacher
    Status:          Available
    Claim:           
    Reclaim Policy:  Retain
    Access Modes:    RWO
    Capacity:        20Gi
    Node Affinity:   <none>
    Message:         
    Source:
        Type:          HostPath (bare host directory volume)
        Path:          /
        HostPathType:  
    Events:            <none>
    

    ibm.io/dm/dev/dm/1와 같은 디바이스 ID로 설정되면 블록 스토리지 디바이스는 정상적으로 연결되며 CLI 출력의 어노테이션 섹션에 ibm.io/attachstatus=attached가 표시됩니다.

볼륨을 분리하려면 PV를 삭제하십시오. 분리된 볼륨은 여전히 특정 작업자 노드에서 액세스할 수 있도록 권한 부여되어 있으며 동일한 작업자 노드에 다른 볼륨을 연결하도록 IBM Cloud Block Volume Attacher 스토리지 클래스로 새 PV를 작성하면 다시 연결됩니다. 이전에 분리한 볼륨을 다시 연결하지 않으려면 ibmcloud sl block access-revoke 명령을 사용하여 분리된 볼륨에 액세스하도록 작업자 노드에 권한을 부여하지 마십시오. 볼륨을 분리해도 IBM Cloud 인프라 계정에서 볼륨이 제거되지 않습니다. 볼륨에 대한 비용 청구를 취소하려면 수동으로 IBM Cloud 인프라 계정에서 스토리지를 제거해야 합니다.

VPC: API를 사용하여 원시 Block Storage for VPC를 VPC 작업자 노드에 추가

Kubernetes Service API를 사용하여 VPC 클러스터 내의 워커 노드에 Block Storage for Classic VPC 클러스터 내의 워커 노드에 연결하거나 분리할 수 있습니다.

볼륨은 하나의 작업자 노드에만 연결할 수 있습니다. 첨부가 성공적으로 이루어지려면 볼륨이 워커 노드와 동일한 영역에 있는지 확인하십시오.

CLI를 사용하여 작업자 노드의 볼륨 연결을을 연결, 분리 및 나열할 수도 있습니다. 자세한 정보는 스토리지 CLI 참조를 참조하십시오.

시작하기 전에:

Red Hat OpenShift 클러스터에 액세스하십시오.

  1. VPC 작업자 노드가 있는 지역 및 구역을 확인하십시오.

    ibmcloud oc worker ls -c CLUSTER_NAME
    
  2. 자신의 용량 및 성능 요구사항을 가장 잘 충족시키는 Block Storage for Classic 프로파일을 결정하십시오.

  3. Block Storage for Classic 볼륨을 프로비저닝하십시오. 프로비저닝하는 볼륨은 작업자 노드와 동일한 리소스 그룹, 지역 및 구역에 속해야 합니다.

  4. IAM 토큰을 검색하십시오.

    ibmcloud iam oauth-tokens
    
  5. Block Storage for Classic 인스턴스에 연결할 작업자 노드의 ID를 검색합니다. Block Storage for Classic 볼륨과 동일한 존에 위치한 워커 노드를 선택해야 합니다.

    ibmcloud oc worker ls --cluster CLUSTER_NAME_OR_ID
    
  6. POST 요청을 사용하여 Block Storage for Classic 볼륨을 작업자 노드에 연결하십시오.

    요청 예제

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/createAttachment" -H  "accept: application/json" -H  "Authorization: <IAM_token>" -H  "X-Auth-Resource-Group-ID: <resource_group>" -H  "Content-Type: application/json" -d "{  \"cluster\": \"<cluster_name_or_ID>\",  \"volumeID\": \"<volume_ID>\",  \"worker\": \"<worker_ID>\"}"
    
    IAM_token
    현재 세션에 대한 IAM OAuth 토큰입니다. ibmcloud iam oauth-tokens를 실행하여 이 값을 검색할 수 있습니다.
    cluster_name_or_ID
    클러스터에 지정된 고유 ID 또는 이름입니다. 이 ID는 ibmcloud oc cluster ls를 실행하여 검색할 수 있습니다.
    worker_ID
    볼륨을 연결하는 워커 노드에 할당된 고유 ID입니다. ibmcloud oc worker ls -c CLUSTER_NAME를 실행하여 이 값을 검색할 수 있습니다.
    volume_ID
    Block Storage for Classic 볼륨에 지정된 고유 ID입니다. ibmcloud is volumes를 실행하여 Block Storage for Classic 볼륨의 목록을 검색할 수 있습니다.

    응답 예제.

    {
        "id": "0111-1aaa11a1-aa1a-111a-111b-1111a1dad1bc",
    "volume": {
        "name": "my-vol",
        "id": "r001-11aa0d59-a1aa-1a11-11ca-ba2bc11e01aa"
    },
    "device": {
        "id": ""
    },
    "name": "volume-attachment",
    "status": "attaching",
    "type": "data"
    }
    
  7. VPC 작업자 노드의 기존 볼륨 연결 보기를 수행하여 연결을 확인하십시오.

API를 사용하여 VPC 클러스터의 작업자 노드에서 포맷되지 않은 원시 Block Storage for Classic 분리

DELETE 요청을 사용하여 스토리지를 VPC 작업자 노드로부터 분리할 수 있습니다.

VPC 클러스터에서 스토리지를 분리해도 Block Storage for Classic 볼륨이 제거되거나 이 볼륨에 저장된 데이터가 제거되지는 않습니다. 사용자는 볼륨을 수동으로 삭제할 때까지 계속해서 비용 청구를 받습니다.

  1. 제거할 스토리지 볼륨을 확인하고 볼륨 ID를 기록해 둡니다.

    ibmcloud is volumes
    
  2. 볼륨의 세부사항을 가져오십시오. 이 명령은 작업자 노드 ID와 연결 ID를 리턴합니다. 작업자 노드 ID를 기록해 두십시오. 다음 명령에서 이 ID는 "인스턴스 이름"으로 리턴됩니다.

    ibmcloud is volume <volume_ID>
    
  3. PV의 목록을 검색하십시오. 이 명령어는 사용자의 PV 목록을 반환하며, 이를 통해 제거할 볼륨을 사용하는 PVC를 확인할 수 있습니다.

    oc get pv
    
  4. 해당 볼륨을 사용하는 PV의 설명을 표시하십시오. 어떤 PV에서 볼륨을 제거해야 할지 모르는 경우, 클러스터 내의 각 PV에 대해 describe pv 명령을 실행할 수 있습니다. 해당 PV를 사용하는 PVC를 기록해 두십시오.

    oc describe pv <pv_name>
    
  5. 스토리지 볼륨을 팟(Pod)에서 사용 중인지 확인하십시오. 다음 명령은 볼륨을 마운트하는 팟(Pod) 및 그와 연관된 PVC를 표시합니다. 아무 팟(Pod)도 리턴되지 않으면 스토리지가 사용 중이 아닌 것입니다.

    oc get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>"
    
  6. 볼륨이 사용 중인 팟(Pod)이 배치의 일부인 경우에는 해당 배치를 삭제하십시오. 이 팟(Pod)이 배치에 속하지 않는 경우에는 팟(Pod)을 삭제하십시오.

    oc delete deployment <deployment_name>
    
    oc delete pod <pod_name>
    
  7. PVC 및 PV를 삭제하십시오.

    oc delete pvc <pvc_name>
    
    oc delete pv <pv_name>
    
  8. IAM 토큰을 검색하십시오.

    ibmcloud iam oauth-tokens
    
  9. POST 요청을 사용하여 스토리지를 분리하십시오.

    요청 예제

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/deleteAttachment" -H  "accept: application/json" -H  "Authorization: <IAM_token>" -H  "X-Auth-Resource-Group-ID: <resource_group>" -H  "Content-Type: application/json" -d "{  \"cluster\": \"<cluster_name_or_ID\",  \"volumeAttachmentID\": \"<volume_attachment_ID>\",  \"volumeID\": \"<volume_ID>\",  \"worker\": \"<worker_ID>\"}"
    
    IAM_token
    현재 세션에 대한 IAM OAuth 토큰입니다. ibmcloud iam oauth-tokens를 실행하여 이 값을 검색할 수 있습니다.
    cluster_name_or_ID
    클러스터에 지정된 고유 ID 또는 이름입니다. 이 ID는 ibmcloud oc cluster ls를 실행하여 검색할 수 있습니다.
    worker_ID
    볼륨을 연결할 작업자 노드에 지정된 고유 ID입니다. ibmcloud oc worker ls -c CLUSTER_NAME를 실행하여 이 값을 검색할 수 있습니다.
    volume_ID
    Block Storage for Classic 볼륨에 지정된 고유 ID입니다. ibmcloud is volumes를 실행하여 Block Storage for Classic 볼륨의 목록을 검색할 수 있습니다.
    volume_attachment_ID
    볼륨 연결에 지정된 고유 ID입니다. 이 ID는 ibmcloud is volume <volume_ID>를 실행하여 검색할 수 있습니다.

API를 사용하여 VPC 작업자 노드에 대한 볼륨 연결 세부사항 검토

GET 요청을 사용하여 VPC 작업자 노드의 볼륨 연결 세부사항을 검색할 수 있습니다.

  1. IAM 토큰을 검색하십시오.

    ibmcloud iam oauth-tokens
    
  2. 클러스터가 배치된 리소스 그룹의 ID를 검색하십시오.

    ibmcloud oc cluster get CLUSTER_NAME_OR_ID | grep "Resource Group ID"
    
  3. 볼륨 연결 세부사항을 볼 작업자 노드의 ID를 검색하십시오. Block Storage for Classic 인스턴스와 동일한 존에 위치한 워커 노드를 선택해야 합니다.

    ibmcloud oc worker ls --cluster CLUSTER_NAME_OR_ID
    
  4. 작업자 노드에 있는 기존 볼륨 연결의 목록을 검토하십시오.

    curl -X GET "https://containers.cloud.ibm.com/v2/storage/getAttachments?cluster=<cluster_ID>&worker=<worker_ID>" --header "X-Auth-Resource-Group-ID: <resource_group_ID>" --header "Authorization: <IAM_token>"
    
  5. 특정 연결의 세부사항을 검색하십시오.

    curl -X GET "https://containers.cloud.ibm.com/v2/storage/getAttachment?cluster=<cluster_ID>&worker=<worker_ID>&volumeAttachmentID=<volume_attachment_ID>" --header "X-Auth-Resource-Group-ID: <resource_group_ID>" --header "Authorization: <IAM_token>"
    
    IAM_token
    현재 세션에 대한 IAM OAuth 토큰입니다. ibmcloud iam oauth-tokens를 실행하여 이 값을 검색할 수 있습니다.
    cluster_ID
    클러스터에 지정된 고유 ID입니다. 이 ID는 ibmcloud oc cluster ls를 실행하여 검색할 수 있습니다.
    worker_ID
    볼륨을 연결할 작업자 노드에 지정된 고유 ID입니다. ibmcloud oc worker ls -c CLUSTER_NAME를 실행하여 이 값을 검색할 수 있습니다.
    volume_ID
    Block Storage for Classic 볼륨에 지정된 고유 ID입니다. ibmcloud is volumes를 실행하여 Block Storage for Classic 볼륨의 목록을 검색할 수 있습니다.
    volume_attachment_ID
    볼륨 연결에 지정된 고유 ID입니다. 이 ID는 ibmcloud is volume <volume_ID>를 실행하여 검색할 수 있습니다.

VPC: CLI를 사용하여 VPC 작업자 노드에 원시 Block Storage for VPC 연결

Kubernetes Service CLI를 사용하여 포맷되지 않은 원시 Block Storage for Classic를 VPC 클러스터에 있는 작업자 노드에 연결하거나 노드에서 분리할 수 있습니다.

볼륨은 하나의 작업자 노드에만 연결할 수 있습니다. 첨부가 성공적으로 이루어지려면 볼륨이 워커 노드와 동일한 영역에 있는지 확인하십시오.

시작하기 전에:

Red Hat OpenShift 클러스터에 액세스하십시오.

  1. 저장소 볼륨 목록을 확인하고, 연결할 볼륨의 ID를 기록해 두십시오.

    ibmcloud is vols
    
  2. 클러스터에 있는 워커 노드를 나열하고, 볼륨을 연결할 워커 노드의 ID를 기록해 두십시오.

    ibmcloud oc worker ls -c CLUSTER_NAME_OR_ID
    
  3. VPC 작업자 노드에 Block Storage for Classic를 연결하십시오.

    ibmcloud oc storage attachment create --cluster CLUSTER_NAME_OR_ID --volume VOLUME --worker WORKER_ID
    

CLI를 사용하여 VPC 작업자 노드에서 원시 Block Storage for VPC 제거

ibmcloud oc storage attachment rm 명령을 사용하여 작업자 노드에서 스토리지를 제거할 수 있습니다.

계정에 로그인하십시오. If applicable, target the appropriate resource group. 클러스터에 대한 컨텍스트를 설정하십시오.

  1. 사용 중인 스토리지 볼륨을 나열하고, 제거할 볼륨의 ID를 확인하십시오.

    ibmcloud is vols
    
  2. 볼륨이 연결된 사용자 볼륨의 세부사항(예: worker-id)을 가져오십시오. 이 worker-id는 명령 출력의 Volume Attachment Instance Reference 섹션에 Instance name으로 나열됩니다.

    ibmcloud is vol <volume-ID>
    

    출력 예

    Volume Attachment Instance Reference   Attachment type   Instance ID                                 Instance name                                        Auto delete   Attachment ID                               Attachment name      
                                        data              0727_e18c10d7-7f18-48aa-b5ef-5ed163e54198   kube-bsaucubd07dhl66e4tgg-cluster-default-00000a19   false         0727-3bfe90b0-dc2d-498a-946b-8837a5dad7bc   volume-attachment
    
  3. 클러스터의 작업자 노드에 대한 스토리지 연결을 나열하고 제거할 연결 ID를 기록해 두십시오.

    ibmcloud oc storage attachment ls -c CLUSTER --worker WORKER_ID
    

    출력 예:

    Listing volume attachments...
    OK
    ID                                          Name                Status     Type   Volume ID                                   Volume Name                          Worker ID   
    0111-1a111aaa-1111-1111-111a-aaa1a1a11a11   volume-attachment   attached   boot   a001-f11ed1e1-1aa1-11dc-b11d-a0dc111b1111  dissuade-anointer-errand-handbrake   kube-aa1111aa11aaaaa11aa1-cluster-name-default-00000110
    
  4. 스토리지 연결을 제거하십시오.

    ibmcloud oc storage attachment rm --attachment ATTACHMENT_ID -c CLUSTER --worker WORKER_ID
    
  5. 스토리지가 작업자 노드에서 제거되었는지 확인하십시오.

    ibmcloud oc storage attachment ls -c CLUSTER_ID --worker WORKER_ID
    

파일 및 블록 스토리지의 PVC 데이터 백업 및 복원

백업 및 복원 Helm 차트는 CoreOS 워커를 사용하는 Satellite 버전 4.13 클러스터에서는 지원되지 않습니다.

IBM Cloud 백업 복원 Helm 차트로 파일 스토리지 또는 블록 스토리지 지속적 볼륨 청구(PVC)에 저장되는 데이터에 대해 일회성 또는 스케줄된 백업을 작성할 수 있습니다. Your data is stored in an IBM Cloud Object Storage service instance that you create and own. You can use existing backups in your IBM Cloud Object Storage service instance to restore data to a PVC in your cluster.

Helm 차트를 설치하면 어떻게 되나요?
When you install the Helm chart, a Kubernetes pod is created in your cluster that performs a one-time or periodic backup of your PVC data, or restores data from IBM Cloud Object Storage to a PVC. 백업 또는 복원 설정은 ‘ Helm ’ 차트와 함께 제공되는 values.yaml 파일에서 구성하거나, helm install 명령어의 옵션을 설정하여 수행할 수 있습니다.
어떤 제한 사항을 유의해야 하나요?
블록 스토리지 PVC의 데이터를 백업하거나 복원하려면, 해당 PVC가 앱에 마운트되어 있지 않아야 합니다. Block storage is mounted with a RWO access mode. This access allows only one pod to be mounted to the block storage at a time. To back up or restore your data, you must remove the pod that uses the storage to unmount the PVC. After the backup or restoring of data is finished, you can re-create your pod and mount the backed up or restored PVC.
시작하기 전에 무엇이 필요할까요?
IBM Cloud Object Storage에 데이터를 백업 또는 복원하려면 IBM Cloud Object Storage 서비스 인스턴스를 설정하고 서비스에 액세스하기 위한 서비스 신임 정보를 작성하고 데이터를 보유할 수 있는 버킷을 작성해야 합니다.

IBM Cloud Object Storage 서비스 인스턴스 설정

백업할 데이터의 저장소 역할을 할 ‘ IBM Cloud Object Storage ’ 서비스 인스턴스를 생성하고 구성합니다.

  1. HMAC 신임 정보를 사용하는 IBM Cloud Object Storage 서비스 인스턴스를 작성하십시오.
  2. Kubernetes 시크릿에 IBM Cloud Object Storage 인증 정보를 저장하십시오.
  3. 첫 번째 IBM Cloud Object Storage 버킷을 작성하십시오.
    1. 서비스 세부사항 페이지의 탐색 메뉴에서 버킷을 클릭하십시오.
    2. 버킷 작성을 클릭하십시오. A dialog box is displayed.
    3. 버킷의 고유 이름을 입력하십시오. The name must be unique within IBM Cloud Object Storage across all regions and across all IBM Cloud accounts.
    4. “Resiliency” 목록에서 데이터의 가용성 수준을 선택하십시오. 자세한 정보는 IBM Cloud Object Storage 지역 및 엔드포인트를 참조하십시오. VPC 클러스터의 경우 직접 엔드포인트를 기록해 두십시오. 예: s3.direct.us.cloud-object-storage.appdomain.cloud.
    5. 데이터를 저장하는 지역으로 위치를 변경하십시오. Keep in mind that your data might not be allowed to be stored in every region due to legal reasons.
    6. 작성을 클릭하십시오.
  4. 버킷의 IBM Cloud Object Storage 호스트 이름을 검색하십시오.
    1. 이전 단계에서 생성한 버킷 이름을 클릭하세요.
    2. 서비스 세부 정보 페이지의 탐색 메뉴에서 [ 버킷 ] > [구성 ]을 클릭합니다.
    3. 버킷에서 데이터에 액세스하는 데 사용할 수 있는 공용 URL을 확인하십시오.

서비스 인스턴스 구성에 대한 자세한 정보는 IBM Cloud Object Storage 문서를 참조하십시오.

IBM Cloud Object Storage을(를) 사용하여 PVC 데이터 백업 및 복원

IBM Cloud 백업 복원 Helm 차트를 사용하여 파일 스토리지 또는 블록 스토리지 PVC의 데이터를 IBM Cloud Object Storage에 백업하거나 IBM Cloud Object Storage의 데이터를 클러스터의 PVC에 복원할 수 있습니다.

시작하기 전에:

Helm 차트의 ibm-storage-backup 파일을 편집 및 적용하거나 CLI에서 ibm-storage-restore 명령을 실행하여 values.yaml 팟(pod) 또는 helm install 팟(pod)을 배치할 수 있습니다.

values.yaml 파일을 편집하여 PVC를 백업 또는 복원하려면 다음을 수행하십시오.

  1. 최신 Helm 차트 버전을 로컬 시스템에 다운로드하십시오.

    helm fetch --untar iks-charts/ibmcloud-backup-restore
    
  2. nano 명령줄 편집기에서 values.yaml 파일을 엽니다.

    nano ibmcloud-backup-restore/values.yaml
    
  3. PVC 데이터를 백업 또는 복원하도록 Helm 차트를 구성하십시오. You can configure the backup for more than one PVC.

    values.yaml 파일을 구성하여 백업 팟(pod)을 작성하는 예제:

    image:
        repository: icr.io/iks-charts/ibmcloud-backup-restore
    pullPolicy: Always
    tag: latest
    ACCESS_KEY_ID: # Example: 10110abab1111bbb111aa1aaa111b1a1
    SECRET_ACCESS_KEY: # Example: a1aba11aaa11b11b11aa1111a1111ba111111111a0b1b11a
    ENDPOINT: # Example: s3.us-east.cloud-object-storage.appdomain.cloud
    BUCKET_NAME: # Example: my-bucket
    BACKUP_NAME: # Example: my_backup
    PVC_NAMES:
        - # Example: my_pvc
    - # Optional example: my_pvc2
    CHART_TYPE: # Example: backup or restore
    BACKUP_TYPE: # Example: incremental
    SCHEDULE_TYPE: # Example: periodic
    SCHEDULE_INFO: # Example: weekly
    
    ACCESS_KEY_ID
    Enter the access key ID of the IBM Cloud Object Storage service credentials that you retrieved earlier.
    SECRET_ACCESS_KEY
    Enter the secret access key of the IBM Cloud Object Storage service credentials that you retrieved earlier.
    ENDPOINT
    Enter the public IBM Cloud Object Storage s3 API endpoint for your bucket that you retrieved earlier.
    BUCKET_NAME
    백업: 이전에 작성한 IBM Cloud Object Storage 버킷의 이름을 입력하십시오. You use this bucket to store PVC data when you perform a backup. 복원: 백업이 저장된 IBM Cloud Object Storage 버킷의 이름을 입력하십시오.
    BACKUP_NAME
    백업: IBM Cloud Object Storage에 작성하려는 백업의 이름을 입력하십시오. 복원: IBM Cloud에서 IBM Cloud Object Storage 백업 복원 Helm 차트로 작성한 백업의 이름을 입력하십시오. If you have multiple full backups in your IBM Cloud Object Storage service instance, the PVC is restored with the data of the last full backup. If you have incremental backups, the PVC is restored with the data of the last full backup, including all incremental backups up to the day where you start the restore.
    PVC_NAMES
    백업: 백업할 PVC의 이름을 입력하십시오. 여러 PVC를 백업하려면 각 PVC를 PVC 목록에 추가하십시오. 백업할 수 있는 클러스터에서 사용 가능한 PVC를 나열하려면 oc get pvc를 실행하십시오. 복원: IBM Cloud Object Storage 에서 데이터를 복원할 PVC의 이름을 입력하십시오. You can restore data to one PVC at a time only. 데이터를 복원할 수 있는 클러스터에서 사용 가능한 PVC를 나열하려면 oc get pvc를 실행하십시오.
    CHART_TYPE
    배포할 차트 유형의 이름을 입력하세요. 백업 차트를 배치하려면 backup을 입력하십시오. 복원 차트를 배치하려면 restore를 입력하십시오.
    BACKUP_TYPE
    백업에만 필요합니다. full 을 입력하여 전체 백업을 생성하거나, incremental 을 입력하여 새로 추가되거나 변경된 파일만 백업하십시오. incremental을 선택하는 경우 SCHEDULING_INFOSCHEDULING_TYPE 옵션을 지정해야 합니다. BACKUP_TYPE 옵션을 지정하지 않으면 기본적으로 전체 백업이 작성됩니다.
    SCHEDULE_TYPE
    백업에만 필요합니다. periodic을 입력하여 스케줄된 백업을 작성하거나, 이 옵션을 공백으로 두어 일회성 백업을 작성하십시오. 정기 백업을 생성하려면 ‘ SCHEDULE_INFO ’ 옵션에서 백업 간격을 설정해야 합니다.
    SCHEDULE_INFO
    백업에만 필요합니다. 정기 백업을 생성하려면 백업 일정을 정해야 합니다. hourly, daily 또는 weekly 중에서 선택하십시오. 이 옵션을 설정하는 경우 SCHEDULE_TYPEperiodic으로 설정해야 합니다.
  4. values.yaml 파일을 저장하고 닫으십시오.

  5. values.yaml 파일의 사용자 정의 설정으로 Helm 차트를 설치하십시오. Helm 차트를 설치하고 백업 또는 복원을 구성하는 경우 ibm-storage-backup 또는 ibm-storage-restore 팟(pod)이 클러스터에 배치됩니다. The backup pod backs up the data from your PVC to IBM Cloud Object Storage and the restore pod restores data to a PVC. <release_name>을 Helm 차트의 이름으로 대체하십시오. Be sure to install the backup and restore pods in the same zone as the PVC that you want to back up or restore.

    • helm install 명령을 사용하여 Helm 차트를 설치하십시오.
        helm install <release_name> ./ibmcloud-backup-restore -n <namespace>
        ```
        백업의 출력 예제:
    
        ```sh {: screen}
        NAME: <release_name>
        LAST DEPLOYED: Mon Jan 20 09:17:02 2020
        NAMESPACE: default
        STATUS: deployed
        REVISION: 1
        TEST SUITE: None
        NOTES:
        Thank you for installing: ibmcloud-backup-restore.   Your release is named: <release_name>
        Please refer Chart README.md file for creating a sample PVC
        Please refer Chart RELEASE.md to see the release details/fixes
        ```
    * 선택 사항: ` `helm install` ` 명령어의 옵션을 설정하여 ` Helm ` 차트를 설치합니다. You can name your release by specifying the `--name` parameter.
    ```sh {: pre}
        helm install <release_name> --set ACCESS_KEY_ID=<access_key_ID> --set SECRET_ACCESS_KEY=<secret_access_key> --set ENDPOINT=<public_bucket_endpoint> --set BUCKET_NAME=<bucket_name> --set BACKUP_NAME=<backup_name> --set PVC_NAMES[0]=<pvc_name1> --set PVC_NAMES[1]=<pvc_name2> --set CHART_TYPE=backup --set BACKUP_TYPE=<backup_type> --set SCHEDULE_TYPE=<schedule_type> --set SCHEDULE_INFO=<schedule_info> ./ibmcloud-backup-restore
        ```
    
  6. 데이터 백업 또는 복원이 성공적으로 완료되었는지 확인하십시오.

백업: 1. ibm-storage-backup 팟(Pod)이 Running 상태인지 확인하십시오. sh {: pre} oc get pods -A | grep backup 출력 예

    ```sh {: screen}
    ibm-storage-backup                        1/1     Running             0          64m
    ```
2. `ibm-storage-backup` 팟(Pod)의 로그를 검토하여 백업이 성공했는지 확인하십시오. 로그에 “ `... backup completed` ”라는 메시지가 표시되면 백업이 성공적으로 완료된 것입니다.

```sh {: pre}
    oc logs ibm-storage-backup
    ```
    일별 백업의 출력 예제.

    ```sh {: screen}
    [2019-04-18 16:01:51,157] [utilities : 151] [INFO] *****************Start logging to ./Backup.log
    [2019-04-18 16:01:51,158] [backup : 48] [INFO] Starting backup:
    [2019-04-18 16:01:51,158] [configureOS : 66] [INFO] Configuring duplicity with IBM CloudObjectStorage i.e s3.
    [2019-04-18 16:01:51,158] [backup : 62] [INFO] Configuration done!!!
    [2019-04-18 16:01:51,158] [backup : 78] [INFO] Got all required input from config file!!
    [2019-04-18 16:01:52,366] [backup : 119] [WARNING] Incremental backup was not created
    [2019-04-18 16:01:52,366] [backup : 120] [INFO] duplicity  --no-encryption incremental /myvol s3://s3.us-south.cloud-object-storage.appdomain.cloud/mybucket/helm-backup command failed due to Fatal Error: Unable to start incremental backup.  Old signatures not found and incremental specified
    [2019-04-18 16:01:52,367] [backup : 121] [INFO] A full backup is required before incremental backups can begin. Creating a one-time full backup and will run incremental backups for scheduled backups.
    [2019-04-18 16:01:54,357] [backup : 129] [INFO] Full backup completed
    [2019-04-18 16:01:54,357] [backup : 130] [INFO] Local and Remote metadata are synchronized, no sync needed.
    Last full backup date: none
    --------------[ Backup Statistics ]--------------
    StartTime 1555603313.31 (Thu Apr 18 16:01:53 2019)
    EndTime 1555603313.32 (Thu Apr 18 16:01:53 2019)
    ElapsedTime 0.01 (0.01 seconds)
    SourceFiles 3
    SourceFileSize 20495 (20.0 KB)
    NewFiles 3
    NewFileSize 20495 (20.0 KB)
    DeletedFiles 0
    ChangedFiles 0
    ChangedFileSize 0 (0 bytes)
    ChangedDeltaSize 0 (0 bytes)
    DeltaEntries 3
    RawDeltaSize 15 (15 bytes)
    TotalDestinationSizeChange 183 (183 bytes)
    Errors 0
    -------------------------------------------------
    [2019-04-18 16:01:54,357] [backup : 162] [INFO] Scheduling backup as per configurations, please don't stop this program or run this in background !!!
    [2019-04-18 16:01:54,358] [backup : 166] [INFO] Schedule info is: ['daily']
    [2019-04-18 16:01:54,358] [backup : 172] [INFO] Scheduled for daily!!!
    ```
  1. 데이터가 성공적으로 백업 또는 복원되었는지 확인하십시오.
    • 백업:

      1. IBM Cloud Object Storage 서비스 인스턴스를 IBM Cloud 리소스 목록에서 찾으십시오.
      2. 메뉴에서 [ 버킷]을 선택한 다음, 백업 구성에 사용한 버킷을 클릭합니다. 백업이 버킷의 오브젝트로 표시됩니다.
      3. 압축된 파일을 검토하십시오. *.gz 파일을 다운로드하고, 파일을 추출한 후에 백업된 데이터를 확인하십시오.
    • 복원:

      1. 복원된 데이터를 포함하는 PVC를 마운트하는 팟(Pod)을 사용하여 deployment.yaml 파일을 작성하십시오. 다음 예제는 nginx 마운트 디렉토리에서 PVC를 마운트하는 /test 팟(Pod)을 배치합니다.

          apiVersion: apps/v1
          kind: Deployment
          metadata:
            name: restore
            labels:
            app: nginx
          spec:
            selector:
              matchLabels:
                app: nginx
            template:
              metadata:
                labels:
                  app: nginx
              spec:
                containers:
                  - image: nginx
                    name: nginx
                    volumeMounts:
                    - name: my-volume # Example: my_volume
                      mountPath: /test # Example: /test
                volumes:
                - name: my-volume # Example: my_volume
                  persistentVolumeClaim:
                    claimName: my-actual-pvc-name # Example: my_pvc
        
        spec.containers.image
        사용할 이미지의 이름입니다. IBM Cloud Container Registry 계정에서 사용 가능한 이미지를 나열하려면 ibmcloud cr image-list를 실행하십시오.
        spec.containers.name
        클러스터에 배치할 컨테이너의 이름입니다.
        spec.containers.volumeMounts.mountPath
        컨테이너 내에서 볼륨이 마운트되는 디렉토리의 절대 경로입니다. 마운트 경로에 쓰여진 데이터는 실제 블록 스토리지 인스턴스의 루트 디렉토리 아래에 저장됩니다. 서로 다른 앱 간에 볼륨을 공유하려면, 각 앱에 대해 볼륨 하위 경로를 지정할 수 있습니다.
        spec.containers.volumeMounts.name
        팟(Pod)에 마운트할 볼륨의 이름입니다.
        volumes.name
        팟(Pod)에 마운트할 볼륨의 이름입니다. 일반적으로 이 이름은 volumeMounts/name과 동일합니다.
        volumes.persistentVolumeClaim.claimName
        사용할 PV를 연결하는 PVC의 이름입니다.
      2. 배치를 작성하십시오.

        oc apply -f deployment.yaml
        
      3. 팟(Pod)의 상태가 실행 중인지 확인하십시오.

        ibm-storage-restore 팟(Pod)이 완료됨 또는 CrashLoopBackOff 상태에 도달하지 못하는 경우 데이터 복원에 실패했을 수 있습니다. oc logs ibm-storage-restore를 실행하여 실패의 근본 원인을 찾아 보십시오.

        oc get pods | grep restore
        

        출력 예

        restore-7dfc6f4c78-wkcqp                  1/1     Running             0          3m54s
        
      4. 팟(Pod)에 로그인하십시오.

        oc exec <pod_name> -it bash
        
      5. 배치 YAML에 지정한 마운트 디렉토리로 이동하십시오.

        cd <mount_directory>
        
      6. 마운트 디렉토리에 파일을 나열하여 모든 데이터가 마운트 디렉토리로 복원되었는지 확인하십시오.

        ls
        
      7. 클러스터에서 Helm 차트 설치를 삭제하십시오. 이 단계는 블록 스토리지 PVC로 데이터를 복원한 경우 필요합니다. Block storage is mounted with a RWO access mode. This access allows only one pod to be mounted to the block storage at a time. ibm-storage-restore 팟(Pod)이 이미 PVC를 마운트하므로 사용자는 클러스터의 다른 팟(Pod)에 PVC를 마운트할 수 있도록 팟(Pod)을 제거하여 PVC를 해제해야 합니다.

        helm uninstall <release_name> -n <namespace>
        
      8. 백업이 성공적으로 복원되었습니다. 이제 PV를 클러스터의 다른 팟(Pod)에 바인드하는 PVC를 마운트하여 복원된 파일에 액세스할 수 있습니다. 백업된 컨테이너 데이터에 루트가 아닌 사용자가 포함된 경우 새 컨테이너에 루트가 아닌 권한을 추가해야 합니다. 자세한 정보는 볼륨에 루트가 아닌 사용자 액세스 권한 추가를 참조하십시오.

스토리지 볼륨의 IBM Cloud Monitoring 설정

IBM Cloud Monitoring에서 스토리지 볼륨을 사용하는 워크로드에 대한 경보를 설정합니다. 자세한 정보는 경보를 참조하십시오.

스토리지 볼륨이 작동 중단되면 스토리지를 사용하는 앱 팟(Pod)에는 파일 시스템 I/O가 낮아지거나, 네트워크 오류가 발생하거나, 충돌이 발생하여 복제본 수가 줄어들게 됩니다. IBM Cloud Monitoring 에서 알림을 설정하면, 앱의 파일 시스템 작업이 특정 임계값 아래로 떨어지거나, 네트워크 오류가 발생하거나, 앱 포드가 ‘ Ready ’ 상태에 도달하지 못할 때 알림을 받을 수 있습니다.

  1. 콘솔에서 스토리지 볼륨에 대한 알림을 설정한 클러스터를 선택하십시오.

  2. 모니터링 섹션에서 연결을 클릭하여 기존 IBM Cloud Monitoring 인스턴스를 클러스터에 연결하십시오. 인스턴스가 없는 경우 인스턴스 작성을 클릭하여 인스턴스를 작성하십시오. IBM Cloud Monitoring 인스턴스 설정에 대한 자세한 정보는 인스턴스 프로비저닝을 참조하십시오.

  3. 실행 단추를 클릭하여 IBM Cloud Monitoring 대시보드를 여십시오.

  4. 클러스터에서 실행되는 앱에 대한 파일 시스템 활용률 경보를 작성하십시오.

    1. IBM Cloud Monitoring 콘솔에서 ‘ 개요 ’ > ‘ 작업량 ’을 클릭합니다.
    2. 앱이 배치된 네임스페이스를 선택하십시오. 앱을 찾고, 앱에서 화살표 아이콘을 클릭하고, Kubernetes 팟(Pod) 개요를 선택하십시오.
    3. 파일 시스템 활용률 섹션에서 팟(Pod)을 통한 파일 I/O 대역폭 타일을 검토하십시오.
    4. 평균 대역폭을 판별하려면 마지막 날 또는 주 시간 창에서 파일 I/O 대역폭을 검토하십시오. 평균 대역폭을 임계값으로 사용하여, 파일 I/O 대역폭이 일정 시간 동안 평균보다 낮아질 때 경고를 설정할 수 있습니다. 예를 들어, 앱의 평균 파일 I/O 대역폭이 300B/s 인 경우, 네트워크 사용량이 일정 시간 동안 300B/s 미만으로 유지될 때 알림이 발생하도록 설정할 수 있습니다.
    5. 팟(Pod)을 통한 파일 I/O 대역폭 타일에서 옵션 메뉴를 클릭한 후 경보 작성을 클릭하여 경보를 작성하십시오.
    6. 경보 메뉴의 알림 섹션을 열고 경보 알림 채널을 작성하거나 선택하십시오.
    7. 경보를 저장하십시오.
    8. 클러스터에 배치된 모든 앱에 대해 이 단계를 반복하십시오.
    9. 수동으로 경보를 트리거하도록 구성한 임계값을 편집하여 작성한 경보를 테스트하십시오. 예를 들어, 활용률이 5분 동안 300B/s 미만인 경우 트리거할 파일 시스템 활용률 경보를 설정하면 5분 동안 현재 앱 활용률보다 크게 임계값을 늘리고 at least once 옵션을 선택하십시오.
    10. 경보가 5분 후에 트리거되는지 확인하십시오. 경보를 확인한 후 즉시 이전에 구성한 값으로 값을 재설정하십시오.
  5. 클러스터에서 실행되는 앱에 대한 네트워크 활용률 경보를 작성하십시오.

    1. IBM Cloud Monitoring 콘솔에서 ‘ 개요 ’ > ‘ 작업량 ’을 클릭합니다.
    2. 앱이 배치된 네임스페이스를 선택하십시오. 앱을 찾고, 앱에서 화살표 아이콘을 클릭하고, Kubernetes 팟(Pod) 개요를 선택하십시오.
    3. 네트워크 활용률 섹션에서 팟(Pod)을 통한 네트워크 요청 수 타일을 검토하십시오.
    4. 임계값을 판별하려면 마지막 1일, 1주 시간 창에서 팟(Pod)을 통한 평균 네트워크 요청 수를 검토하십시오.
    5. 팟(Pod)을 통한 네트워크 요청 수 타일에서 옵션 메뉴를 클릭한 후 경보 작성을 클릭하여 경보를 작성하십시오. 관찰한 임계값을 기반으로 경보 매개변수를 설정하십시오. 예를 들어, 네트워크 사용량이 일정 시간 동안 임계값 이하로 유지될 경우, 경보가 발령됩니다.
    6. 경보 메뉴의 알림 섹션을 열고 경보 알림 채널을 작성하거나 선택하십시오.
    7. 경보를 저장하십시오.
    8. 클러스터에 배치된 모든 앱에 대해 이 단계를 반복하십시오.
    9. 수동으로 경보를 트리거하도록 구성한 임계값을 편집하여 작성한 경보를 테스트하십시오. 예를 들어, 팟(Pod)에서 수행한 네트워크 요청 수가 5분 동안 3/s 미만인 경우 경보를 설정하면 경보 임계값을 5분 동안 관찰한 임계값 미만으로 편집하고 at least once 옵션을 선택하십시오.
    10. 경보가 5분 후에 트리거되는지 확인하십시오. 경보를 확인한 후 즉시 이전에 구성한 값으로 값을 재설정하십시오.
  6. 클러스터에서 실행되는 앱에 대한 팟(Pod) 가용성 경보를 작성하십시오.

    1. IBM Cloud Monitoring 콘솔에서 ‘ 개요 ’ > ‘ 작업량 ’을 클릭합니다.
    2. 앱이 배치된 네임스페이스를 선택하십시오. 앱을 찾고, 앱에서 화살표 아이콘을 클릭하고, Kubernetes 팟(Pod) 개요를 선택하십시오.
    3. 팟(Pod) 상태 섹션에서 팟(Pod) 가용성 타일을 검토하십시오.
    4. 임계값을 판별하려면 마지막 1일, 1주 시간 창에서 팟(Pod)을 통한 평균 팟(Pod) 가용성을 검토하십시오.
    5. 요청된 복제본 수에 적합한 앱 구성 파일을 검토하십시오. 사용 가능한 팟(Pod) 수가 앱에 대해 요청된 복제본 수보다 적은 경우 경보를 보내기 위해 임계값으로 이 수를 사용할 수 있습니다. 앱에 대한 3개의 복제본을 요청한 경우 사용 가능한 팟(Pod)의 수가 특정 시간 동안(예를 들면, 30분의 지속 시간) 요청된 복제본 수보다 적게 유지되면 경보를 설정할 수 있습니다. 이 예에서 팟(Pod) 가용성이 요청된 3개의 복제본보다 더 적은 수로 유지되면 경보가 트리거됩니다.
    6. 팟(Pod) 고가용성 타일에서 옵션 메뉴를 클릭한 후 경보 작성을 클릭하여 경보를 작성하십시오. 관찰한 임계값 및 요청된 앱 복제본을 기반으로 경보 매개변수를 설정하십시오.
    7. 경보 메뉴의 알림 섹션을 열고 경보 알림 채널을 작성하거나 선택하십시오.
    8. 경보를 저장하십시오.
    9. 클러스터에 배치된 모든 앱에 대해 이 단계를 반복하십시오.
    10. 수동으로 경보를 트리거하도록 구성한 임계값을 편집하여 작성한 경보를 테스트하십시오. 예를 들어, 사용 가능한 팟(Pod)의 수가 5분 동안 3 미만인 경우 팟(Pod) 가용성 경보를 설정하면 경보 임계값을 5분 동안 4개의 팟(Pod) 미만으로 편집하고 at least once 옵션을 선택하십시오.
    11. 경보가 5분 후에 트리거되는지 확인하십시오. 경보를 확인한 후 즉시 이전에 구성한 값으로 값을 재설정하십시오.

IBM Cloud Monitoring 경보가 트리거될 때 지속적 스토리지 문제점 해결

경보가 트리거되면 IBM Cloud Monitoring에서 경보 세부사항을 검토하고 지속적 스토리지, 앱, 작업자 및 클러스터에 대한 문제점 해결 안내서를 검토하여 경보의 근본 원인을 파악하십시오. 설정한 경보는 스토리지 볼륨 문제가 아닌 앱, 작업자 노드 또는 클러스터에서 발생한 문제와 관련이 있을 수 있습니다.