扩容副本一直没有启动,状态停在等待调度,事件里提示处理器和内存请求超过节点可分配量。

原因不止一个,得分开看。资源请求设置高于节点剩余可分配额度。另一种情况是节点带有污点,Pod 没有配置容忍。

另外,亲和性规则过严,可调度节点太少。

上来先看调度失败原因

kubectl describe pod 名称 -n 命名空间 | grep -A5 Events

随后看节点可分配资源

kubectl describe node 节点名 | grep -A5 Allocatable

接着按实际占用调低请求

kubectl set resources deploy 名称 --requests=cpu=200m,memory=256Mi

剩下的就是确认副本已启动

kubectl get pods -n 命名空间 -o wide

我习惯把每一步的执行时间和结果记在一边,后面复盘省事。

改之前我把相关日志按时间截了一段存着,事后对时间线用得上。

别只看报错消失,验证要多做一步。Pod 进入运行状态,副本数达到预期,事件里不再出现资源不足。

补一句。处理器请求写成一整个核很容易被卡住;先按实际占用调低请求,再看要不要加节点。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189