為何區塊儲存體會變更為唯讀?
排除因故變成唯讀狀態的區塊儲存卷所產生的問題。
虛擬私有雲 經典基礎設施
您可能會看到下列狀況:
- 當您執行
oc get pods -o wide時,您會看到同一個工作者節點上有多個 Pod 停留在ContainerCreating或CrashLoopBackOff狀態中。 這些 Pod 全部都使用相同的區塊儲存空間實例。 - 當您執行
oc describe pod指令時,您會在事件區段中看到下列錯誤:MountVolume.SetUp failed for volume ... read-only。
如果在 Pod 寫入磁區時發生網路錯誤,IBM Cloud 基礎架構會將磁區變更為唯讀模式,以保護磁區上的資料免於毀損。 使用此卷的 Pod 將無法繼續向該卷寫入資料,並會發生錯誤。
驗證外掛程式版本,重建應用程式,並安全地重新載入工作者節點。
- 檢查叢集裡已安裝的 IBM Cloud Block Storage 外掛程式版本。
helm list --all-namespaces - 驗證您使用最新版本的 IBM Cloud Block Storage 外掛程式。 如果不是,請更新外掛程式。
- 如果您的 Pod 使用 Kubernetes 部署,請移除失敗的 Pod 並讓 Kubernetes 重建它,以重新啟動該 Pod。 若您未使用部署,請執行
oc get pod <pod_name> -o yaml >pod.yaml來取得用於建立您的 Pod 的 YAML 檔案。 然後,刪除並手動重建 Pod。oc delete pod <pod_name> - 檢查重建 Pod 是否已解決問題。 如果沒有,請重新載入工作者節點。
- 尋找 Pod 執行所在的工作者節點,並記下指派給工作者節點的專用 IP 位址。
oc describe pod <pod_name> | grep Node ``` 輸出範例: ```sh {: screen} Node: 10.75.XX.XXX/10.75.XX.XXX Node-Selectors: <none> ``` 2. 透過使用前一個步驟的專用 IP 位址,來擷取工作者節點的 **ID**。 ```sh {: pre} ibmcloud oc worker ls --cluster CLUSTER_NAME_OR_ID ``` 3. 安全地 [重新載入工作者節點](/docs/openshift?topic=openshift-kubernetes-service-cli#worker-reload-cli)。