node(s) didn‘t match node selector.


  • k8s集群中,有pod出現了 Pending ,通過 kubectl describe pod 命令,發現了如下報錯
0/4 nodes are available: 1 node(s) had taint {node.kubernetes.io/disk-pressure: }, that the pod didn't tolerate, 3 node(s) didn't match node selector.
  • 這是因為節點被打上了污點(pod的yaml文件中配置了 node selector ,和 nodelabel 做了綁定,因此,導致了pod沒有節點可以起來)
Linux:~ # kubectl get nodes -o json | jq '.items[].spec'
{}
{}
{
 "taints": [
   {
     "effect": "NoSchedule",
     "key": "node.kubernetes.io/disk-pressure",
     "timeAdded": "2021-03-06T14:15:27Z"
   }
 ]
}
{}
  • 可以看到,節點被打上了污點,並且是 NoSchedule ,不可調度
  • 進行如下操作,取消所有節點的 node.kubernetes.io/disk-pressure 這個名稱的污點
Linux:~ # kubectl taint nodes --all node.kubernetes.io/disk-pressure-
node/k8s-w1 untainted
taint "node.kubernetes.io/disk-pressure" not found
taint "node.kubernetes.io/disk-pressure" not found
taint "node.kubernetes.io/disk-pressure" not found
  • 如果節點還是Pending,可以導出 pod 的 yaml 文件,重新 kubectl apply -f xxx.yaml 即可(如果 pod 有 deployment ,則直接 kubectl delete pod 即可)
  • 如果還是 Pending , 則再次執行 kubectl describe pod 查看報錯的原因


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM