Minikube 0.26.1中Dashboard及Pod无法调度问题求助
解决Minikube 0.26.1中Pod无法调度的污点问题
这个报错的核心原因很明确:你的Minikube节点带有污点(Taint),而Dashboard和hello-minikube这两个Pod没有配置对应的容忍度(Toleration),调度器找不到能容纳这些Pod的节点(毕竟Minikube只有1个节点),自然就卡壳了。
咱一步步来解决:
第一步:确认节点的污点详情
先执行命令查看节点上的污点信息:
kubectl describe node minikube
在输出里找到Taints字段,你大概率会看到类似这样的内容:
node-role.kubernetes.io/master:NoSchedule
这就是阻止Pod调度的元凶——Minikube 0.26.1默认会给master节点加上这个污点,避免生产环境的业务Pod跑在master上,但咱们测试环境完全不需要这个限制。
第二步:选择适合的解决方案
方案一:移除节点污点(推荐,测试环境首选)
直接用命令移除这个污点就行,末尾的减号-代表移除该污点:
kubectl taint nodes minikube node-role.kubernetes.io/master-
执行完之后,调度器会自动把Pending状态的Pod调度到Minikube节点上,稍等几分钟再用kubectl get pods查看,Pod应该就正常启动了。
方案二:给Pod添加容忍度(适合需要保留污点的场景)
如果你出于某些原因不想移除污点,可以给Pod添加对应的容忍度配置。比如修改Dashboard或者hello-minikube的Pod/Deployment YAML文件,在spec下添加tolerations字段:
spec: tolerations: - key: "node-role.kubernetes.io/master" operator: "Exists" effect: "NoSchedule"
修改完成后重新应用YAML文件:
kubectl apply -f <你的yaml文件名>.yaml
这样Pod就会容忍节点上的这个污点,顺利被调度到Minikube节点上。
内容的提问来源于stack exchange,提问作者Ralf
相关产品推荐
相关产品推荐

