私はminikube(kubernetes)開発環境のドッカーコンテナにホストされている普遍的な反応アプリを持っています。私はvirtualboxを使用していますが、実際にはこのVMでより多くのマイクロサービスを利用しています。ローカルで動作するサービスがドッカーで頻繁にシグナルを殺すのはなぜですか?
この反応アプリでは、サーバーコードの変更時にpm2
を使用してアプリケーションを再起動し、クライアントコードの変更時にクライアントコードをホットリロードするためにwebpack hmr
を使用します。
すべて15秒〜45秒と言うと、pm2
は、SIGKILL
のためにアプリが終了したことを示す次のメッセージを私に記録しています。
App [development] with id [0] and pid [299], exited with code [0] via signal [SIGKILL]
なぜ私はそれが起こっているのか理解できません。それは比較的頻繁ですが、それほど頻繁ではなく毎秒発生します。それが起こるたびに、私のwebpackバンドルは再コンパイルする必要があるので、かなり迷惑です。
pm2
がこのタイプの開発環境でSIGKILLを受け取る理由は何ですか?また、これをデバッグするいくつかの方法がありますか?
pm2を使用してサーバーの変更を再開するサービスが、バックエンドサービスである場合にこの問題が発生していないことに気付きました。私。彼らはwebpack
を持っていません。加えて、私はこれらのSIGKILLの問題が私の巧妙なバージョンのアプリでは見られません。 Webpack hmr setup、pm2、minikube/dockerの組み合わせにはいくつか問題があることが示唆されています。
私はローカルで(ドッカー/ミニクーではありません)アプリを試しましたが、sigkillsなしでうまく動作するので、独自にwebpack hmrすることはできません。 kubernetesは多くのメモリを使用するサービスを停止しますか? (おそらく、私のアプリがたくさんのメモリを使っていると思うかもしれない)。そうでない場合、クベネネやドッカーがSIGKILLを送信する理由は何でしょうか?これをデバッグする方法はありますか?
ご指摘いただきありがとうございます。ありがとう
あなたのポッドが実行されている名前空間から 'kubectl get events'の出力は何ですか?比較的頻繁に起こる場合、 'kubectl get events --watch'を実行する価値があります。 – jaxxstorm