9.2. ClusterInstance CR を使用してノードを削除する


ClusterInstance の カスタムリソース (CR) を使用すると、ノードを削除して再プロビジョニングできます。この方法は、手動でノードを削除するよりも効率的です。

前提条件

  • 必要なインストールおよびポリシー CR を生成するようにハブクラスターを設定している。
  • カスタムサイト設定データを管理できる Git リポジトリーを作成している。リポジトリーはハブクラスターからアクセス可能で、Argo CD アプリケーションのソースリポジトリーとして定義されている必要があります。

手順

  1. ClusterInstance CR を更新して、ノードの BareMetalHost リソースに bmac.agent-install.openshift.io/remove-agent-and-node-on-delete=true アノテーションを追加し、変更内容を Git リポジトリーにプッシュします。

    apiVersion: siteconfig.open-cluster-management.io/v1alpha1
    kind: ClusterInstance
    metadata:
      name: "example-cluster"
      namespace: "example-cluster"
    spec:
      # ...
      nodes:
        - hostName: "worker-node2.example.com"
          role: "worker"
          extraAnnotations:
            BareMetalHost:
              bmac.agent-install.openshift.io/remove-agent-and-node-on-delete: "true"
    # ...
  2. 次のコマンドを実行して、BareMetalHost オブジェクトにアノテーションが付けられていることを確認します。

    $ oc get bmh -n <cluster_namespace> <bmh_name> -ojsonpath='{.metadata}' | jq -r '.annotations["bmac.agent-install.openshift.io/remove-agent-and-node-on-delete"]'

    出力例

    true

  3. ClusterInstance CR の pruneManifests フィールドを設定して、対象の BareMetalHost リソースを削除することにより、BareMetalHost CR を削除します。

    apiVersion: siteconfig.open-cluster-management.io/v1alpha1
    kind: ClusterInstance
    metadata:
      name: "example-cluster"
      namespace: "example-cluster"
    spec:
      # ...
      nodes:
        - hostName: "worker-node2.example.com"
          role: "worker"
          pruneManifests:
            - apiVersion: metal3.io/v1alpha1
              kind: BareMetalHost
    # ...
  4. 変更を Git リポジトリーにプッシュし、プロビジョニング解除が開始するまで待ちます。BareMetalHost CR のステータスが deprovisioning に変更されるはずです。BareMetalHost のプロビジョニング解除が完了し、完全に削除されるまで待ちます。

検証

  1. 次のコマンドを実行して、ワーカーノードの BareMetalHost および Agent CR がハブクラスターから削除されていることを確認します。

    $ oc get bmh -n <cluster_namespace>
    $ oc get agent -n <cluster_namespace>
  2. 次のコマンドを実行して、スポーククラスターからノードレコードが削除されたことを確認します。

    $ oc get nodes
    注記

    シークレットを操作している場合は、シークレットを削除するのが早すぎると、ArgoCD が削除後に再同期を完了するためにシークレットを必要とするため、問題が発生する可能性があります。現在の ArgoCD 同期が完了したら、ノードのクリーンアップ後にのみシークレットを削除します。

  3. BareMetalHost オブジェクトが正常に削除されたら、ClusterInstance CR の spec.nodes セクションからワーカーノードの定義を削除し、変更内容を Git リポジトリーにプッシュします。

次のステップ

ノードを再プロビジョニングするには、ノード定義を ClusterInstance CR の spec.nodes セクションに再度追加し、変更内容を Git リポジトリーにプッシュして、同期が完了するまで待ちます。これにより、ワーカーノードの BareMetalHost CR が再生成され、ノードの再インストールがトリガーされます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る