Minikube因CPU不足无法调度新Pod,求助排查解决方法
Pod调度失败(Insufficient cpu)问题排查与解决
问题直接原因
你的Pod配置中CPU限制使用了大写的50M,这是错误的。Kubernetes中CPU资源的毫核单位必须用小写的m,大写M不属于合法的CPU资源单位,会被调度器错误解析,导致它认为该Pod需要的CPU资源远超节点可用量,从而触发Insufficient cpu调度失败。
快速解决方法
修改Pod配置中的CPU限制字段为小写m:
apiVersion: v1 kind: Pod metadata: name: my-pod labels: app: mypod-app spec: containers: - name: nginx image: nginx resources: limits: memory: 128Mi cpu: 50m # 改为小写m
保存后重新创建Pod:
kubectl apply -f your-pod-file.yaml
通用Pod调度故障排查方法
- 查看Pod详细调度事件:执行
kubectl describe pod my-pod,重点关注Events区域的错误信息,调度器会明确说明无法调度的具体原因(如资源不足、亲和性不匹配等)。 - 检查节点资源分配详情:执行
kubectl describe node minikube,查看Allocatable(节点可分配资源)和Allocated resources(已分配资源总和)部分,对比Pod的资源请求/限制,确认是否真的存在资源缺口。注意:kubectl top node显示的是实际运行使用率,而调度器依赖的是资源请求/限制的分配量,两者不是同一概念。 - 验证资源配置语法:确保Pod的
resources.requests和resources.limits字段使用合法单位:CPU用m(毫核),内存用Mi/Gi(二进制单位)或M/G(十进制单位),注意CPU单位只能是小写m。 - 检查节点污点与Pod容忍度:如果节点存在污点(Taint),而Pod没有对应的容忍度(Toleration),会被调度器拒绝。执行
kubectl describe node minikube查看Taints字段,同时检查Pod配置中是否有tolerations。 - 查看调度器日志:在Minikube中,执行
minikube logs -n kube-system -g scheduler可以查看kube-scheduler的详细日志,了解调度决策的完整逻辑,定位深层问题。
内容的提问来源于stack exchange,提问作者FerdiS
相关产品推荐
相关产品推荐

