9.17.13. 仮想マシンでの descheduler 退避の有効化


descheduler を使用して Pod を退避させ、より適切なノードに Pod を再スケジュールすることができます。Pod が仮想マシンの場合、Pod の退避により、仮想マシンが別のノードにライブマイグレーションされます。

9.17.13.1. descheduler プロファイル

デスケジューラープロファイルを使用すると、Pod のライフサイクルやノードの使用率などの基準に基づいてクラスターのバランスを再調整する、特定の退避ストラテジーを有効にできます。

仮想マシンで descheduler を有効にするには、KubeVirtRelieveAndMigrate または LongLifecycle プロファイルを使用します。

重要

KubeVirtRelieveAndMigrateLongLifeCycle の両方を同時に有効化することはできません。

KubeVirtRelieveAndMigrate

このプロファイルは、LongLifeCycle プロファイルの拡張バージョンです。

KubeVirtRelieveAndMigrate プロファイルは、高コストのノードから Pod を退避させて、全体的なリソースのコストを削減し、ワークロードの移行を可能にします。また、定期的にワークロードのバランスを再調整して、ノード全体で同様の予備容量を維持し、ワークロードの急増をより適切に処理できるようにします。ノードには次のようなコストが発生する可能性があります。

  • リソース使用量: リソースが逼迫すると、アプリケーション実行のオーバーヘッドが増加します。
  • ノードのメンテナンス: ノード上のコンテナーの数が増えると、リソースの消費量とメンテナンスコストが増加します。

このプロファイルは、アルファ機能である EvictionsInBackground を使用して LowNodeUtilization ストラテジーを有効にします。また、このプロファイルは次のカスタマイズフィールドを公開します。

  • devActualUtilizationProfile: 負荷を考慮した descheduler による再スケジュールを有効にします。
  • devLowNodeUtilizationThresholds: LowNodeUtilization ストラテジーの実験的なしきい値を設定します。このフィールドを devDeviationThresholds と一緒に使用しないでください。
  • devDeviationThresholds: リソース使用率が平均以下のノードを、使用率が低いノードとして扱い、過剰に使用されているノードからワークロードを再分配します。このフィールドを devLowNodeUtilizationThresholds と一緒に使用しないでください。サポートされている値は、Low (10%:10%)、Medium (20%:20%)、High (30%:30%)、AsymmetricLow (0%:10%)、AsymmetricMedium (0%:20%)、AsymmetricHigh (0%:30%) です。
  • devEnableSoftTainter: ソフト taint 適用コンポーネントがソフト taint をスケジュールヒントとして動的に適用または削除できるようにします。

設定例

apiVersion: operator.openshift.io/v1
kind: KubeDescheduler
metadata:
  name: cluster
  namespace: openshift-kube-descheduler-operator
spec:
  managementState: Managed
  deschedulingIntervalSeconds: 30
  mode: "Automatic"
  profiles:
    - KubeVirtRelieveAndMigrate
  profileCustomizations:
    devEnableSoftTainter: true
    devDeviationThresholds: AsymmetricLow
    devActualUtilizationProfile: PrometheusCPUCombined

KubeVirtRelieveAndMigrate プロファイルでは、すべてのワーカーノードで PSI メトリクスを有効にする必要があります。これを有効にするには、次の MachineConfig カスタムリソース (CR) を適用します。

MachineConfig CR の例

apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
  labels:
    machineconfiguration.openshift.io/role: worker
  name: 99-openshift-machineconfig-worker-psi-karg
spec:
  kernelArguments:
    - psi=1

注記

マシン設定は辞書順で処理されるため、MachineConfig オブジェクトの名前は重要です。デフォルトでは、98- で始まる設定は PSI を無効にします。PSI が有効になっていることを確認するには、99-openshift-machineconfig-worker-psi-karg のように、上位の接頭辞を使用して設定に名前を付けます。

このプロファイルを SoftTopologyAndDuplicates プロファイルとともに使用して、ソフトトポロジー制約に基づいて Pod のバランスを再調整することもできます。これは、Hosted Control Plane 環境で役立ちます。

LongLifecycle

このプロファイルは、ノード間のリソース使用率のバランスを取り、以下のストラテジーを有効にします。

  • RemovePodsHavingTooManyRestarts: コンテナーが何度も再起動された Pod、およびすべてのコンテナー (Init コンテナーを含む) の再起動の合計が 100 を超える Pod を削除します。仮想マシンのゲストオペレーティングシステムを再起動しても、この数は増えません。
  • LowNodeUtilization: 使用率の低いノードがある場合に、使用率の高いノードから Pod を退避します。退避された Pod の宛先ノードはスケジューラーによって決定されます。

    • ノードは、使用率がすべてのしきい値 (CPU、メモリー、Pod の数) で 20% 未満の場合に使用率が低いと見なされます。
    • ノードは、使用率がすべてのしきい値 (CPU、メモリー、Pod の数) について 50% を超える場合に過剰に使用されていると見なされます。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る