IBM Cloud File Storage for Classic 장애 디버깅
File Storage for Classic를 디버그하는 옵션을 검토하고 실패의 근본 원인을 찾으십시오.
스토리지 인스턴스를 마운트하는 팟(Pod)이 성공적으로 배치되었는지 확인
단계에 따라 팟(Pod) 배치와 관련된 오류 메시지를 검토하십시오.
-
클러스터 내의 팟(Pod)을 나열하십시오. 팟(Pod)의 상태가 실행 중이면 팟(Pod)이 프로비저닝된 것입니다.
kubectl get pods -
팟(Pod)의 세부사항을 가져오고 CLI 출력의 Events 섹션에 표시되는 오류 메시지를 검토하십시오.
kubectl describe pod <pod_name> -
팟(Pod)에 대한 로그를 검색하고 오류 메시지를 검토하십시오.
kubectl logs <pod_name> -
일반적인 오류를 해결하는 단계는 File Storage for Classic 문제 해결 문서를 검토하십시오.
앱 팟(Pod) 다시 시작
일부 문제는 팟(Pod)을 다시 시작하고 다시 배치하여 해결할 수 있습니다. 단계에 따라 특정 팟(Pod)을 다시 배치하십시오.
-
팟(Pod)이 배치의 일부인 경우에는 팟(Pod)을 삭제하고 배치를 다시 빌드하십시오. 팟(Pod)이 배치의 일부가 아닌 경우 팟(Pod)을 삭제하고 팟(Pod) 구성 파일을 다시 적용하십시오.
- 팟(Pod)을 삭제하십시오.
kubectl delete pod <pod_name> ``` 출력 예 ```sh {: screen} pod "nginx" deleted ``` 2. 구성 파일을 재적용하여 팟(Pod)을 재배치하십시오. ```sh {: pre} kubectl apply -f <app.yaml> ``` 출력 예 ```sh {: pre} pod/nginx created ``` -
팟(Pod)을 다시 시작해도 문제가 해결되지 않으면 작업자 노드를 다시 로드하십시오.
-
최신 IBM Cloud 및 IBM Cloud Kubernetes Service 플러그인 버전을 사용하는지 확인하십시오.
ibmcloud updateibmcloud plugin repo-pluginsibmcloud plugin update
스토리지 드라이버 및 플러그인 팟(Pod)이 Running 상태를 표시하는지 확인
단계에 따라 스토리지 드라이버 및 플러그인 팟(Pod)의 상태를 확인하고 오류 메시지를 검토하십시오.
-
kube-system네임스페이스에 팟(Pod)을 나열하십시오.kubectl get pods -n kube-system -
스토리지 드라이버 및 플러그인 팟(Pod)이 실행 중 상태를 표시하지 않으면 팟(Pod)에 대한 세부사항을 가져와서 근본 원인을 찾으십시오. 팟(pod)의 상태에 따라 다음 명령이 실패할 수 있습니다.
- 드라이버 팟(Pod)에서 실행되는 컨테이너의 이름을 가져오십시오.
kubectl describe pod POD_NAME -n kube-system ``` 2. 로컬 머신의 드라이버 팟(Pod)에서 `logs.txt` 파일로 로그를 내보내십시오. ```sh {: pre} kubectl logs <pod_name> -n kube-system > logs.txt ``` 3. 로그 이름을 검토하십시오. ```sh {: pre} cat logs.txt ``` -
최신 로그에서 오류 메시지를 확인하십시오. 일반적인 오류를 해결하는 단계는 File Storage for Classic 문제 해결 문서를 검토하십시오.
PVC가 성공적으로 프로비저닝되었는지 확인
단계에 따라 PVC의 상태를 확인하고 오류 메시지를 검토하십시오.
-
PVC의 상태를 확인하십시오. PVC의 상태가 바인딩됨이면 PVC가 프로비저닝된 것입니다.
kubectl 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 상태로 유지된다는 점을 참고하십시오.kubectl 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
-
-
일반적인 File Storage for Classic PVC 오류를 해결하는 단계는 File Storage for Classic 문제 해결 문서를 검토하십시오.
kubectl CLI 버전 확인 및 업데이트
클러스터의 최소 major.minor 버전과 일치하는 kubectl CLI 버전을 사용하는 경우 예상치 못한 결과가 발생할 수 있습니다. 예를 들어, 서버 버전과 2개 이상의 버전 차이가 나는(n ± 2) Kubernetes 지원하지 않습니다 kubectl 클라이언트 버전입니다.
-
로컬 머신에서 실행되는
kubectlCLI 버전이 클러스터에 설치된 Kubernetes 버전과 일치하는지 확인하십시오. 클러스터 및 로컬 머신에 설치된kubectlCLI 버전을 표시하십시오.kubectl 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부분을 무시할 수 있습니다. -
로컬 컴퓨터와 클러스터의
kubectlCLI 버전이 일치하지 않는 경우, 클러스터를 업데이트하거나 로컬 컴퓨터에 다른 버전의 CLI를 설치하십시오.