9.3. 使用 SiteConfig CR 删除节点
通过使用 SiteConfig
自定义资源(CR),您可以删除并重新创建节点。这个方法比手动删除节点更高效。
先决条件
- 您已将 hub 集群配置为生成所需的安装和策略 CR。
- 您已创建了 Git 存储库,您可以在其中管理自定义站点配置数据。存储库必须可从 hub 集群访问,并定义为 Argo CD 应用程序的源存储库。
流程
更新
SiteConfig
CR,使其包含bmac.agent-install.openshift.io/remove-agent-and-node-on-delete=true
注解,并将更改推送到 Git 存储库:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令验证
BareMetalHost
对象是否已注解:oc get bmh -n <managed-cluster-namespace> <bmh-object> -ojsonpath='{.metadata}' | jq -r '.annotations["bmac.agent-install.openshift.io/remove-agent-and-node-on-delete"]'
oc get bmh -n <managed-cluster-namespace> <bmh-object> -ojsonpath='{.metadata}' | jq -r '.annotations["bmac.agent-install.openshift.io/remove-agent-and-node-on-delete"]'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
true
true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过更新
SiteConfig
CR 使其包含crSuppression.BareMetalHost
注解来抑制BareMetalHost CR
的生成:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将更改推送到 Git 存储库并等待取消置备启动。
BareMetalHost
CR 的状态应更改为deprovisioning
。等待BareMetalHost
完成取消置备,并完全删除。
验证
运行以下命令,验证 worker 节点的
BareMetalHost
和Agent
CR 已从 hub 集群中删除:oc get bmh -n <cluster-ns>
$ oc get bmh -n <cluster-ns>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get agent -n <cluster-ns>
$ oc get agent -n <cluster-ns>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证节点记录是否已从 spoke 集群中删除:
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果使用 secret,删除 secret 太早可能会导致问题,因为 ArgoCD 需要 secret 在删除后完成重新同步。只有在当前 ArgoCD 同步完成后,仅在节点清理后删除 secret。
后续步骤
要重新置备节点,请删除之前添加到 SiteConfig
中的更改,将更改推送到 Git 存储库,并等待同步完成。这会重新生成 worker 节点的 BareMetalHost
CR,并触发重新安装节点。