1.10.9. ホストのインストールをキャンセルする
不正なクラスターバインディングを防止したり、ホスト設定を変更したり、インストールの問題を修正したりするために、ホストのインストールをキャンセルできます。
たとえば、インストール中に実稼働環境のホストが installing-pending-user-action ステータスで停止した場合は、インストールをキャンセルできます。
前提条件
- マネージドクラスターで遅延バインディング機能を使用しています。
手順
ホストのインストールをキャンセルできるかどうかを確認するには、次の手順を実行します。
マネージドクラスターが中央インフラストラクチャー管理を使用しているかどうかを確認します。以下のコマンドを実行します。
oc get agentclusterinstall -n <namespace>マネージドクラスターが中央インフラストラクチャー管理を使用している場合は、
adding-hostsSTATEを含む次の出力が表示されます。NAME CLUSTER STATE assisted-cluster assisted-cluster adding-hostsホストがインストールされているかどうかを確認します。以下のコマンドを実行します。
oc get agent -n <namespace>ホストがインストール中の場合、出力は次の例のようになります。
NAME CLUSTER APPROVED ROLE STAGE 127877e3-2098-4bf8-9b44-588a78ffcccd assisted-cluster true worker Rebooting
出力が前の例と似ている場合は、ホストのインストールのキャンセルを続行できます。ホストのインストールをキャンセルするには、次の手順を実行します。
インストールを停止するホストの
Agentリソース内のclusterDeploymentNameフィールドを削除して、ホストをマネージドクラスターからバインド解除します。以下のコマンドを実行します。oc patch agent -n <namespace> <agent-name> --patch='[{"op":"remove","path":"/spec/clusterDeploymentName"}]' --type=json次のコマンドを実行して、ホストがバインド解除されていることを確認します。
oc get agent -n <namespace>ホストがバインドされていないと、出力は、
CLUSTERかSTAGEが空、もしくはunbinding-pending-user-actionなどのようになります。NAME CLUSTER APPROVED ROLE STAGE 127877e3-2098-4bf8-9b44-588a78ffcccd true auto-assignホストを検出フェーズに戻します。
Discovery ISO を使用してノードを追加する場合は、Discovery ISO を再度ダウンロードし、Discovery ISO を使用してホストを再起動します。以下のコマンドを実行します。
oc get infraenv -n <namespace> <infraenv-name> -ojsonpath='{.status.isoDownloadURL}'BareMetalHostリソースを使用してノードを追加すると、ホストは自動的に検出フェーズに戻ります。次のコマンドを実行して、ホストが検出フェーズにあることを確認します。oc get bmh -n <namespace>ホストが検出フェーズにあると、
BareMetalHostリソースのステータスは、deprovisioningからprovisioningに変わります。プロビジョニング解除が完了するまでに数分かかる場合があります。BareMetalHostがprovisioning statusに達すると、ホストは検出モードになります。
Agentリソースが検出され、検証されているかどうかを確認します。以下のコマンドを実行します。oc get agent -n <namespace> <agent-name> -ojsonpath='{"NAME: "}{.metadata.name}{"\n"}{"VALIDATIONS PASSING: "}{.status.conditions[?(@.type == "Validated")].status}{"\n"}'Agentリソースをマネージドクラスターにバインドして、ホストを再インストールします。以下のコマンドを実行します。oc patch agent -n <namespace> <agent-name> --patch='[{"op":"add","path":"/spec/clusterDeploymentName","value":{"name":"<cluster name>","namespace":"<cluster namespace>"}}]' --type=jsonAgentリソースがマネージドクラスターにバインドされていることを確認します。以下のコマンドを実行します。oc get agent -n <namespace>Agentリソースがマネージドクラスターにバインドされていると、出力は次の例のようになります。NAME CLUSTER APPROVED ROLE STAGE 127877e3-2098-4bf8-9b44-588a78ffcccd cluster name true auto-assign