如何在Kubernetes中删除损坏的节点

时间:2019-05-09 17:20:45

标签: kubernetes

我有一个具有一个主节点和两个节点的kubernetes集群。 由于某种原因,一个节点变得无法访问群集,因此所有吊舱都已移至另一个节点。问题是损坏的节点保留在群集中,但是我认为主节点应自动删除该节点并创建另一个节点。

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

节点一旦无法通过网络访问,例如停止响应ping-主服务器将自动从群集中删除该节点。

您可以通过以下方式手动删除节点:

kubectl delete node NODE_NAME

答案 1 :(得分:0)

  1. 将节点命名为
  2. 排空节点
  3. 删除节点
  4. 重置节点(如果使用以下方式加入节点,请运行kubeadm reset命令: kubeadm)
  5. 再次加入该节点作为新节点

答案 2 :(得分:0)

I选项:

如果您使用GKE并具有HA群集,则在启用自动缩放模式后的几分钟后,具有 NotReady 状态的节点将被自动删除。稍后,将添加新节点。

II选项: 如果您使用kubeadm:

如果您没有启用自动缩放模式并且没有HA集群,则不会自动删除状态为 NotReady 的节点。节点将不断检查并重新启动。

如果您具有Prometheus检查指标,则在具有NotReady状态或无法访问节点的节点上发生了什么,请执行命令:

$ sudo journalctl -u kubelet

如果要删除状态为 NotReady 的节点,则应手动进行操作:

在关闭节点之前,应先排空该节点并确保该节点为空。

$ kubectl drain <node name> --delete-local-data --force --ignore-daemonsets

$ kubectl delete node <node name>

然后,在要删除的节点上,重置所有kubeadm安装状态:

$ kubeadm reset

重置过程不会重置或清除iptables规则或IPVS表。如果您希望重置iptables,则必须手动进行:

$ iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X

如果要重置IPVS表,则必须运行以下命令:

$ ipvsadm -C

您还可以简单地关闭欲望节点:

$ shutdown -h

-h 表示暂停,而现在显然意味着该指令应立即执行。可以使用不同的延迟。例如,您可以改用+6,它会告诉计算机在六分钟内运行关机过程。

在这种情况下,将自动添加新节点。

我希望这会有所帮助。