9

私は多くのサービスを持っています。1 日のうち、いくつかのサービスが約 10 時間ビジーである一方で、他のほとんどのサービスはアイドル状態であるか、少量の CPU を使用しています。

以前は、すべてのサービスを 2 つの CPU を持つ仮想マシンに配置し、CPU の使用量によってスケーリングしました。最も忙しい時間には 2 つの仮想マシンがありますが、ほとんどの場合は 1 つしかありません。

サービス インスタンス 一日の忙しい時間 ビジー状態の CPU
(コア/サービス)
アイドル時の CPU
(コア/サービス)
忙しいサービス 2 8~12時間 0.5~1 0.1~0.5
忙しいサービス 2 8~12時間 0.3~0.8 0.1~0.3
非アクティブなサービス 30 0~1時間 0.1~0.3 < 0.1

今、私はそれらを kubernetes に入れたいです。各ノードには 2 つの CPU があり、ノードの自動スケーリングと HPA を使用します。ノードの自動スケーリングを行うには、すべてのサービスに対して要求の CPU を設定する必要があります。

これが私の設定です。

サービス インスタンス 忙しい時間 CPU を要求します
(CPU/サービス)
合計リクエスト CPU
忙しいサービス 2 8~12時間 300m 600m
忙しいサービス 2 8~12時間 300m 600m
非アクティブなサービス 30 0~1時間 100m 3000m

注: 非アクティブなサービス リクエストの CPU は、ビジー状態のときに 100m 未満であるとうまく動作しないため、100m に設定されています。

この設定では、ノードの数は常に 3 より多くなり、コストがかかりすぎます。問題は、これらのサービスが適切に動作するために 100m の CPU を必要とするにもかかわらず、ほとんどがアイドル状態であることだと思います。

すべてのサービスが自動スケーリングできることを心から願っています。これは、ポッドをより柔軟に割り当てるのに役立つ kubernetes の利点だと思います。私の考えは間違っていますか?非アクティブなサービスにリクエスト CPU を設定するべきではありませんか?

非アクティブなサービスを無視しても。多くの場合、kubernetes には 2 つ以上のノードがあることがわかりました。オフピーク時であっても、より多くのアクティブなサービスがある場合、リクエストの CPU は 2000m を超えます。解決策はありますか?

4

1 に答える 1