Kubernetes执行kubectl get deployment出现READY 0/0的含义及解决办法
Kubernetes Deployment READY字段0/0状态说明
0/0的具体含义
kubectl get deployment返回的READY字段格式为当前就绪副本数 / 期望副本数,所以0/0的含义为:该Deployment配置的期望运行副本数为0,当前也没有任何处于就绪状态的实例。
并非你猜测的「部署完成但未就绪」,本质是集群没有被要求运行该Deployment的任何业务实例。
常见触发原因
- 手动执行过
kubectl scale命令将该Deployment缩容到0,比如临时下线业务、释放集群资源 - 关联的HPA(水平Pod自动扩缩容)配置了允许缩容到0的规则,当前业务指标(如QPS、CPU使用率)长期低于阈值触发了自动缩容
- CI/CD发布流水线配置错误,发布时误将副本数参数设为0
- 集群配置了自动清退规则,对长时间无流量、低优先级的Deployment自动缩容到0
恢复到READY状态的操作步骤
- 首先确认副本数配置,执行如下命令查看当前期望副本数:
kubectl get deployment bbox-inference-4k-pilot-2d-boxes -o jsonpath='{.spec.replicas}'
如果输出为0即可确认是副本数配置问题。
- 根据业务需要调整副本数,比如需要运行1个副本执行:
kubectl scale deployment bbox-inference-4k-pilot-2d-boxes --replicas=1
验证状态,等待数秒后再次执行
kubectl get deployment,即可看到READY字段变为1/1(若无其他异常)。若调整副本数后一段时间再次自动变回0/0,需要检查是否关联了HPA:
kubectl get hpa | grep bbox-inference-4k-pilot-2d-boxes
如果存在关联的HPA,调整HPA的minReplicas参数为大于0的值即可避免再次自动缩容到0。
- 如果调整副本数后READY字段为
0/1类的状态,说明实例启动异常,可以通过kubectl describe pod <对应pod名称>命令查看镜像拉取、资源分配、健康检查等环节的具体失败原因,针对性修复。
内容的提问来源于stack exchange,提问作者aerin
相关产品推荐
相关产品推荐

