You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

删除运行中Pod后StatefulSet未重建Pod问题求助

StatefulSet删除Pod后不重建的排查思路

从你提供的信息来看,kubectl get sts显示jenkins状态为1/1,但kubectl describe sts里明确标注Replicas: 1 desired | 2 total,同时所有Pod状态全为0,这是核心矛盾点,以下是具体排查步骤:

  • 检查Pod终止状态
    执行kubectl get pods -n jenkins -l app=jenkins,确认是否有Terminating状态的Pod残留。StatefulSet会等待旧Pod完全终止后才会重建新Pod,如果旧Pod卡在终止流程(比如存储卷卸载失败、节点失联),新Pod不会启动。
    若存在残留Pod,进一步排查终止失败原因:

    • 执行kubectl describe pod <pod-name> -n jenkins查看Events中的终止日志
    • 检查节点状态:kubectl get nodes,如果Pod所在节点处于NotReady状态,需先修复节点或驱逐节点上的Pod
  • 核查存储卷状态
    StatefulSet的Pod绑定固定命名的PVC(比如jenkins-home-jenkins-0),执行kubectl get pvc -n jenkins:

    • 若对应PVC处于Lost或Terminating状态,新Pod无法绑定存储,会卡在Pending甚至无法创建
    • 检查PVC关联的PV状态:kubectl get pv,如果PV状态异常(如节点存储故障),需先修复存储或重新创建PV/PVC
  • 验证StatefulSet控制器状态
    执行kubectl get sts jenkins -n jenkins -o yaml查看完整配置与状态:

    • 确认spec.replicas确实为1,核对status.replicas、status.readyReplicas数值是否与实际一致
    • 检查status.currentReplicas、status.updatedReplicas是否存在异常值
      若有权限,可查看kube-controller-manager日志,确认处理该StatefulSet时是否有报错
  • 检查Pod模板合法性
    即使之前Pod能正常运行,也可能出现模板配置问题导致无法重建:

    • 在集群节点上手动拉取镜像docker-c2.xyz.com/jenkins/jenkins:v0.1,验证镜像拉取权限、镜像是否存在
    • 检查ServiceAccount权限:kubectl auth can-i create pods --as=system:serviceaccount:jenkins:jenkins-account -n jenkins,确认服务账号具备创建Pod的权限
    • 核查资源配额:kubectl get resourcequota -n jenkins,确认namespace或集群的CPU、内存配额未耗尽,避免新Pod无法调度
  • 强制同步StatefulSet状态
    若以上检查均无异常,可能是状态缓存问题,可尝试重置副本数强制同步(操作前确认业务可短暂中断):

    kubectl patch sts jenkins -n jenkins -p '{"spec":{"replicas":0}}'
    # 等待所有Pod终止后,恢复副本数
    kubectl patch sts jenkins -n jenkins -p '{"spec":{"replicas":1}}'
    

内容的提问来源于stack exchange,提问作者Breaking News

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 14:55:14