我有一个具有一个主节点和两个节点的kubernetes集群。 由于某种原因,一个节点变得无法访问群集,因此所有吊舱都已移至另一个节点。问题是损坏的节点保留在群集中,但是我认为主节点应自动删除该节点并创建另一个节点。
有人可以帮助我吗?
答案 0 :(得分:0)
节点一旦无法通过网络访问,例如停止响应ping-主服务器将自动从群集中删除该节点。
您可以通过以下方式手动删除节点:
kubectl delete node NODE_NAME
答案 1 :(得分:0)
答案 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,它会告诉计算机在六分钟内运行关机过程。
在这种情况下,将不自动添加新节点。
我希望这会有所帮助。