kubernets的报错:0/2 nodes are available: 1 node(s) had taint {env_role: }, that the pod didn't tolerate, 1 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn't tolerate

报错内容:

[root@test ~]# kubectl describe pod web-96d5df5c8-k265c
Name:           web-96d5df5c8-k265c
Namespace:      default
Priority:       0
Node:           <none>
Labels:         app=web
                pod-template-hash=96d5df5c8
Annotations:    <none>
Status:         Pending
IP:             
IPs:            <none>
Controlled By:  ReplicaSet/web-96d5df5c8
Containers:
  nginx:
    Image:        nginx
    Port:         <none>
    Host Port:    <none>
    Environment:  <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-pl58b (ro)
Conditions:
  Type           Status
  PodScheduled   False 
Volumes:
  default-token-pl58b:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-pl58b
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason            Age   From               Message
  ----     ------            ----  ----               -------
  Warning  FailedScheduling  39m   default-scheduler  0/2 nodes are available: 1 node(s) had taint {env_role: }, 
that the pod didn't tolerate, 1 node(s) had taint {node-role.kubernetes.io/master: }, that the pod didn't tolerate.

检查一下看看node是否被打污点了

[root@test ~]# kubectl describe node node01 |grep Taint
Taints:             env_role:NoSchedule

污点值有三个

  • NoSchedule:一定不被调度
  • PreferNoSchedule:尽量不被调度【也有被调度的几率】
  • NoExecute:不会调度,并且还会驱逐Node已有Pod

果不其然,node节点变成了NoSchedule

去掉污点

[root@test ~]# kubectl taint node node01 env_role:NoSchedule-
node/node01 untainted
[root@test ~]# kubectl describe node node01 |grep Taint
Taints:             env_role:PreferNoSchedule
原文地址:https://www.cnblogs.com/fat-girl-spring/p/14538991.html