IBM Cloud Object Storage 장애 디버깅
Object Storage를 디버그하는 옵션을 검토하고 실패의 근본 원인을 찾으십시오.
스토리지 인스턴스를 마운트하는 팟(Pod)이 성공적으로 배치되었는지 확인
단계에 따라 팟(Pod) 배치와 관련된 오류 메시지를 검토하십시오.
-
클러스터 내의 팟(Pod)을 나열하십시오. 팟(Pod)의 상태가 실행 중이면 팟(Pod)이 프로비저닝된 것입니다.
oc get pods -
팟(Pod)의 세부사항을 가져오고 CLI 출력의 Events 섹션에 표시되는 오류 메시지를 검토하십시오.
oc describe pod <pod_name> -
팟(Pod)에 대한 로그를 검색하고 오류 메시지를 검토하십시오.
oc logs <pod_name>
앱 팟(Pod) 다시 시작
일부 문제는 팟(Pod)을 다시 시작하고 다시 배치하여 해결할 수 있습니다. 단계에 따라 특정 팟(Pod)을 다시 배치하십시오.
-
팟(Pod)이 배치의 일부인 경우에는 팟(Pod)을 삭제하고 배치를 다시 빌드하십시오. 팟(Pod)이 배치의 일부가 아닌 경우 팟(Pod)을 삭제하고 팟(Pod) 구성 파일을 다시 적용하십시오.
- 팟(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 ``` -
팟(Pod)을 다시 시작해도 문제가 해결되지 않으면 작업자 노드를 다시 로드하십시오.
-
최신 IBM Cloud 및 IBM Cloud Kubernetes Service 플러그인 버전을 사용하는지 확인하십시오.
ibmcloud updateibmcloud plugin repo-pluginsibmcloud plugin update
스토리지 드라이버 및 플러그인 팟(Pod)이 Running 상태를 표시하는지 확인
단계에 따라 스토리지 드라이버 및 플러그인 팟(Pod)의 상태를 확인하고 오류 메시지를 검토하십시오.
-
kube-system프로젝트에 있는 팟(Pod)을 나열하십시오.oc get pods -n kube-system -
스토리지 드라이버 및 플러그인 팟(Pod)이 실행 중 상태를 표시하지 않으면 팟(Pod)에 대한 세부사항을 가져와서 근본 원인을 찾으십시오. 팟(pod)의 상태에 따라 다음 명령이 실패할 수 있습니다.
- 드라이버 팟(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 ``` -
최신 로그에서 오류 메시지를 확인하십시오. 공통 오류를 해결하기 위한 단계는 Object Storage 문제점 해결 문서를 검토하십시오.
PVC가 성공적으로 프로비저닝되었는지 확인
단계에 따라 PVC의 상태를 확인하고 오류 메시지를 검토하십시오.
-
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
-
-
공통 Object Storage PVC 오류를 해결하기 위한 단계는 Object Storage 문제점 해결 문서를 검토하십시오.
oc CLI 버전 확인 및 업데이트
클러스터의 최소 major.minor 버전과 일치하지 않는 oc CLI 버전을 사용하는 경우 예상치 못한 결과가 발생할 수 있습니다. 예를 들어, 서버 버전과 2개 이상의 버전 차이가 나는(n ± 2) Kubernetes 지원하지 않습니다 oc 클라이언트 버전입니다.
-
로컬 시스템에서 실행하는
ocCLI 버전이 클러스터에 설치된 Kubernetes 버전과 일치하는지 확인하십시오. 클러스터 및 로컬 시스템에 설치된ocCLI 버전을 표시하십시오.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부분을 무시할 수 있습니다. -
로컬 컴퓨터와 클러스터의
ocCLI 버전이 일치하지 않는 경우, 클러스터를 업데이트하거나 로컬 컴퓨터에 다른 버전의 CLI를 설치하십시오.
Object Storage 플러그인 확인 및 업데이트
드라이버 로그 및 설치된 드라이버 버전 확인
드라이버 로그를 확인하고 Object Storage 설치의 드라이버 버전을 보려면 다음 단계를 수행하십시오.
- kube-system 네임스페이스에 있는 파드를 나열합니다.
kubectl get pods -n kube-system -o wide -l app=ibmcloud-object-storage-driver - 포드의 로그를 확인해 보세요.
kubectl -n kube-system exec -it -- cat /host/log/ibmc-s3fs.log
Helm 차트 업데이트
이전 버전에서 Helm 차트를 업데이트하려면 다음 단계를 수행하십시오.
-
현재 설치된 ‘ Helm ’ 차트를 제거하십시오.
helm ls --all --all-namespaceshelm uninstall <helm_chart_name> -n <helm_chart_namespace> -
Helm 저장소를 추가하고 업데이트하십시오.
helm repo add ibm-helm https://raw.githubusercontent.com/IBM/charts/master/repo/ibm-helmhelm repo update -
새로운 ‘ Helm ’ 차트를 설치하세요.
helm plugin uninstall ibmc helm fetch --untar ibm-helm/ibm-object-storage-plugin && cd ibm-object-storage-plugin helm plugin install ./ibm-object-storage-plugin/helm-ibmc helm ibmc --help