Portworx 장애 디버깅
Portworx를 디버그하기 위한 옵션을 검토하고 실패의 근본 원인을 찾습니다.
스토리지 인스턴스를 마운트하는 팟(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
Portworx 스토리지 드라이버 및 플러그인 팟(Pod)이 Running 상태를 표시하는지 확인
단계에 따라 스토리지 드라이버 및 플러그인 팟(Pod)의 상태를 확인하고 오류 메시지를 검토하십시오.
kube-system프로젝트에 있는 팟(Pod)을 나열하십시오.
출력 예:oc get pods -n kube-system | grep `portworx\|stork`portworx-594rw 1/1 Running 0 20h portworx-rn6wk 1/1 Running 0 20h portworx-rx9vf 1/1 Running 0 20h stork-6b99cf5579-5q6x4 1/1 Running 0 20h stork-6b99cf5579-slqlr 1/1 Running 0 20h stork-6b99cf5579-vz9j4 1/1 Running 0 20h stork-scheduler-7dd8799cc-bl75b 1/1 Running 0 20h stork-scheduler-7dd8799cc-j4rc9 1/1 Running 0 20h stork-scheduler-7dd8799cc-knjwt 1/1 Running 0 20h- 스토리지 드라이버 및 플러그인 팟(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 ``` - 최신 로그에서 오류 메시지를 확인하십시오. 공통 오류를 해결하기 위한 단계는 Portworx 문제점 해결 문서를 검토하십시오.
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를 설치하십시오.
Heml 차트 업데이트
-
최신 Helm 차트 버전을 찾으십시오.
-
클러스터에서 설치된 Helm 차트를 나열하고 사용자가 설치한 버전을 최신 버전과 비교하십시오.
helm list --all-namespaces -
최신 버전을 사용할 수 있는 경우 새 버전을 설치하십시오. 지시사항은 클러스터에서 Portworx 업데이트를 참조하십시오.