我的工作程序节点状态为“就绪,调度已禁用”

yas*_*ini 4 kubernetes

我有kubernetes集群,一切正常。一段时间后,我耗尽了工作节点并重置它,然后再次将其加入主节点,但是

#kubectl get nodes
NAME      STATUS                     ROLES    AGE    VERSION
ubuntu    Ready                      master   159m   v1.14.0
ubuntu1   Ready,SchedulingDisabled   <none>   125m   v1.14.0
ubuntu2   Ready,SchedulingDisabled   <none>   96m    v1.14.0
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

yas*_*ini 24

我使用以下方法修复它:

kubectl uncordon <node-name>
Run Code Online (Sandbox Code Playgroud)

  • 虽然此代码可能会解决问题,但 [包括解释](//meta.stackexchange.com/q/114762) 如何以及为何解决问题确实有助于提高您的帖子质量,并且可能会导致更多赞成票。请记住,您是在为未来的读者回答问题,而不仅仅是现在问的人。请[编辑]您的答案以添加解释并说明适用的限制和假设。 (9认同)

Ami*_*tyo 7

要防止节点调度新的Pod,请使用:

kubectl cordon <node-name>
Run Code Online (Sandbox Code Playgroud)

这将导致节点处于以下状态:Ready,SchedulingDisabled

要说的是恢复调度使用:

kubectl uncordon <node-name>
Run Code Online (Sandbox Code Playgroud)

有关耗尽节点的更多信息,请参见此处。以及此处的手动节点管理


Abh*_*Jha 5

调度已禁用表示节点进入维护模式,因为您耗尽了 pod 的节点,前提条件是该节点必须处于维护状态。检查该节点的规格 kubetcl get nodes node-name -o yaml

 taints:
  - effect: NoSchedule
    key: node.kubernetes.io/unschedulable
    timeAdded: "2022-06-29T13:05:11Z"
  unschedulable: true

Run Code Online (Sandbox Code Playgroud)

因此,当您希望它恢复到可调度状态时,您必须将节点置于维护之外,这意味着取消对它的封锁

kubectl uncordon <node-name>
Run Code Online (Sandbox Code Playgroud)

我知道这与上面的答案类似,但人们应该知道幕后发生的事情。