最近クラッシュしていると思われるポッドがあり、kubectl get pods
16 回の再起動が表示されていますが、監視を確認すると、名前に「再起動」が含まれるすべてのメトリックが空になっています。
これを監視するために何かを明示的にオンにする必要がありますか?
答え1
クラッシュする Pod のトラブルシューティングを行うには、まずその説明を確認する必要があります。
$ kubectl describe pod -n ci clair-kube-7c8d8cf949-nlhv8
Containers:
clair:
[...]
State: Running
Started: Wed, 19 Aug 2020 22:06:54 +0200
Last State: Terminated
Reason: OOMKilled
Exit Code: 137
Started: Wed, 19 Aug 2020 13:07:51 +0200
Finished: Wed, 19 Aug 2020 22:06:53 +0200
Ready: True
Restart Count: 42
ここで、コンテナのメモリ制限を上げる必要があることは明らかです。
場合によっては、理由が表示されず、終了コードのみが表示されることがあります。最終的には、それらを認識できるようになります。最初は、以前のコンテナ ログを探す必要があります。
$ kubectl logs -n ci cassandra-kube-2 -c exporter -p --tail=XX
[...]
Exception in thread "pool-1-thread-33" Exception in thread "pool-1-thread-34" java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space