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