除錯持續性儲存空間故障
檢閱可用於除錯持續性儲存空間的選項,並尋找失敗的主要原因。
檢查掛載您的儲存實例的 Pod 是否已成功部署
-
列出叢集裡的 Pod。 如果 Pod 顯示的狀態為 Running,則 Pod 已順利部署。
oc get pods -
取得 Pod 的詳細資料,並檢查 CLI 輸出的 Events 區段中是否顯示有錯誤。
oc describe pod <pod_name> -
擷取應用程式的日誌,並檢查是否顯示任何錯誤訊息。
oc logs <pod_name>
重新啟動應用程式 Pod
-
如果您的 Pod 是部署的一部分,請刪除 Pod 並讓部署重建它。 如果 Pod 不是部署的一部分,請刪除 Pod 並重新套用 Pod 配置檔。
oc delete pod <pod_name>oc apply -f <app.yaml> -
如果重新啟動 Pod 無法解決問題,請 重新載入工作者節點。
-
驗證是否使用的是最新的 IBM Cloud 和 IBM Cloud Kubernetes Service 外掛程式版本。
ibmcloud updateibmcloud plugin repo-plugins
確認儲存驅動程式和外掛程式 Pod 的狀態顯示為「執行中」
- 列出
kube-system項目中的 Pod。oc get pods -n kube-system - 如果儲存體驅動程式及外掛程式 Pod 未顯示 執行中 狀態,請取得 Pod 的更多詳細資料,以尋找主要原因。 視您的 Pod 狀態而定,您可能無法執行以下所有指令。
- 取得在驅動程式 Pod 中執行的容器名稱。
kubectl get pod <pod_name> -n kube-system -o jsonpath="{.spec['containers','initContainers'][*].name}" | tr -s '[[:space:]]' '\n' ``` 具有三個儲存器之 Block Storage for VPC 的範例輸出: ```sh {: screen} csi-provisioner csi-attacher iks-vpc-block-driver ``` Block Storage for Classic 的輸出範例: ```sh {: pre} ibmcloud-block-storage-driver-container ``` 2. 將日誌從驅動程式 Pod 匯出至本端機器上的 `logs.txt` 檔案。 包括驅動程式儲存器名稱。 ```sh {: pre} oc logs <pod_name> -n kube-system -c <container_name> > logs.txt ``` 3. 請檢閱日誌檔。 ```sh {: pre} cat logs.txt ``` - 分析 ** 指令的 CLI 輸出中的 **Events
oc describe pod區段以及最新日誌,以尋找錯誤的主要原因。
正在檢查您的 PVC 是否已成功配置。
-
檢查 PVC 的狀態。 如果 PVC 顯示的狀態為 Bound,說明 PVC 已順利佈建。
oc get pvc -
如果 PVC 的狀態顯示為 Pending,請擷取導致 PVC 保持擱置狀態的錯誤。
oc describe pvc <pvc_name> -
檢閱 PVC 建立期間可能發生的常見錯誤。
-
檢閱將 PVC 裝載到應用程式時可能發生的常見錯誤。
-
驗證在本端機器上執行的
kubectlCLI 版本是否與叢集裡安裝的 Kubernetes 版本相符合。 如果使用的kubectlCLI 版本不能至少符合叢集的 major.minor 版本,則可能會遇到非預期的結果。 例如,[ Kubernetes 不支援與伺服器版本相差 2 個或更多版本(n ± 2)的kubectl客戶端版本。- 顯示在叢集裡和本端機器上安裝的
kubectlCLI 版本。
oc version ``` 輸出範例 ```sh {: screen} Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.36", 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.36+IKS", GitCommit:"e15454c2216a73b59e9a059fd2def4e6712a7cf0", GitTreeState:"clean", BuildDate:"2019-04-01T10:08:07Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"} ``` 如果在 `GitVersion` 中看到用戶端和伺服器的版本相同,表示 CLI 版本相符。 可以忽略伺服器版本中的 `+IKS` 部分。 2. 如果您的本地電腦與叢集上的 `kubectl` CLI 版本不一致,[請更新您的叢集](/docs/openshift?topic=openshift-update),或在 [本地電腦上安裝不同版本的 CLI](/docs/openshift?topic=openshift-cli-install)。 - 顯示在叢集裡和本端機器上安裝的
-
對於 Block Storage for VPC,驗證您具有最新版本的附加程式。
-
僅限標準區塊儲存空間、物件儲存空間和 Portworx:確保已為外掛程式安裝最新的 Helm Chart 版本。
區塊儲存空間和物件儲存空間:
1. 更新 Helm chart 儲存庫。
```sh {: pre}
helm repo update
```
2. 列出儲存庫中的 Helm chart。
**對於標準區塊儲存空間**:
```sh {: pre}
helm search repo iks-charts | grep block-storage-plugin
```
輸出範例
```sh {: screen}
iks-charts-stage/ibmcloud-block-storage-plugin 1.5.0 A Helm chart for installing ibmcloud block storage plugin
iks-charts/ibmcloud-block-storage-plugin 1.5.0 A Helm chart for installing ibmcloud block storage plugin
```
**對於物件儲存空間**:
```sh {: pre}
helm search repo ibm-charts | grep object-storage-plugin
```
輸出範例
```sh {: screen}
ibm-charts/ibm-object-storage-plugin 1.0.9 1.0.9 A Helm chart for installing ibmcloud object storage plugin
```
3. 列出叢集裡已安裝的 Helm Chart,並比較您安裝的版本與可用的版本。
```sh {: pre}
helm list --all-namespaces
```
4. 如果有較新的版本可用,請安裝此版本。 如需指示,請參閱[更新 IBM Cloud Block Storage 外掛程式](/docs/openshift?topic=openshift-vpc-block#vpc-addon-update)和[更新 IBM Cloud Object Storage 外掛程式](/docs/openshift?topic=openshift-storage_cos_install#update_cos_plugin)。
Portworx
-
請查找目前可用的 最新版 Helm 圖表。
-
列出叢集裡已安裝的 Helm Chart,並比較您安裝的版本與可用的版本。
helm list --all-namespaces -
如果有較新的版本可用,請安裝此版本。 如需指示,請參閱更新叢集裡的 Portworx。
OpenShift Data Foundation
說明 ODF 資源,並檢閱任何錯誤訊息的指令輸出。
- 列出 ODF 叢集的名稱。
輸出範例:oc get ocsclusterNAME AGE ocscluster-vpc 71d - 說明儲存體叢集,並檢閱輸出的
Events區段,以找出任何錯誤訊息。oc describe ocscluster <ocscluster-name> - 列出
kube-system名稱空間中的 Pod,並驗證它們是Running。oc get pods -n kube-system - 說明
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