除錯 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> ``` 輸出範例 ```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 的狀態顯示為「執行中」
遵循步驟來檢查儲存體驅動程式及外掛程式 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 ``` -
請檢查最新日誌,以取得任何錯誤訊息。 請檢閱 ODF 疑難排解文件,以取得解決一般錯誤的步驟。
檢查並更新 oc CLI 版本
若您使用的 oc CLI 版本未達到與您的叢集所使用的 major.minor 版本相同或更高,可能會導致出現意料之外的結果。 舉例 來說,Kubernetes 不支援與伺服器版本相差 2 個或更多版本(n ± 2)的 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"}如果在
GitVersion中看到用戶端和伺服器的版本相同,表示 CLI 版本相符。 可以忽略伺服器版本中的+IKS部分。 -
如果您的本地電腦與叢集上的
ocCLI 版本不一致,請更新叢集,或在 本地電腦上安裝不同版本的 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-managerPod,並檢閱輸出中的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-agentPod,並檢閱輸出中的Events區段,以取得任何錯誤訊息。oc get pods -n kube-system -l name=ibm-storage-metrics-agentNAME 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 的相關資訊,請參閱 收集裝置詳細資料