ベアメタル版 Anthos クラスタの VM 用のエビクション ポリシーを構成する

このドキュメントは、ベAnthos clusters on bare metal で仮想マシン(VM)を実行するプラットフォーム管理者を対象としています。このドキュメントでは、Anthos VM ランタイムを使用する VM を、メンテナンス イベント中に他のホストに自動的に移行する方法を制御するエビクション ポリシーを構成する方法について説明します。これらの構成設定を使用すると、クラスタをアップグレードしたり、ホストでメンテナンスを実行したりするときに、VM を他のホストで実行し続けることができます。

準備

このドキュメントの内容を最後まで行うには、Anthos clusters on bare metal バージョン 1.12.0(anthosBareMetalVersion: 1.12.0)以降にアクセスする必要があります。ワークロードを実行可能な、どのクラスタタイプでも使用できます。必要に応じて、Compute Engine の Anthos clusters on bare metal を試すか、クラスタ作成の概要をご覧ください。

エビクション ポリシーの設定

ベアメタル版 Anthos クラスタを使用すると、クラスタをアップグレードしたり、ノードをメンテナンス モードにする際のノードの動作を構成できます。Anthos VM ランタイムは、これらのイベント中に実行される VM をクラスタがどのように取り扱うかを制御するエビクション ポリシーを使用します。

有効にすると、Anthos VM ランタイムはデフォルトでライブ マイグレーションを使用して VM ワークロードを別のホストに移動します。この動作により、VM ワークロードの中断が最小限に抑えられます。ライブ マイグレーションでは、移行可能な VM がゲスト OS を中断することなく 1 つのホストから別のホストに移動します。

次のエビクション ポリシー設定を構成できます。

プロパティ デフォルト 有効な値
evictionStrategy LiveMigrate LiveMigrateRestart
maxMigrationAttemptsPerVM 3 [1,5] の範囲の整数
migrationTargetInitializationTimeout 30s 有効な長さの文字列(1m2h1h30m

evictionStrategy

この値を LiveMigrate に設定すると、Anthos VM ランタイムは移行可能な VM をノードから移行して強制排除します。VM はクラスタ内の別のノードに配置され、引き続き実行されます。

この値が Restart に設定されている場合、Anthos VM ランタイムは VM の移行を試みません。代わりに、ノードがメンテナンス モードになると VM は停止し、ノードがメンテナンス モードから離れると VM が再起動します。ホスト メンテナンス イベント中は VM が利用できなくなります。

LiveMigrate 戦略を選択すると、Anthos VM ランタイムは移行不可の VM 用の Restart 戦略に戻ります。

maxMigrationAttemptsPerVM

この設定は、Restart 戦略が適用される前に特定の VM に対して実行できる移行の試行の最大数を制御します。

evictionStrategyRestart に設定されている場合、この設定は無視されます。

migrationTargetInitializationTimeout

この設定は、移行が失敗とみなされずに、移行が開始するまでにかけることができる最長時間を制御します。開始に時間がかかりすぎる移行は、VM ワークロードの移行予算にカウントされます。

evictionStrategyRestart に設定されている場合、この設定は無視されます。

エビクション ポリシーを有効にして構成する

Anthos VM ランタイムでエビクション ポリシーを使用するには、クラスタの VMRuntime オブジェクトに evictionPolicy 設定を定義する必要があります。この設定は、Anthos clusters on bare metal バージョン 1.12 以降でデフォルトで有効になっています。以前のバージョンからアップグレードする場合は、この設定を手動で有効にする必要があります。

evictionPolicy: {} などの空のオブジェクトを使用すると、エビクション ポリシーがデフォルト設定で有効になります。デフォルトの動作を変更するには、追加の構成オプションを evictionPolicy オブジェクトに追加します。

エビクション ポリシーを有効にして構成するには、次の手順を完了します。

  1. VMRuntime カスタム リソースを編集します。

    kubectl edit vmruntime vmruntime
    
  2. 空のオブジェクトを使用して evictionPolicy セクションを追加または更新して、デフォルトのエビクション ポリシー設定を使用するか、または必要な設定を追加します。

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      disableCDIUploadProxyVIP: false
      enabled: true
      evictionPolicy: {}
      useEmulation: false
    

    evictionPolicy が入力されていない場合(evictionPolicy: null など)、またはマニフェストに含まれていない場合、特別なアクションは実行されません。VM は強制的に立ち退かされます。

    次のマニフェストの例は、VM のライブ マイグレーションを有効にする方法、またはメンテナンスが完了した後に同じホストで VM を再起動する方法を示しています。

    ライブ マイグレーション

    次のエビクション ポリシーの例では、VM のライブ マイグレーションを有効にします。クラスタはライブ マイグレーションを、プロセスを起動するたびに30 秒のタイムアウトで、3 回まで再試行できます。

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      disableCDIUploadProxyVIP: false
      enabled: true
      evictionPolicy:
        evictionStrategy: LiveMigrate
        maxMigrationAttemptsPerVM: 3
        migrationTargetInitializationTimeout: 30s
      useEmulation: false
    

    再起動

    次のエビクション ポリシーの例では、エビクション中に VM の移行が試行されません。現在のホストで VM は停止し、ホストのメンテナンス イベントが終了すると再起動します。

    apiVersion: vm.cluster.gke.io/v1
    kind: VMRuntime
    metadata:
      name: vmruntime
    spec:
      disableCDIUploadProxyVIP: false
      enabled: true
      evictionPolicy:
        evictionStrategy: Restart
      useEmulation: false
    
  3. VMRuntime カスタム リソースをエディタに保存して閉じます。

    Anthos VM ランタイムは、クラスタ内の VM にエビクション ポリシーを適用します。

次のステップ