1.StatefulSet 中 Pod 无法完成初始化或滚动更新
1.1 问题
StatefulSet 中的 Pod 在创建或滚动更新过程中无法完成初始化,始终处于 Pending
或 ContainerCreating
状态,或反复重启
影响范围:
- 直接影响:对应 StatefulSet 的服务无法按预期提供完整功能,数据一致性或可用性可能受到影响
1.2 排查方案
- 查看 Pod 事件与状态:使用
kubectl describe pod <pod-name>
查看 Pod 详细状态和事件列表,定位问题发生的具体阶段和原因。 - 检查存储卷关联与状态:使用
kubectl get pvc
查看 PersistentVolumeClaim(PVC)的状态,确认 PVC 是否已绑定到合适的 PersistentVolume(PV),PV 是否正常。检查 PV 的详细信息,确认其状态、容量、访问模式等是否满足 StatefulSet 的要求。 - 检查存储服务日志与状态:如果使用的是云服务商提供的存储服务(如 OSS、S3、Disk、NAS等),检查其控制台或日志,确认存储服务本身无异常。
- 检查应用初始化脚本:如果 StatefulSet 中的 Pod 在启动时执行了自定义的初始化脚本(如
initContainers
),检查这些脚本的逻辑和输出,确认无误。 - 验证存储卷数据完整性:如果怀疑存储卷数据损坏或不一致导致问题,尝试在其他节点上挂载该 PV,检查数据是否正确。必要时,从备份恢复数据