9.3. ノードのメンテナンスモードへの設定

9.3.1. ノードのメンテナンスモードについて

ノードがメンテナンス状態になると、ノードにはスケジュール対象外のマークが付けられ、ノードからすべての仮想マシンおよび Pod がドレイン (解放) されます。LiveMigrate エビクションストラテジーを持つ仮想マシンインスタンスのライブマイグレーションは、サービスが失われることなく実行されます。このエビクションストラテジーはデフォルトで共通テンプレートから作成される仮想マシンで設定されますが、カスタム仮想マシンの場合には手動で設定される必要があります。

エビクションストラテジーのない仮想マシンインスタンスは、ノードで削除され、別のノードで再作成されます。

重要

仮想マシンでは、共有 ReadWriteMany (RWX) アクセスモードを持つ PersistentVolumeClaim (PVC) のライブマイグレーションが必要です。

Web コンソールまたは CLI のいずれかでノードをメンテナンス状態にします。

9.3.2. Web コンソールでのノードのメンテナンスモードへの設定

ComputeNodes 一覧で各ノードにある Options メニュー kebab を使用するか、または Node Details 画面の Actions コントロールを使用してノードをメンテナンスモードに設定します。

手順

  1. Container-native Virtualization コンソールで ComputeNodes をクリックします。
  2. この画面からノードをメンテナンスモードに設定できます。 これにより、1 つの画面で複数のノードに対してアクションを実行することがより容易になります。 または、Node Details 画面からノードをメンテナンスモードに設定することもできます。 この場合、選択されたノードの総合的な詳細情報を確認できます。

    • ノードの末尾の Options メニュー kebab をクリックし、Start Maintenance を選択します。
    • ノード名をクリックし、Node Details 画面を開いて ActionsStat Maintenance をクリックします。
  3. 確認ウィンドウで Start Maintenance をクリックします。

ノードは liveMigration エビクションストラテジーを持つ仮想マシンインスタンスのライブマイグレーションを行い、このノードはスケジュール対象外となります。このノードの他のすべての Pod および仮想マシンは削除され、別のノードで再作成されます。

9.3.3. CLI でのノードのメンテナンスモードへの設定

ノード名、およびこれをメンテナンスモードに設定する理由を参照する NodeMaintenance カスタムリソース (CR) オブジェクトを作成し、ノードをメンテナンスモードに設定します。

手順

  1. ノードメンテナンス CR 設定を作成します。この例では、node02-maintenance.yaml という CR を使用します。

    apiVersion: kubevirt.io/v1alpha1
    kind: NodeMaintenance
    metadata:
      name: node02-maintenance
    spec:
      nodeName: node02
      reason: "Replacing node02"
  2. NodeMaintenance オブジェクトをクラスターに作成します。

    $ oc apply -f <node02-maintenance.yaml>

ノードは liveMigration エビクションストラテジーを持つ仮想マシンインスタンスのライブマイグレーションを実行し、これがスケジュール対象外になるようにノードにテイントを設定します。このノードの他のすべての Pod および仮想マシンは削除され、別のノードで再作成されます。