Spark任务Pod初始化失败(FailedMount):成因排查与修复咨询
Spark Pod初始化阶段挂载Secret超时故障排查与修复
问题描述
Spark任务Pod在初始化阶段卡顿一段时间后终止,故障并非持续出现。报错信息如下:
[2022-11-24 20:17:00,367] {subprocess.py:92} INFO - Could not complete the request. Reason - FailedMount. Detailed error - MountVolume.SetUp failed for volume "icp4d-trust-store-secret" : failed to sync secret cache: timed out waiting for the condition
运行环境:Openshift Container Platform(OCP 4.10),IBM Cloud
成因分析
- Kubelet与API Server同步延迟:OCP集群中kubelet需从API Server同步secret缓存,当网络波动或API Server临时负载过高时,同步过程会超出默认超时时间,导致挂载失败。
- 存储组件临时压力:IBM Cloud底层存储或集群CSI驱动出现临时负载峰值,无法及时响应secret挂载请求,触发超时。
- 节点kubelet资源不足:运行Pod的节点上,kubelet进程CPU/内存资源紧张,无法及时处理secret缓存同步操作,导致超时。
- Secret自身配置问题:
icp4d-trust-store-secret内容过大,或权限配置不正确,拉长了同步耗时,超出超时阈值。
修复方案
- 调整kubelet secret缓存超时:通过OCP的MachineConfig批量修改节点kubelet配置,增大
--secret-cache-expiration参数值(例如从1分钟调整为3分钟),给同步过程预留更多缓冲时间。 - 排查存储状态:查看IBM Cloud存储监控指标确认是否存在负载峰值;检查OCP集群CSI驱动日志,排查存储层面临时故障,必要时联系云服务商核实存储节点状态。
- 优化节点资源:检查故障节点的CPU/内存使用率,清理闲置Pod或调整节点资源配额,确保kubelet有足够资源处理挂载请求。
- 检查Secret配置:确认
icp4d-trust-store-secret的大小在合理范围,验证其权限配置,确保kubelet所属ServiceAccount具备该secret的读取权限。 - 配置Pod重试策略:在Spark任务Pod配置中设置
restartPolicy: OnFailure,让Pod在挂载失败后自动重启,利用后续的同步窗口完成挂载。
内容的提问来源于stack exchange,提问作者user20748668
相关产品推荐
相关产品推荐

