8.3. SiteConfig CR を使用してノードを削除する
SiteConfig カスタムリソース (CR) を使用すると、ノードを削除して再プロビジョニングできます。この方法は、手動でノードを削除するよりも効率的です。
前提条件
- 必要なインストールおよびポリシー CR を生成するようにハブクラスターを設定している。
- カスタムサイト設定データを管理できる Git リポジトリーを作成している。リポジトリーはハブクラスターからアクセス可能で、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"]'出力例
trueSiteConfigCR を更新してcrSuppression.BareMetalHostアノテーションを含めることで、BareMetalHostCR の生成を抑制します。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のプロビジョニング解除が完了し、完全に削除されるまで待ちます。
検証
次のコマンドを実行して、ワーカーノードの
BareMetalHostおよびAgentCR がハブクラスターから削除されていることを確認します。$ oc get bmh -n <cluster-ns>$ oc get agent -n <cluster-ns>次のコマンドを実行して、スポーククラスターからノードレコードが削除されたことを確認します。
$ oc get nodes注記シークレットを操作している場合は、シークレットを削除するのが早すぎると、ArgoCD が削除後に再同期を完了するためにシークレットを必要とするため、問題が発生する可能性があります。現在の ArgoCD 同期が完了したら、ノードのクリーンアップ後にのみシークレットを削除します。
次のステップ
ノードを再プロビジョニングするには、以前に SiteConfig に追加された変更を削除し、変更を Git リポジトリーにプッシュして、同期が完了するまで待機します。これにより、ワーカーノードの BareMetalHost CR が再生成され、ノードの再インストールがトリガーされます。