有时,如需移除损坏的节点以进行修复或替换,您可能需要强制将其从集群中移除。强制移除仅从集群管理的角度移除损坏的节点。强制移除会绕过节点本身中已安装组件的清理作业。恢复节点后,您可以运行 bmctl reset nodes
来清理节点上的已安装组件,以便重复使用。
强制移除节点
以下方法同时适用于控制层面节点和工作器节点。对于控制层面节点,Anthos clusters on Bare Metal 中的控制器也负责 etcd
成员资格的簿记。
使用 bmctl
您可以使用 bmctl
从集群中移除节点。通常,bmctl reset
会触发重置作业,以尝试清理节点上的已安装组件。如需在从集群中移除节点时不阻止清理已安装的软件包,您可以运行带有 --force
标志的 bmctl
命令:
bmctl reset nodes --addresses NODE_IP --force --kubeconfig ADMIN_KUBECONFIG --cluster CLUSTER_NAME
替换以下内容:
NODE_IP
:要重置的节点的 IP 地址,例如10.200.0.8
。ADMIN_KUBECONFIG
:管理员集群 kubeconfig 文件的路径。CLUSTER_NAME
:包含节点的目标集群的名称。
使用 kubectl
在 Anthos clusters on Bare Metal 中,您可以添加注解来标记要强制移除的节点。
从父节点池中移除节点后,运行以下命令,以使用 baremetal.cluster.gke.io/force-remove
注释为相应的故障机器添加注释。注释本身的值无关紧要:
kubectl --kubeconfig ADMIN_KUBECONFIG -n CLUSTER_NAMESPACE \ annotate machine 10.200.0.8 baremetal.cluster.gke.io/force-remove=true
Anthos clusters on Bare Metal 成功移除了节点。