第10章 ノード


10.1. ノードのメンテナンス

oc adm ユーティリティーまたは NodeMaintenance カスタムリソース (CR) を使用してノードをメンテナンスモードにすることができます。

注記

node-maintenance-operator (NMO) は OpenShift Virtualization に同梱されなくなりました。Red Hat OpenShift Service on AWS Web コンソールの OperatorHub から、または OpenShift CLI (oc) を使用して、スタンドアロン Operator としてデプロイされます。

ノードの修復、フェンシング、メンテナンスの詳細は、Red Hat OpenShift のワークロードの可用性 を参照してください。

重要

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

Node Maintenance Operator は、新規または削除された NodeMaintenance CR をモニタリングします。新規の NodeMaintenance CR が検出されると、新規ワークロードはスケジュールされず、ノードは残りのクラスターから遮断されます。エビクトできるすべての Pod はノードからエビクトされます。NodeMaintenance CR が削除されると、CR で参照されるノードは新規ワークロードで利用可能になります。

注記

ノードメンテナンスタスクに NodeMaintenance CR を使用すると、標準の Red Hat OpenShift Service on AWS カスタムリソース処理を使用した oc adm cordon および oc adm drain コマンドと同じ結果が得られます。

10.1.1. エビクションストラテジー

ノードがメンテナンス状態になると、ノードにはスケジュール対象外のマークが付けられ、ノードからすべての仮想マシンおよび Pod がドレインされます。

仮想マシン (VM) またはクラスターのエビクションストラテジーを設定できます。

仮想マシンエビクションストラテジー

仮想マシンの LiveMigrate エビクションストラテジーは、ノードがメンテナンス状態になるか、ドレイン (解放) される場合に仮想マシンインスタンスが中断されないようにします。このエビクションストラテジーを持つ VMI は、別のノードにライブマイグレーションされます。

OpenShift Virtualization Web コンソールまたは コマンドライン を使用して、仮想マシン (VM) のエビクションストラテジーを設定できます。

重要

デフォルトのエビクションストラテジーは LiveMigrate です。移行不可能な仮想マシンが LiveMigrate エビクションストラテジーを使用していると、ノードのドレインが妨げられたり、インフラストラクチャーのアップグレードがブロックされたりする可能性があります。これは、その仮想マシンがノードからエビクトされないためです。この状況では、仮想マシンを手動でシャットダウンしない限り、移行は Pending または Scheduling 中の状態のままになります。

移行不可能な仮想マシンのエビクションストラテジーを、アップグレードをブロックしない LiveMigrateIfPossible に設定する必要があります。移行すべきでない仮想マシンの場合は、None に設定する必要があります。

10.1.1.1. コマンドラインを使用した仮想マシンエビクション戦略の設定

コマンドラインを使用して、仮想マシンのエビクション戦略を設定できます。

重要

デフォルトのエビクションストラテジーは LiveMigrate です。移行不可能な仮想マシンが LiveMigrate エビクションストラテジーを使用していると、ノードのドレインが妨げられたり、インフラストラクチャーのアップグレードがブロックされたりする可能性があります。これは、その仮想マシンがノードからエビクトされないためです。この状況では、仮想マシンを手動でシャットダウンしない限り、移行は Pending または Scheduling 中の状態のままになります。

移行不可能な仮想マシンのエビクションストラテジーを、アップグレードをブロックしない LiveMigrateIfPossible に設定する必要があります。移行すべきでない仮想マシンの場合は、None に設定する必要があります。

手順

  1. 次のコマンドを実行して、VirtualMachine リソースを編集します。

    $ oc edit vm <vm_name> -n <namespace>

    エビクション戦略の例

    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      name: <vm_name>
    spec:
      template:
        spec:
          evictionStrategy: LiveMigrateIfPossible 1
    # ...

    1
    エビクション戦略を指定します。デフォルト値は LiveMigrate です。
  2. 仮想マシンを再起動して変更を適用します。

    $ virtctl restart <vm_name> -n <namespace>

10.1.2. 戦略を実行する

spec.running: true で設定された仮想マシンはすぐに再起動されます。spec.runStrategy キーを使用すると、特定の条件下で仮想マシンがどのように動作するかを決定するための柔軟性が高まります。

重要

spec.runStrategy キーと spec.running キーは相互に排他的です。いずれか 1 つだけを使用できます。

両方のキーを含む仮想マシン設定は無効です。

10.1.2.1. 戦略を実行する

spec.runStrategy キーには 4 つの値があります。

Always
仮想マシンインスタンス (VMI) は、仮想マシンが別のノードに作成されるときに常に存在します。元の VMI が何らかの理由で停止した場合、新しい VMI が作成されます。これは、running: true と同じ動作です。
RerunOnFailure
以前のインスタンスに障害が発生した場合、VMI は別のノードで再作成されます。仮想マシンがシャットダウンされた場合など、仮想マシンが正常に停止した場合、インスタンスは再作成されません。
Manual
VMI 状態は、virtctl クライアントコマンドの startstop、および restart を使用して手動で制御します。仮想マシンは自動的には再起動されません。
Halted
仮想マシンの作成時には VMI は存在しません。これは、running: false と同じ動作です。

virtctl startstop、および restart コマンドのさまざまな組み合わせは、実行戦略に影響します。

次の表では、仮想マシンの状態間の遷移を説明します。最初の列は、仮想マシンの初期実行戦略を示します。残りの列には、virtctl コマンドと、そのコマンドの実行後の新しい実行戦略が表示されます。

表10.1 virtctl コマンドの前後でストラテジーを実行する
初期実行戦略StartStopRestart

Always

-

Halted

Always

RerunOnFailure

-

Halted

RerunOnFailure

Manual

Manual

Manual

Manual

Halted

Always

-

-

注記

インストーラーによってプロビジョニングされたインフラストラクチャーを使用してインストールされたクラスター内のノードがマシンの健全性チェックに失敗して使用できない場合は、runStrategy: Always または runStrategy: RerunOnFailure を持つ仮想マシンが新しいノードで再スケジュールされます。

10.1.2.2. コマンドラインを使用した仮想マシン実行戦略の設定

コマンドラインを使用して、仮想マシンの実行戦略を設定できます。

重要

spec.runStrategy キーと spec.running キーは相互に排他的です。両方のキーの値を含む仮想マシン設定は無効です。

手順

  • 次のコマンドを実行して、VirtualMachine リソースを編集します。

    $ oc edit vm <vm_name> -n <namespace>

    実行戦略の例

    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    spec:
      runStrategy: Always
    # ...

10.1.3. ベアメタルノードのメンテナンス

Red Hat OpenShift Service on AWS をベアメタルインフラストラクチャーにデプロイする場合は、クラウドインフラストラクチャーにデプロイする場合と比べて、考慮すべき追加の事項があります。クラスターノードが一時的とみなされるクラウド環境とは異なり、ベアメタルノードを再プロビジョニングするには、メンテナンスタスクにより多くの時間と作業が必要になります。

致命的なカーネルエラーが発生したり、NIC カードのハードウェア障害が発生する場合などにベアメタルノードに障害が発生した場合には、障害のあるノードが修復または置き換えられている間に、障害が発生したノード上のワークロードをクラスターの別の場所で再起動する必要があります。ノードのメンテナンスモードにより、クラスター管理者はノードの電源を正常に停止し、ワークロードをクラスターの他の部分に移動させ、ワークロードが中断されないようにします。詳細な進捗とノードのステータスの詳細は、メンテナンス時に提供されます。

10.1.4. 関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

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

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

会社概要

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

© 2024 Red Hat, Inc.