8.4.5. Pod エビクションについて
OpenShift Container Platform の Pod エビクションポリシーを理解するには、以下の概念を確認してください。
OpenShift Container Platform は、ノードのメモリーが枯渇した場合、そのノードから Pod をエビクトできます。メモリー消費の度合いによっては、エビクションが円滑に行われる場合もあれば、そうでない場合もある。グレースフルなエビクションとは、各コンテナーのメインプロセス (PID 1) が SIGTERM シグナルを受信し、それでもプロセスがまだ終了していない場合に、しばらくしてから SIGKILL シグナルを受信することを意味します。グレースフルではないエビクションとは、各コンテナーのメインプロセスが直ちに SIGKILL シグナルを受信することを意味します。
退避した Pod のフェーズは Failed になり、理由は Evicted になります。restartPolicy の値に関係なく、再起動されません。ただし、レプリケーションコントローラーなどのコントローラーは Pod の失敗したステータスを認識し、古い Pod に置き換わる新規 Pod を作成します。
$ oc get pod test
出力例
NAME READY STATUS RESTARTS AGE
test 0/1 Evicted 0 1m
$ oc get pod test -o yaml
出力例
apiVersion: v1
kind: Pod
metadata:
name: test
...
status:
message: 'Pod The node was low on resource: [MemoryPressure].'
phase: Failed
reason: Evicted