我有一个带有一个主节点和两个节点的 kubernetes 集群。出于某种原因,集群无法访问某个节点,因此所有 pod 都移至另一个节点。问题是损坏的节点保留在集群中,但我认为主节点应该自动删除节点并创建另一个节点。
谁能帮我?
Bil*_*ill 11
我还有另一种情况,在AWS EKS中,节点已从AWS控制台终止,然后我发现EKS节点无法通过命令删除kubectl delete node <node_name>
最后我明白节点由于终结器而陷入删除状态
按照以下步骤,您可以将节点从集群中清除
NotReady,但无法删除它们。$ kk get nodes
NAME STATUS ROLES AGE VERSION
ip-192-168-103-252.ap-southeast-2.compute.internal NotReady <none> 26h v1.22.6-eks-7d68063
ip-192-168-106-14.ap-southeast-2.compute.internal NotReady <none> 26h v1.22.6-eks-7d68063
ip-192-168-126-54.ap-southeast-2.compute.internal NotReady <none> 26h v1.22.6-eks-7d68063
ip-192-168-128-106.ap-southeast-2.compute.internal Ready <none> 43m v1.22.6-eks-7d68063
ip-192-168-179-235.ap-southeast-2.compute.internal Ready <none> 12h v1.22.6-eks-7d68063
Run Code Online (Sandbox Code Playgroud)
所以当你kubectl delete node在以上3个NotReady节点上运行时,它们是无法删除的。
$ kubectl cordon ip-192-168-103-252.ap-southeast-2.compute.internal
Run Code Online (Sandbox Code Playgroud)
$ kubectl drain ip-192-168-103-252.ap-southeast-2.compute.internal --force --ignore-daemonsets
Run Code Online (Sandbox Code Playgroud)
如果运行kubectl delete node <node_name,这些节点仍然无法删除。
$ kubectl patch node/ip-192-168-103-252.ap-southeast-2.compute.internal -p '{"metadata":{"finalizers":[]}}' --type=merge
Run Code Online (Sandbox Code Playgroud)
现在你可以删除它了
$ kubectl delete node ip-192-168-103-252.ap-southeast-2.compute.internal
$ kk get nodes
NAME STATUS ROLES AGE VERSION
ip-192-168-128-106.ap-southeast-2.compute.internal Ready <none> 43m v1.22.6-eks-7d68063
ip-192-168-179-235.ap-southeast-2.compute.internal Ready <none> 12h v1.22.6-eks-7d68063
Run Code Online (Sandbox Code Playgroud)
我选择:
如果您在 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,它会告诉计算机在六分钟内运行关机程序。
在这种情况下,不会自动添加新节点。
我希望这有帮助。
Vas*_*pov -1
一旦节点变得无法通过网络访问,例如停止响应 ping - master 将自动从集群中删除此类节点。
您可以通过以下方式手动删除节点:
kubectl delete node NODE_NAME
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9671 次 |
| 最近记录: |