除錯 OpenShift Data Foundation 失敗
檢閱用於對 ODF 進行除錯的選項,並尋找任何失敗的主要原因。
檢查掛載您的儲存實例的Pod是否部署成功
請遵循步驟來檢閱與 Pod 部署相關的任何錯誤訊息。
-
列出叢集裡的 Pod。 如果 Pod 顯示的狀態為 Running,則 Pod 已順利部署。
oc get pods
-
取得 Pod 的詳細資訊並查看 CLI 輸出的 「事件」 部分中顯示的任何錯誤訊息。
oc describe pod <pod_name>
-
擷取 Pod 的日誌,並檢閱任何錯誤訊息。
oc logs <pod_name>
重新啟動應用程式 Pod
透過重新啟動並重新部署 Pod,可以解決部分問題。 遵循步驟以重新部署特定 Pod。
-
如果您的 Pod 是部署的一部分,請刪除 Pod 並讓部署重建它。 如果 Pod 不是部署的一部分,請刪除 Pod 並重新套用 Pod 配置檔。
- 刪除 Pod。
輸出範例oc delete pod <pod_name>
pod "nginx" deleted
- 重新套用配置檔以重新部署 Pod。
輸出範例oc apply -f <app.yaml>
pod/nginx created
- 刪除 Pod。
-
如果重新啟動 Pod 無法解決問題,請 重新載入工作者節點。
-
驗證是否使用的是最新的 IBM Cloud 和 IBM Cloud Kubernetes Service 外掛程式版本。
ibmcloud update
ibmcloud plugin repo-plugins
ibmcloud plugin update
驗證儲存驅動程式和插件 Pod 是否顯示 「正在運行」 狀態
遵循步驟來檢查儲存體驅動程式及外掛程式 Pod 的狀態,並檢閱任何錯誤訊息。
-
列出
kube-system
項目中的 Pod。oc get pods -n kube-system
-
如果儲存體驅動程式及外掛程式 Pod 未顯示 執行中 狀態,請取得 Pod 的更多詳細資料,以尋找主要原因。 視 Pod 的狀態而定,下列指令可能會失敗。
-
取得在驅動程式 Pod 中執行的容器名稱。
kubectl describe pod <pod_name> -n kube-system
-
將日誌從驅動程式 Pod 匯出至本端機器上的
logs.txt
檔案。oc logs <pod_name> -n kube-system > logs.txt
-
請檢閱日誌檔。
cat logs.txt
-
-
請檢查最新日誌,以取得任何錯誤訊息。 請檢閱 ODF 疑難排解文件,以取得解決一般錯誤的步驟。
檢查並更新 oc CLI 版本
如果您使用的 oc
CLI 版本至少與叢集的major.minor版本不匹配,您可能會遇到意外結果。 例如,Kubernetes不支援與伺服器版本相差 2 個或更多版本 (n +/- 2) 的 oc
用戶端版本。
-
驗證您在本機電腦上執行的
oc
CLI 版本是否與叢集中安裝的Kubernetes版本相符。 顯示在叢集和本機電腦中安裝的oc
CLI 版本。oc version
輸出範例:
Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.31", 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.31+IKS", GitCommit:"e15454c2216a73b59e9a059fd2def4e6712a7cf0", GitTreeState:"clean", BuildDate:"2019-04-01T10:08:07Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
如果在
GitVersion
中看到用戶端和伺服器的版本相同,表示 CLI 版本相符。 可以忽略伺服器版本中的+IKS
部分。 -
如果本機上的
oc
CLI 版本與叢集不匹配,請更新叢集或 在本機上安裝不同的 CLI 版本。
對 ODF 資源進行除錯
說明 ODF 資源,並檢閱任何錯誤訊息的指令輸出。
-
列出 ODF 叢集的名稱。
oc get ocscluster
輸出範例:
NAME AGE ocscluster-vpc 71d
-
說明儲存體叢集,並檢閱輸出的
Events
區段,以找出任何錯誤訊息。oc describe ocscluster <ocscluster-name>
-
列出
kube-system
名稱空間中的 ODF Pod,並驗證它們是否為Running
。oc get pods -n kube-system
輸出範例
NAME READY STATUS RESTARTS AGE ibm-keepalived-watcher-5g2gs 1/1 Running 0 7d21h ibm-keepalived-watcher-8l4ld 1/1 Running 0 7d21h ibm-keepalived-watcher-mhkh5 1/1 Running 0 7d21h ibm-master-proxy-static-10.240.128.10 2/2 Running 0 71d ibm-master-proxy-static-10.240.128.11 2/2 Running 0 71d ibm-master-proxy-static-10.240.128.12 2/2 Running 0 71d ibm-ocs-operator-controller-manager-55667f4d68-md4zb 1/1 Running 8 15d ibm-vpc-block-csi-controller-0 4/4 Running 0 48d ibm-vpc-block-csi-node-6gnwv 3/3 Running 0 48d ibm-vpc-block-csi-node-j2h62 3/3 Running 0 48d ibm-vpc-block-csi-node-xpwpf 3/3 Running 0 48d vpn-5b8694cdb-pll6z
-
說明
ibm-ocs-operator-controller-manager
Pod,並檢閱輸出中的Events
區段,以取得任何錯誤訊息。oc describe pod <ibm-ocs-operator-controller-manager-a1a1a1a> -n kube-system
-
檢閱
ibm-ocs-operator-controller-manager
的日誌。oc logs <ibm-ocs-operator-controller-manager-a1a1a1a> -n kube-system
-
說明 NooBaa,並檢閱輸出的
Events
區段,以取得任何錯誤訊息。oc describe noobaa -n openshift-storage
-
說明
ibm-storage-metrics-agent
Pod,並檢閱輸出中的Events
區段,以取得任何錯誤訊息。oc get pods -n kube-system -l name=ibm-storage-metrics-agent
NAME READY STATUS RESTARTS AGE ibm-storage-metrics-agent-8685869cc6-79qzq
-
檢閱
ibm-storage-metrics-agent
中的日誌。oc logs ibm-storage-metrics-agent-xxx -n kube-system
-
說明
ocscluster
,並檢閱錯誤訊息的輸出。oc describe ocscluster <ocscluster-name> -n openshift-storage
-
使用
oc adm must-gather
指令來收集叢集的相關資料。oc adm must-gather --image=registry.redhat.io/ocs4/ocs-must-gather-rhel8:latest --dest-dir=ocs_mustgather
-
對於使用工作者節點上本端磁區的標準叢集或 Satellite 叢集,請確保工作者節點上存在用於
osd-device-path
及mon-device-path
參數之磁區的disk-by-id
。 如需如何擷取這些磁區 ID 的相關資訊,請參閱 收集裝置詳細資料