지속적 스토리지 실패 디버깅
지속적 스토리지를 디버그하기 위한 옵션을 검토하고 실패의 근본 원인을 찾습니다.
스토리지 인스턴스를 마운트하는 팟(Pod)이 성공적으로 배치되었는지 확인
-
클러스터 내의 팟(Pod)을 나열하십시오. 팟(Pod)의 상태가 실행 중이면 팟(Pod)이 프로비저닝된 것입니다.
oc get pods -
팟(Pod)에 대한 세부사항을 가져와서 오류가 CLI 출력의 이벤트 섹션에 표시되어 있는지 여부를 확인하십시오.
oc describe pod <pod_name> -
앱의 로그를 검색하고 오류 메시지를 볼 수 있는지 여부를 확인하십시오.
oc logs <pod_name>
앱 팟(Pod) 다시 시작
-
팟(Pod)이 배치의 일부인 경우에는 팟(Pod)을 삭제하고 배치를 다시 빌드하십시오. 팟(Pod)이 배치의 일부가 아닌 경우 팟(Pod)을 삭제하고 팟(Pod) 구성 파일을 다시 적용하십시오.
oc delete pod <pod_name>oc apply -f <app.yaml> -
팟(Pod)을 다시 시작해도 문제가 해결되지 않으면 작업자 노드를 다시 로드하십시오.
-
최신 IBM Cloud 및 IBM Cloud Kubernetes Service 플러그인 버전을 사용하는지 확인하십시오.
ibmcloud updateibmcloud plugin repo-plugins
스토리지 드라이버 및 플러그인 팟(Pod)이 Running 상태를 표시하는지 확인
kube-system프로젝트에 있는 팟(Pod)을 나열하십시오.oc get pods -n kube-system- 스토리지 드라이버 및 플러그인 팟(Pod)이 실행 중 상태를 표시하지 않으면 팟(Pod)에 대한 세부사항을 가져와서 근본 원인을 찾으십시오. 팟(Pod)의 상태에 따라 다음 명령을 모두 실행하지 못할 수 있습니다.
- 드라이버 팟(Pod)에서 실행되는 컨테이너의 이름을 가져오십시오.
kubectl get pod <pod_name> -n kube-system -o jsonpath="{.spec['containers','initContainers'][*].name}" | tr -s '[[:space:]]' '\n' ``` 세 개의 컨테이너가 사용된 Block Storage for VPC의 출력 예: ```sh {: screen} csi-provisioner csi-attacher iks-vpc-block-driver ``` Block Storage for Classic의 출력 예: ```sh {: pre} ibmcloud-block-storage-driver-container ``` 2. 로컬 머신의 드라이버 팟(Pod)에서 `logs.txt` 파일로 로그를 내보내십시오. 드라이버 컨테이너 이름을 포함하십시오. ```sh {: pre} oc logs <pod_name> -n kube-system -c <container_name> > logs.txt ``` 3. 로그 이름을 검토하십시오. ```sh {: pre} cat logs.txt ``` - ** 명령 CLI 출력의 **이벤트
oc describe pod섹션 및 최신 로그를 분석하여 오류에 대한 근본 원인을 찾으십시오.
PVC가 성공적으로 프로비저닝되었는지 확인
-
PVC의 상태를 확인하십시오. PVC의 상태가 바인딩됨이면 PVC가 프로비저닝된 것입니다.
oc get pvc -
PVC의 상태가 보류 중이면 오류를 검색하여 PVC가 보류 중인 이유를 알아보십시오.
oc describe pvc <pvc_name> -
PVC 작성 중에 발생할 수 있는 공통 오류를 검토하십시오.
-
PVC를 앱에 마운트할 때 발생할 수 있는 공통 오류를 검토하십시오.
-
로컬 머신에서 실행되는
kubectlCLI 버전이 클러스터에 설치된 Kubernetes 버전과 일치하는지 확인하십시오. 클러스터의 최소 major.minor 버전과 일치하는kubectlCLI 버전을 사용하는 경우 예상치 못한 결과가 발생할 수 있습니다. 예를 들어, [ Kubernetes 은 서버 버전(n ± 2)과 2개 이상의 버전 차이가 나는kubectl클라이언트 버전을 지원하지 않습니다.- 클러스터 및 로컬 머신에 설치된
kubectlCLI 버전을 표시하십시오.
oc version ``` 출력 예 ```sh {: screen} Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.36", 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.36+IKS", GitCommit:"e15454c2216a73b59e9a059fd2def4e6712a7cf0", GitTreeState:"clean", BuildDate:"2019-04-01T10:08:07Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"} ``` CLI 버전은 클라이언트 및 서버의 `GitVersion`에서 동일한 버전을 볼 수 있는 경우 일치합니다. 서버용 버전의 `+IKS` 부분을 무시할 수 있습니다. 2. 로컬 시스템과 클러스터의 `kubectl` CLI 버전이 일치하지 않으면, [클러스터를 업데이트](/docs/openshift?topic=openshift-update)하거나 [로컬 시스템에 다른 CLI 버전을 설치](/docs/openshift?topic=openshift-cli-install)하십시오. - 클러스터 및 로컬 머신에 설치된
-
Block Storage for VPC의 경우, 추가 기능의 최신 버전을 갖고 있는지 확인하십시오.
-
클래식 블록 스토리지, 오브젝트 스토리지 및 Portworx만 해당: 플러그인에 적합한 최신 Helm 차트 버전을 설치했는지 확인하십시오.
블록 및 오브젝트 스토리지:
1. Helm 차트 저장소를 업데이트하십시오.
```sh {: pre}
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
```
**오브젝트 스토리지의 경우**:
```sh {: pre}
helm search repo ibm-charts | grep object-storage-plugin
```
출력 예
```sh {: screen}
ibm-charts/ibm-object-storage-plugin 1.0.9 1.0.9 A Helm chart for installing ibmcloud object storage plugin
```
3. 클러스터에 설치된 Helm 차트를 나열하고 설치한 버전을 사용 가능한 버전과 비교하십시오.
```sh {: pre}
helm list --all-namespaces
```
4. 최신 버전이 사용 가능한 경우 이 버전을 설치하십시오. 지시사항은 [IBM Cloud 블록 스토리지 플러그인 업데이트](/docs/openshift?topic=openshift-vpc-block#vpc-addon-update) 및 [IBM Cloud Object Storage 플러그인 업데이트](/docs/openshift?topic=openshift-storage_cos_install#update_cos_plugin)를 참조하십시오.
Portworx
-
사용 가능한 최신 버전의 ‘ Helm ’ 차트를 찾아보세요.
-
클러스터에 설치된 Helm 차트를 나열하고 설치한 버전을 사용 가능한 버전과 비교하십시오.
helm list --all-namespaces -
최신 버전이 사용 가능한 경우 이 버전을 설치하십시오. 지시사항은 클러스터에서 Portworx 업데이트를 참조하십시오.
OpenShift Data Foundation
ODF 리소스의 세부사항을 설명하고 명령 출력에 오류 메시지가 있는지 검토하십시오.
- ODF 클러스터의 이름을 나열하십시오.
출력 예:oc get ocsclusterNAME AGE ocscluster-vpc 71d - 스토리지 클러스터에 대해 설명하고 출력의
Events섹션에서 오류 메시지가 있는지 검토하십시오.oc describe ocscluster <ocscluster-name> kube-system네임스페이스에 있는 팟(Pod)을 나열하고Running상태인지 확인하십시오.oc get pods -n kube-systemibm-ocs-operator-controller-manager팟(Pod)에 대해 설명하고 출력의Events섹션에서 오류 메시지가 있는지 검토하십시오.oc describe pod <ibm-ocs-operator-controller-manager-a1a1a1a> -n kube-systemibm-ocs-operator-controller-manager의 로그를 검토하십시오.oc logs <ibm-ocs-operator-controller-manager-a1a1a1a> -n kube-system- NooBaa에 대해 설명하고 출력의
Events섹션에서 오류 메시지를 검토하십시오.oc describe noobaa -n openshift-storage