Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

24.2.3. エビクションのしきい値について

ノードを設定してエビクションしきい値を指定できます。しきい値に達すると、リソースを回収するようにノードがトリガーされます。ノード設定ファイル でしきい値を設定することができます。

関連付けられた猶予期間とは別にエビクションのしきい値に達する場合、ノードは、ノードがメモリー不足またはディスク不足であることを示す状態を報告します。不足を報告することで、リソースの回収が試行されている間、スケジューラーはノード上の追加の Pod をスケジュールすることができなくなります。

ノードは、node-status-update-frequency 引数で指定された頻度で、ノードのステータス更新を継続的に報告します。デフォルトの頻度は 10s (10 秒) です。

エビクションのしきい値は、しきい値に達する際にノードが即時にアクションを実行する場合に ハード となり、リソース回収前の猶予期間を許可する場合は ソフト になります。

注記

ソフトエビクションの使用は、特定のレベルの使用率をターゲットにする場合により一般的ですが、一時的な値の上昇を許容できます。ソフトエビクションは、ハードエビクションのしきい値よりも低く設定することが推奨されますが、期間はオペレーターが固有に設定できます。システム予約もソフトエビクションのしきい値以上に設定する必要があります。

ソフトエビクションのしきい値は高度な機能になります。ソフトエビクションのしきい値の使用を試行する前にハードエビクションのしきい値を設定してください。

しきい値は以下の形式で設定されます。

<eviction_signal><operator><quantity>
  • eviction-signal 値は任意の サポートされるエビクションシグナル にすることができます。
  • operator 値は < になります。
  • quantity 値は、Kubernetes で使用される 数量表現 と一致している必要があり、% トークンで終了する場合はパーセンテージで表現することができます。

たとえば、オペレーターが 10Gi メモリーのあるノードを持つ場合で、オペレーターは利用可能なメモリーが 1Gi を下回る場合にエビクションを導入する必要がある場合、メモリーのエビクションしきい値は以下のいずれかで指定することができます。

memory.available<1Gi
memory.available<10%
注記

ノードはエビクションしきい値の評価とモニターを 10 秒ごとに実行し、値を変更することはできません。これはハウスキープ処理の間隔になります。

24.2.3.1. ハードエビクションのしきい値について

ハードエビクションのしきい値には猶予期間がありません。ハードエビクションのしきい値に達すると、ノードは関連付けられたリソースを回収するために即時のアクションを実行します。たとえば、ノードは正常に終了せずに、1 つ以上の Pod をすぐに終了できます。

ハードエビクションのしきい値を設定するには、ポリシー作成のためのノード設定の使用 に示されるように、エビクションしきい値を eviction-hard の下にある ノード設定ファイル に追加します。

ハードエビクションのしきい値が設定されたノード設定ファイルのサンプル

kubeletArguments:
  eviction-hard:
  - memory.available<500Mi
  - nodefs.available<500Mi
  - nodefs.inodesFree<5%
  - imagefs.available<100Mi
  - imagefs.inodesFree<10%

この例は一般的なガイドラインを示すためのもので、推奨される設定ではありません。

24.2.3.1.1. デフォルトのハードエビクションしきい値

OpenShift Container Platform は、eviction-hard に以下のデフォルト設定を使用します。

...
kubeletArguments:
  eviction-hard:
  - memory.available<100Mi
  - nodefs.available<10%
  - nodefs.inodesFree<5%
  - imagefs.available<15%
...