8.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 存储库: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
通过更新
SiteConfig
CR 使其包含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 存储库并等待取消置备启动。
BareMetalHost
CR 的状态应更改为deprovisioning
。等待BareMetalHost
完成取消置备,并完全删除。
验证
运行以下命令,验证 worker 节点的
BareMetalHost
和Agent
CR 已从 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,并触发重新安装节点。