CSM PowerFlex 节点 Pod 卡在 init:0/2 处
Summary: 由于应用了一些更改,容器存储模块 (CSM) PowerFlex 节点 Pod 在主机重新启动后卡在 init:0/2。
Symptoms
所有 PowerFlex 节点 Pod 都卡在 init:0/2 并报告了错误 "Warning FailedMount 8s (x6 over 23s) kubelet MountVolume.SetUp failed for volume "scaleio-path-bin" : mkdir /bin/emc: read-only file system " 在 pod description 中。
使用 PowerFlex 2.13.1 和 2.14 的容器存储接口 (CSI) 驱动程序的 CSM Operator 1.9 和 1.8.1 出现问题。
Cause
此问题的根本原因是 CSM作员在初始化期间无法确定它是否在 OpenShift 环境中运行。它会缓存该信息以供以后使用。在作员启动时,以下命令可能未返回预期结果:
oc get --raw /apis | jq | grep "security.openshift.io"
这表明 security.openshift.io 应用程序编程接口 (API) 组此时可能不可用。
在作员日志中,如果您看到 [isOpenShift err false],这意味着作员无法确定 OpenShift 环境。
2025-06-17T08:45:38.167Z INFO workspace/main.go:99 isOpenShift err false {"TraceId": "main"}2025-06-17T08:45:38.168Z INFO workspace/main.go:105 Kubernetes environment {"TraceId": "main"}
用于确定 OpenShift 环境的正确日志消息是:
2025-06-19T00:03:14.913Z INFO workspace/main.go:138 Openshift environment {"TraceId": "main"}
Resolution
- 手动运行以下命令:
oc get --raw /apis | jq | grep "security.openshift.io"
and
oc auth can-i get /apis/security.openshift.io --as=system:serviceaccount:dell-csm-operator:dell-csm-operator-manager-service-account
- 预期结果是
# oc get --raw /apis | jq | grep "security.openshift.io" "name": "security.openshift.io", "groupVersion": "security.openshift.io/v1", "groupVersion": "security.openshift.io/v1",
# oc auth can-i get /apis/security.openshift.io --as=system:serviceaccount:dell-csm-operator:dell-csm-operator-manager-service-accountyes
3.如果您看到上面的输出,请重新启动 CSM作员:
oc delete pod dell-csm-operator-controller-manager-xxx-xxx -n openshift-operators
4.如果输出与上面不同,请让客户联系 Red Hat 支持以进一步检查。