1 报错:1 node(s) had taints that the pod didn't tolerate.
Kubernetes,即K8S部署服务的时候,有时候可能会遇到Pod一直处于Pending的状态,通过Pod的log没用日志输出;通过describe命令查看Pod事件时,会看到这样的报错信息:
1 node(s) had taints that the pod didn't tolerate.
表面意思是:节点有了pod无法容忍的污点。
2 原因:pod调度到了master节点
报错原因是因为默认的调度器将pod调度到了master节点;而默认情况下,为了安全考虑,K8S是不允许将pod调度到master节点,于是报了这个错。
3 解决:两种方法
3.1 命令修改可以调度到master节点
1)对单机环境而言,通常是单机测试环境,我们可以修改:让pod可以调度到master节点,命令如下:
kubectl taint nodes --all node-role.kubernetes.io/master-
3.2 查看当前node是否内存不足
2)对于集群环境,通常是在工作中,其实我们最好是不修改这个策略的。所以,其实大家在网上搜这个报错时,90%以上的都是给的第一种解决方法。但是,大家有没有想过,单机只有一台master,出现这个报错