IBM Cloud Docs
除錯 OpenShift Data Foundation 失敗

除錯 OpenShift Data Foundation 失敗

檢閱用於對 ODF 進行除錯的選項,並尋找任何失敗的主要原因。

檢查掛載您的儲存實例的Pod是否部署成功

請遵循步驟來檢閱與 Pod 部署相關的任何錯誤訊息。

  1. 列出叢集裡的 Pod。 如果 Pod 顯示的狀態為 Running,則 Pod 已順利部署。

    oc get pods
    
  2. 取得 Pod 的詳細資訊並查看 CLI 輸出的 「事件」 部分中顯示的任何錯誤訊息。

    oc describe pod <pod_name>
    
  3. 擷取 Pod 的日誌,並檢閱任何錯誤訊息。

    oc logs <pod_name>
    
  4. 請檢閱 ODF 疑難排解文件,以取得解決一般錯誤的步驟

重新啟動應用程式 Pod

透過重新啟動並重新部署 Pod,可以解決部分問題。 遵循步驟以重新部署特定 Pod。

  1. 如果您的 Pod 是部署的一部分,請刪除 Pod 並讓部署重建它。 如果 Pod 不是部署的一部分,請刪除 Pod 並重新套用 Pod 配置檔。

    1. 刪除 Pod。
      oc delete pod <pod_name>
      
      輸出範例
      pod "nginx" deleted
      
    2. 重新套用配置檔以重新部署 Pod。
      oc apply -f <app.yaml>
      
      輸出範例
      pod/nginx created
      
  2. 如果重新啟動 Pod 無法解決問題,請 重新載入工作者節點

  3. 驗證是否使用的是最新的 IBM Cloud 和 IBM Cloud Kubernetes Service 外掛程式版本。

    ibmcloud update
    
    ibmcloud plugin repo-plugins
    
    ibmcloud plugin update
    

驗證儲存驅動程式和插件 Pod 是否顯示 「正在運行」 狀態

遵循步驟來檢查儲存體驅動程式及外掛程式 Pod 的狀態,並檢閱任何錯誤訊息。

  1. 列出 kube-system 項目中的 Pod。

    oc get pods -n kube-system
    
  2. 如果儲存體驅動程式及外掛程式 Pod 未顯示 執行中 狀態,請取得 Pod 的更多詳細資料,以尋找主要原因。 視 Pod 的狀態而定,下列指令可能會失敗。

    1. 取得在驅動程式 Pod 中執行的容器名稱。

      kubectl describe pod <pod_name> -n kube-system
      
    2. 將日誌從驅動程式 Pod 匯出至本端機器上的 logs.txt 檔案。

      oc logs <pod_name> -n kube-system > logs.txt
      
    3. 請檢閱日誌檔。

      cat logs.txt
      
  3. 請檢查最新日誌,以取得任何錯誤訊息。 請檢閱 ODF 疑難排解文件,以取得解決一般錯誤的步驟

檢查並更新 oc CLI 版本

如果您使用的 oc CLI 版本至少與叢集的major.minor版本不匹配,您可能會遇到意外結果。 例如,Kubernetes不支援與伺服器版本相差 2 個或更多版本 (n +/- 2) 的 oc 用戶端版本。

  1. 驗證您在本機電腦上執行的 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 部分。

  2. 如果本機上的 oc CLI 版本與叢集不匹配,請更新叢集或 在本機上安裝不同的 CLI 版本

對 ODF 資源進行除錯

說明 ODF 資源,並檢閱任何錯誤訊息的指令輸出。

  1. 列出 ODF 叢集的名稱。

    oc get ocscluster
    

    輸出範例:

    NAME             AGE
    ocscluster-vpc   71d
    
  2. 說明儲存體叢集,並檢閱輸出的 Events 區段,以找出任何錯誤訊息。

    oc describe ocscluster <ocscluster-name>
    
  3. 列出 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
    
  4. 說明 ibm-ocs-operator-controller-manager Pod,並檢閱輸出中的 Events 區段,以取得任何錯誤訊息。

    oc describe pod <ibm-ocs-operator-controller-manager-a1a1a1a> -n kube-system
    
  5. 檢閱 ibm-ocs-operator-controller-manager 的日誌。

    oc logs <ibm-ocs-operator-controller-manager-a1a1a1a> -n kube-system
    
  6. 說明 NooBaa,並檢閱輸出的 Events 區段,以取得任何錯誤訊息。

    oc describe noobaa -n openshift-storage
    
  7. 說明 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   
    
  8. 檢閱 ibm-storage-metrics-agent 中的日誌。

    oc logs ibm-storage-metrics-agent-xxx -n kube-system
    
  9. 說明 ocscluster,並檢閱錯誤訊息的輸出。

    oc describe ocscluster <ocscluster-name> -n openshift-storage
    
  10. 使用 oc adm must-gather 指令來收集叢集的相關資料。

    oc adm must-gather --image=registry.redhat.io/ocs4/ocs-must-gather-rhel8:latest --dest-dir=ocs_mustgather
    
  11. 對於使用工作者節點上本端磁區的標準叢集或 Satellite 叢集,請確保工作者節點上存在用於 osd-device-pathmon-device-path 參數之磁區的 disk-by-id。 如需如何擷取這些磁區 ID 的相關資訊,請參閱 收集裝置詳細資料

  12. 請檢閱疑難排解說明文件,以取得解決一般錯誤的步驟