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