web-dev-qa-db-ja.com

Kubernetesクラスター内のコンテナーが再起動するタイミング/場合/理由を確認するにはどうすればよいですか?

私は、グーグルコンテナーエンジンに単一ノードのkubernetesクラスターを配置して遊んでいます。

今度は、私がホストする小さな個人用Webサイトが数分間オフラインになりました。コンテナーのログを表示すると、最近完了した通常の起動シーケンスが表示されるので、コンテナーが死んだ(または強制終了された)と想定して再起動しました。

これがどのようにしてなぜ起こっているのかをどのように理解できますか?

コンテナーが予期せず開始/停止したときにアラートを受け取る方法はありますか?

32
Marc Hughes

以下を使用して、コンテナの最後の再起動ログを表示できます。

kubectlログpodname -c containername --previous

Sreekanthによって説明されているように、kubectl get podsは再起動の数を表示するはずですが、

kubectl describe pod podname

また、ポッドのライフサイクルイベントについて、kubeletからapiserverに送信されたイベントが表示されます。

/ dev/termination-logに最終メッセージを書き込むこともできます。これは the docs で説明されているように表示されます。

42
beeps

前の回答に加えて、エラーを見つけるのに役立つ別のコマンドは次のとおりです。

kubectl get event [--namespace=my-namespace]

ポッド、ジョブ、ノードからのイベントもリストされます

kubectl get podsは実際にはコンテナーの再起動を一覧表示します。describeコマンドは、ポッドに関連付けられているすべてのイベントを一覧表示するのに役立ちます。

活性プローブと準備プローブは、より適切に処理できるように設定できます ここをチェック

さらに、フックは、コンテナーのライフサイクルの特定の時点でコンテナーで消費されるように構成できます ここをチェック

8