除錯 Portworx 失敗
檢閱選項以除錯 Portworx,並找出任何故障的根本原因。
檢查掛載您的儲存實例的 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
確認「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 版本
若您使用的 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。
更新 Helm 圖表
-
尋找 最新 Helm Chart 版本。
-
列出您叢集中已安裝的 Helm 圖表,並將您安裝的版本與最新版本進行比較。
helm list --all-namespaces -
如果有多個較新版本可供選擇,請安裝新版本。 如需指示,請參閱更新叢集裡的 Portworx。