Block Storage for Classic 장애 디버깅

Block Storage for Classic를 디버그하는 옵션을 검토하고 실패의 근본 원인을 찾으십시오.

스토리지 인스턴스를 마운트하는 팟(Pod)이 성공적으로 배치되었는지 확인

단계에 따라 팟(Pod) 배치와 관련된 오류 메시지를 검토하십시오.

  1. 클러스터 내의 팟(Pod)을 나열하십시오. 팟(Pod)의 상태가 실행 중이면 팟(Pod)이 프로비저닝된 것입니다.

    oc get pods
    
  2. 팟(Pod)의 세부사항을 가져오고 CLI 출력의 Events 섹션에 표시되는 오류 메시지를 검토하십시오.

    oc describe pod <pod_name>
    
  3. 팟(Pod)에 대한 로그를 검색하고 오류 메시지를 검토하십시오.

    oc logs <pod_name>
    
  4. 공통 오류를 해결하기 위한 단계는 Block Storage for Classic 문제점 해결 문서를 검토하십시오.

앱 팟(Pod) 다시 시작

일부 문제는 팟(Pod)을 다시 시작하고 다시 배치하여 해결할 수 있습니다. 단계에 따라 특정 팟(Pod)을 다시 배치하십시오.

  1. 팟(Pod)이 배치의 일부인 경우에는 팟(Pod)을 삭제하고 배치를 다시 빌드하십시오. 팟(Pod)이 배치의 일부가 아닌 경우 팟(Pod)을 삭제하고 팟(Pod) 구성 파일을 다시 적용하십시오.

    1. 팟(Pod)을 삭제하십시오.
        oc delete pod <pod_name>
        ```
        출력 예
        ```sh {: screen}
        pod "nginx" deleted
        ```
    2. 구성 파일을 재적용하여 팟(Pod)을 재배치하십시오.
    ```sh {: pre}
        oc apply -f <app.yaml>
        ```
        출력 예
        ```sh {: pre}
        pod/nginx created
        ```
    
  2. 팟(Pod)을 다시 시작해도 문제가 해결되지 않으면 작업자 노드를 다시 로드하십시오.

  3. 최신 IBM Cloud 및 IBM Cloud Kubernetes Service 플러그인 버전을 사용하는지 확인하십시오.

    ibmcloud update
    
    ibmcloud plugin repo-plugins
    
    ibmcloud plugin update
    

스토리지 드라이버 및 플러그인 팟(Pod)이 Running 상태를 표시하는지 확인

단계에 따라 스토리지 드라이버 및 플러그인 팟(Pod)의 상태를 확인하고 오류 메시지를 검토하십시오.

  1. kube-system 프로젝트에 있는 팟(Pod)을 나열하십시오.

    oc get pods -n kube-system
    
  2. 스토리지 드라이버 및 플러그인 팟(Pod)이 실행 중 상태를 표시하지 않으면 팟(Pod)에 대한 세부사항을 가져와서 근본 원인을 찾으십시오. 팟(pod)의 상태에 따라 다음 명령이 실패할 수 있습니다.

    1. 드라이버 팟(Pod)에서 실행되는 컨테이너의 이름을 가져오십시오.
        kubectl describe pod POD_NAME -n kube-system
        ```
    2. 로컬 머신의 드라이버 팟(Pod)에서 `logs.txt` 파일로 로그를 내보내십시오.
    
    ```sh {: pre}
        oc logs <pod_name> -n kube-system > logs.txt
        ```
    3. 로그 이름을 검토하십시오.
    
    ```sh {: pre}
        cat logs.txt
        ```
    
    
  3. 스토리지 드라이버 및 플러그인 팟(Pod)이 실행 중 상태를 표시하지 않으면 팟(Pod)에 대한 세부사항을 가져와서 근본 원인을 찾으십시오. 팟(Pod)의 상태에 따라 다음 명령을 모두 실행하지 못할 수 있습니다.

    1. 드라이버 팟(Pod)에서 실행되는 컨테이너의 이름을 가져오십시오.
        kubectl get pod ibm-vpc-block-csi-controller-0 -n kube-system -o jsonpath="{.spec['containers','initContainers'][*].name}" | tr -s '[[:space:]]' '\n'
        ```
        **Block Storage for VPC에 대한 출력 예**
        ```sh {: screen}
        csi-provisioner
        csi-attacher
        liveness-probe
        iks-vpc-block-driver
        ```
    2. 컨테이너 로그를 드라이버 팟(Pod)에서 로컬 시스템의 `logs.txt` 파일로 내보내십시오.
    ```sh {: pre}
        oc logs <pod_name> -n kube-system -c <container_name> > logs.txt
        ```
    
  4. 최신 로그에서 오류 메시지를 확인하십시오. 공통 오류를 해결하기 위한 단계는 Block Storage for Classic 문제점 해결 문서를 검토하십시오.

PVC가 성공적으로 프로비저닝되었는지 확인

단계에 따라 PVC의 상태를 확인하고 오류 메시지를 검토하십시오.

  1. PVC의 상태를 확인하십시오. PVC의 상태가 바인딩됨이면 PVC가 프로비저닝된 것입니다.

    oc get pvc
    
    • PVC가 Bound상태를 표시하는 경우에는 PVC가 성공적으로 프로비저닝된 것입니다.

      출력 예

      NAME         STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS                AGE
      silver-pvc   Bound     pvc-4b881a6b-ada8-4a44-b568-fe909107d756   24Gi       RWX            ibmc-file-silver            7m29s
      
    • PVC 상태가 Pending을 표시하는 경우에는 PVC의 세부사항을 표시하고 출력의 Events 섹션에서 경고 또는 오류 메시지가 있는지 검토하십시오. 볼륨 바인딩 모드가 WaitForFirstConsumer로 설정된 스토리지 클래스를 참조하는 PVC는 해당 PVC를 사용하는 앱 팟(Pod)이 배치될 때까지 Pending 상태로 유지된다는 점을 참고하십시오.

      oc describe pvc <pvc_name>
      

      출력 예

      Name:          local-pvc
      Namespace:     default
      StorageClass:  sat-local-file-gold
      Status:        Pending
      Volume:        
      Labels:        <none>
      Annotations:   <none>
      Finalizers:    [kubernetes.io/pvc-protection]
      Capacity:      
      Access Modes:  
      VolumeMode:    Filesystem
      Mounted By:    <none>
      Events:
      Type     Reason              Age                 From                         Message
      ----     ------              ----                ----                         -------
      Warning  ProvisioningFailed  60s (x42 over 11m)  persistentvolume-controller  storageclass.storage.k8s.io "sat-local-file-gold" not found
      
  2. 공통 오류를 해결하기 위한 단계는 Block Storage for Classic 문제점 해결 문서를 검토하십시오.

oc CLI 버전 확인 및 업데이트

클러스터의 최소 major.minor 버전과 일치하지 않는 oc CLI 버전을 사용하는 경우 예상치 못한 결과가 발생할 수 있습니다. 예를 들어, 서버 버전과 2개 이상의 버전 차이가 나는(n ± 2) Kubernetes 지원하지 않습니다 oc 클라이언트 버전입니다.

  1. 로컬 시스템에서 실행하는 oc CLI 버전이 클러스터에 설치된 Kubernetes 버전과 일치하는지 확인하십시오. 클러스터 및 로컬 시스템에 설치된 oc CLI 버전을 표시하십시오.

    oc version
    

    출력 예:

    Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.35", GitCommit:"641856db18352033a0d96dbc99153fa3b27298e5", GitTreeState:"clean", BuildDate:"2019-03-25T15:53:57Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"darwin/amd64"}
    Server Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.35+IKS", GitCommit:"e15454c2216a73b59e9a059fd2def4e6712a7cf0", GitTreeState:"clean", BuildDate:"2019-04-01T10:08:07Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
    

    CLI 버전은 클라이언트 및 서버의 GitVersion에서 동일한 버전을 볼 수 있는 경우 일치합니다. 서버용 버전의 +IKS 부분을 무시할 수 있습니다.

  2. 로컬 컴퓨터와 클러스터의 oc CLI 버전이 일치하지 않는 경우, 클러스터를 업데이트하거나 로컬 컴퓨터에 다른 버전의 CLI를 설치하십시오.

Block Storage for Classic 드라이버 확인 및 업데이트

  1. Block Storage for VPC의 경우, Block Storage for VPC 클러스터 추가 기능의 최신 버전이 있는지 확인하십시오.

  2. 클래식 클러스터에 있는 Block Storage for Classic의 경우에는 플러그인을 위한 최신 Helm 차트 버전을 설치했는지 확인하십시오.

    1. Helm 차트 저장소를 업데이트하십시오.
        helm repo update
        ```
    2. 저장소에 Helm 차트를 나열하십시오.
    ```sh {: pre}
        helm search repo iks-charts | grep block-storage-plugin
        ```
        출력 예
        ```sh {: screen}
        iks-charts-stage/ibmcloud-block-storage-plugin    1.5.0                                                        A Helm chart for installing ibmcloud block storage plugin   
        iks-charts/ibmcloud-block-storage-plugin          1.5.0                                                        A Helm chart for installing ibmcloud block storage plugin   
        ```
    3. 클러스터에 설치된 Helm 차트를 나열하고 설치한 버전을 사용 가능한 버전과 비교하십시오.
    ```sh {: pre}
        helm list --all-namespaces
        ```
    4. 최신 버전이 사용 가능한 경우 이 버전을 설치하십시오. 지시사항은 [IBM Cloud Block Storage 플러그인 업데이트](/docs/openshift?topic=openshift-vpc-block#vpc-addon-update)를 참조하십시오.