除錯 Portworx 失敗

檢閱選項以除錯 Portworx,並找出任何故障的根本原因。

檢查掛載您的儲存實例的 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. 請檢閱 Portworx 疑難排解說明文件,以取得解決一般錯誤的步驟

重新啟動應用程式 Pod

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

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

    1. 刪除 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
        ```
    
  2. 如果重新啟動 Pod 無法解決問題,請 重新載入工作者節點

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

    ibmcloud update
    
    ibmcloud plugin repo-plugins
    
    ibmcloud plugin update
    

確認「Portworx」儲存驅動程式與外掛程式 Pod 的狀態顯示為「Running

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

  1. 列出 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
    
  2. 如果儲存體驅動程式及外掛程式 Pod 未顯示 執行中 狀態,請取得 Pod 的更多詳細資料,以尋找主要原因。 視您的 Pod 狀態而定,您可能無法執行以下所有指令。
    1. 取得在驅動程式 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
        ```
    
  3. 請檢查最新日誌,以取得任何錯誤訊息。 請檢閱 Portworx 疑難排解說明文件,以取得解決一般錯誤的步驟

檢查並更新 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.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 部分。

  2. 如果您的本地電腦與叢集上的 oc CLI 版本不一致,請更新叢集,或在 本地電腦上安裝其他版本的 CLI

更新 Helm 圖表

  1. 尋找 最新 Helm Chart 版本

  2. 列出您叢集中已安裝的 Helm 圖表,並將您安裝的版本與最新版本進行比較。

    helm list --all-namespaces
    
  3. 如果有多個較新版本可供選擇,請安裝新版本。 如需指示,請參閱更新叢集裡的 Portworx