为何块存储器更改为只读?
排查变为只读的块存储卷的问题。
虚拟私有云 经典基础设施
您可能看到以下症状:
- 运行
oc get pods -o wide时,您会看到同一工作程序节点上的多个 pod 卡在ContainerCreating或CrashLoopBackOff状态。 所有这些 pod 都使用的是同一块存储器实例。 - 运行
oc describe pod命令时,在 Events 部分中看到以下错误: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,从而重新启动该 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 地址来检索工作程序节点的**标识**。 ```sh {: pre} ibmcloud oc worker ls --cluster CLUSTER_NAME_OR_ID ``` 3. 安全地 [重新装入工作程序节点](/docs/openshift?topic=openshift-kubernetes-service-cli#worker-reload-cli)。