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

如何让Kubernetes Pod进入Running/Ready状态?已排查日志、扩缩容

解决Pod无法进入Running/Ready状态的方案

问题诊断

从你提供的信息来看,核心问题是存活探针与就绪探针连接失败,具体报错:

dial tcp 10.251.64.173:8444: connect: connection refused

Pod处于Error状态且已重启1次,kubelet持续退避重启失败容器。

排查&修复步骤

1. 深度排查容器启动日志

  • 查看上一次失败容器的启动日志(更容易定位启动阶段问题):
    kubectl logs my-pod-d5b854d94-ndgtd -n dev-923 --previous
    
  • 若日志无明确错误,直接进入容器检查应用进程:
    kubectl exec -it my-pod-d5b854d94-ndgtd -n dev-923 -- /bin/bash
    
    执行ps aux确认应用进程是否存在,或手动启动应用观察报错。

2. 校验探针配置准确性

  • 检查Deployment/StatefulSet的探针配置,确认:
    • 端口8444是否为应用实际监听端口
    • 健康路径/actuator/health/probe是否与应用配置匹配(部分Spring Boot应用默认端点为/actuator/health)
    • 初始延迟initialDelaySeconds是否足够覆盖应用启动耗时(启动过慢会导致探针提前检测失败)
  • 调整探针配置示例:
    livenessProbe:
      httpGet:
        path: /actuator/health
        port: 8444
      initialDelaySeconds: 60  # 根据实际启动时长调整
      periodSeconds: 10
    readinessProbe:
      httpGet:
        path: /actuator/health
        port: 8444
      initialDelaySeconds: 60
      periodSeconds: 10
    
    应用修改后重新部署:kubectl apply -f your-deployment.yaml -n dev-923

3. 检查容器网络与端口映射

  • 确认Pod端口暴露配置:kubectl describe pod my-pod-d5b854d94-ndgtd -n dev-923,查看Containers模块的Ports信息
  • 在集群内其他Pod或节点上测试连通性:curl http://10.251.64.173:8444/actuator/health/probe,排查网络策略或防火墙是否拦截流量

4. 验证镜像有效性

  • 拉取镜像到本地测试,排除镜像损坏或版本错误:
    docker pull your-image:tag
    docker run -p 8444:8444 your-image:tag
    
    本地访问健康端点,确认镜像本身无问题

5. 排查资源限制问题

  • 检查Pod的CPU/内存资源配置:kubectl describe pod my-pod-d5b854d94-ndgtd -n dev-923,查看Resources模块的Requests和Limits,若资源配额过低,会导致应用OOM或启动失败

内容的提问来源于stack exchange,提问作者Sakshi Jain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 08:05:26