1、执行kubectl top node 查看是否真的资源不足。
2、报资源不足有多种情况,第一种是真的资源不足,第二种可能是Node上没有打Pod的yaml中定义的nodeSelector: 标签所以导致Pod找不到合适的Node就报此错误。
第二种node上是否无Pod Yaml中nodeSelector: 所需标签的确认法:
2.1、对Pod或者Pod的rc执行 kubectl get pod -n $namespace $Pod名 -o yaml 查看输出结果中的 nodeSelector: 是否有设置节点选择
如果有设置节点选择将如下显示:
nodeSelector:
mysql.local/db-0: true
2.2、执行kubectl get node --show-labels |grep mysql.local/db 查看node上是否有此标签。
3、如果真的是Node资源不足请解决资源问题,如果是Node上没有Pod需要的标签,请打标签。
4、node打标签命令格式如下:
key=value的格式,key与value是以=分开的
kubectl label no $node名 mysql.local/db-0=true 或此种格式 kubectl label no $node名 node=kube-node3