Kubernetes - 各コンテナに必要なリソースを計算するにはどうすればよいでしょうか?

Kubernetes - 各コンテナに必要なリソースを計算するにはどうすればよいでしょうか?

各アプリケーションのデプロイメントに割り当てる最小および最大リソース量を把握するにはどうすればよいでしょうか? クラスターをセットアップしていますが、リソースをセットアップしておらず、自由に実行させています。

ピーク時の負荷を把握してそれに対処するためにを使用できると思いますが、それでも上部には 6% や 10% などと表示されますが、や のtop commandようなものを生成するためにそれらをどのように計算すればよいかわかりません。使用状況に基づいて最大値と最小値を決定する方法/式はありますか?0.5 cpu100 MBtop command

2 つの t3.medium ノードを実行しており、次のポッドがあります。httpd and tomcat in namespace1必要な最小リソースに関するガイドはありますか? または、top または他の方法に基づいて計算する必要がありますか?mysql in namepsace2jenkins and gitlab in namespace3

答え1

ポッドに割り当てられるリソースは、アプリケーションの使用状況によって異なります。たとえば、jenkinshelmを使用してインストールする場合は、次のように指定します。リソース要求と制限:

  resources:
    requests:
      cpu: "50m"
      memory: "256Mi"
    limits:
      cpu: "2000m"
      memory: "4096Mi"

しかし、リソース不足によるポッドの終了を回避するには、Horizontal Pod Autoscalerリソースメトリックを使用して、資源消費(または他のカスタムメトリック(リクエストなど)。HPAではmetrics-serverクラスター内で実行されます。

簡単に作成できますkubectl autoscale、 例えば:

kubectl autoscale deployment <deployment-name> --cpu-percent=50 --min=1 --max=10

--minは実行されるレプリカの最小数であり、は負荷--maxが増加した場合作成されるポッドのレプリカの最大数です。

関連情報