はじめに
Intersight virtual appliance のコンソールにおいて、
Memory cgroup out of memory: Kill process <プロセスID> (プロセス名) ...
Killed process <プロセスID> (プロセス名)...
というログが表示される事象が確認できております。
原因
cgroup(Control Group)内で設定されたメモリ使用上限に達し、OOMKillerによってリソースを多く使っていたり、killされても影響度が少ないなどが検討され、選出されたプロセスをkillしたためにこれらのメッセージが表示されております。
cgroup: 複数のプロセスをグループ化して管理し、そのグループでのCPU, memoryといったリソースの使用量に制限をかけるような管理が出来る。
以下の例では、Virtual appliance のtechnical support を確認すると、./log/messages の中に以下のようなログが残っておりました。
Jun 1 05:33:09 host01 kernel: prometheus invoked oom-killer: gfp_mask=0x50, order=0, oom_score_adj=997
...
Jun 1 05:33:09 host01 kernel: memory: usage 3142408kB, limit 3145728kB, failcnt 148018
Jun 1 05:33:09 host01 kernel: memory+swap: usage 3145728kB, limit 3145728kB, failcnt 9315988
...
Jun 1 05:33:09 host01 kernel: [ pid ] uid tgid total_vm rss nr_ptes swapents oom_score_adj name
Jun 1 05:33:09 host01 kernel: [30360] 801 30360 1587932 785089 1691 844 997 prometheus
Jun 1 05:33:09 host01 kernel: Memory cgroup out of memory: Kill process 15772 (prometheus) score 1997 or sacrifice child
Jun 1 05:33:09 host01 kernel: Killed process 30360 (prometheus), UID 801, total-vm:6351728kB, anon-rss:3140356kB, file-rss:0kB, shmem-rss:0kB
...
Jun 1 05:33:16 host01 kubelet: I0601 05:33:16.277628 4432 prober.go:116] Readiness probe for "prometheus-7d9c57d9bc-qwpdr_default(b5f28e37-780f-4134-b51a-98bda8a93a9a):prometheus" failed (failure): HTTP probe failed with statuscode: 503
memoryのusageがlimitに達したことを受けてOOM-killer が呼び出され、prometheus のプロセスをkillしています。
その後、kubernetesの prometheusが動作するpod(Ready状態)に対するReadiness probe によりサービスの確認をしておりますが、killされていてサービス提供出来る状態にないため、failしておりました。
上記事例では、景気としてCVAのAuto upgrade 後の起動において、原因は不明となりますが prometheus が memoryリソースを消費し、kill->再起動を繰り返していたと考えられます。
対策
Intersight Appliance Maintenance Shell より[5] Restart system services を選択し、サービス再起動をお試しください。
Maintenance
[4] Show system services status
[5] Restart system services
[6] Reboot virtual appliance node
その後、エラーが解消されるか、Webコンソールからモニタください。
[5] を実施しても解消しない場合は、より詳細な調査が必要なため、弊社まで VA の techsupport と Webコンソールのスクリーンショットを取得の後、お問い合わせください。
症状が解消しない場合は[6] Reboot virtual appliance node をメンテナンスウィンドウを設けて実施ください。
[6] Reboot virtual appliance node や、Shell からの確認を含めた詳細な調査を実施させていただきます。
参考情報
[CNC] Kubernetesの正常性の確認