修改Docker家目录重启后StatefulSet重建Pod报request did not complete within requested timeout错误
StatefulSet Pod创建超时问题排查与解决
排查步骤
- 检查kubelet运行日志,确认Pod创建阶段的具体报错
执行命令:journalctl -u kubelet -f --since "1h ago"
重点排查以下类型报错:Docker API调用超时、存储路径权限拒绝、PVC挂载失败、端口/资源占用。 - 校验新Docker家目录的权限与安全配置
执行命令查看目录属性:ls -ld <你的新Docker家目录路径>
确认属主为root:docker,权限不低于700。如果服务器开启了SELinux,需执行恢复安全标签命令:restorecon -Rv <你的新Docker家目录路径> - 检查StatefulSet关联PVC/PV状态
执行命令:kubectl get pvc -l app=consul
确认所有PVC状态为Bound,无挂载失败、资源占用类报错。 - 检查节点Docker运行状态与残留资源
执行命令:docker info确认Docker服务无异常告警,再执行docker ps -a | grep consul查看是否有残留的旧consul容器未清理,导致端口、目录占用。 - 排查集群控制面状态
执行命令:kubectl get cs确认etcd、kube-scheduler、kube-controller-manager组件状态正常,无etcd写入超时、控制器异常报错。
解决方案
- 权限/SELinux异常场景:
修正目录权限:chown root:docker <新Docker家目录路径> -R
重启关联服务:systemctl daemon-reload && systemctl restart docker kubelet - 旧资源残留场景:
清理节点残留容器:docker rm -f $(docker ps -a | grep consul | awk '{print $1}')
强制清理残留Pod记录:kubectl delete po consul-master-0 --grace-period=0 --force - STS控制器死锁场景:
先缩容副本数到0触发关联资源清理:kubectl scale sts consul-master --replicas=0
等待2-3分钟后再扩容回原副本数:kubectl scale sts consul-master --replicas=3 - Docker资源不足场景:
注意:执行前确认无需要保留的未运行镜像/容器
清理Docker冗余资源:docker system prune -a
重启Docker与kubelet服务。
内容的提问来源于stack exchange,提问作者huyouba1
相关产品推荐
相关产品推荐

