强制移除 Anthos clusters on Bare Metal 中的损坏节点

有时,如需移除损坏的节点以进行修复或替换,您可能需要强制将其从集群中移除。强制移除仅从集群管理的角度移除损坏的节点。强制移除会绕过节点本身中已安装组件的清理作业。恢复节点后,您可以运行 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 成功移除了节点。