私はまだkubernetesで私の足を私の下に置いています。 AWSのKubernetes 1.4.2で実行されている〜17個のマイクロサービスを備えたSpring-Bootベースのアプリケーションがあります。このアプリケーションを4 m3.mediumワーカーのAWSクラスタで実行すると、私のコンテナは、休息状態で200-300 MBのメモリ使用量になります(いくつかの例外を除いて)。生産のために、4m4の大きな作業員に同じセットのサービスをインストールし、即座に私のメモリは、ほぼ同じ仕様の同じコンテナに700-1000MBのメモリを移動しました。私はSpringboot、Docker、Kubernetesの誰が怒っているのか理解しようとしています。Kubernetesポッドは大きなマシンであまりにも多くのメモリを使用しています
誰もこのような行動を見たことがありますか?
私はKubernetesの制限を使ってリソースを制限することができますが、アプリケーションが小さいマシンでうまく動作し、フットプリントが小さいことがわかっているので、実際にはしたくありません。問題がどこにあるかについてのアドバイスを探してください。
EDIT:もう1つの情報または関連情報。私はホストOSイメージとしてCoreOS stable 1298.6.0を使用しています。
GKEでakkaワーカーを実行しているのとまったく同じ問題がありました。ポッドはn1.standardマシンで500mbの制限でうまく動作し、2000mbの制限でn4.standardマシンに移動すると、限界を突破して追い出されるようになりました(これは本当にメモリ使い方は変わりません) –
アプリケーションは、マシンの容量に基づいてリソース使用量(プロセス数/スレッド数など)を調整しますか?アプリケーションがメトリックを提供する場合は、サイドバイサイドの比較を行うことができます。 –
これは非常に巧妙な質問ですが、私はテストに入れたいと思っていますが、この問題は私の以前の仕事で起きたので、私はもはやそのメトリクスにアクセスできなくなりました。私が再現することができれば、私はこれらのことを確認するでしょう。 –