8.3. 使用 SiteConfig CR 删除节点


通过使用 SiteConfig 自定义资源(CR),您可以删除并重新创建节点。这个方法比手动删除节点更高效。

先决条件

  • 您已将 hub 集群配置为生成所需的安装和策略 CR。
  • 您已创建了 Git 存储库,您可以在其中管理自定义站点配置数据。存储库必须可从 hub 集群访问,并定义为 Argo CD 应用程序的源存储库。

流程

  1. 更新 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
    # ...
  2. 运行以下命令验证 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

  3. 通过更新 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
    # ...
  4. 将更改推送到 Git 存储库并等待取消置备启动。BareMetalHost CR 的状态应更改为 deprovisioning。等待 BareMetalHost 完成取消置备,并完全删除。

验证

  1. 运行以下命令,验证 worker 节点的 BareMetalHostAgent CR 已从 hub 集群中删除:

    $ oc get bmh -n <cluster-ns>
    $ oc get agent -n <cluster-ns>
  2. 运行以下命令,验证节点记录是否已从 spoke 集群中删除:

    $ oc get nodes
    注意

    如果使用 secret,删除 secret 太早可能会导致问题,因为 ArgoCD 需要 secret 在删除后完成重新同步。只有在当前 ArgoCD 同步完成后,仅在节点清理后删除 secret。

后续步骤

要重新置备节点,请删除之前添加到 SiteConfig 中的更改,将更改推送到 Git 存储库,并等待同步完成。这会重新生成 worker 节点的 BareMetalHost CR,并触发重新安装节点。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.