クラウドとコンテナの基礎
KubernetesのHorizontalPodAutoscalerで、PodのCPU使用率の目標を70%、Podの数の範囲を1〜10とした。いま5つのPodの平均のCPU使用率が30%である。必要なPodの数を ⌈現在の数 × 現在の使用率 ÷ 目標の使用率⌉(⌈ ⌉ は切り上げ)で求めるとき、必要なPodの数として、正しいものはどれか。
- A2個
- B3個
- C12個
答えと解説を見る
正解:B. 3個
HorizontalPodAutoscalerは、必要な数 = ⌈現在の数 × 現在の使用率 ÷ 目標の使用率⌉ でPodの数を決めます。5 × 30 ÷ 70 = 2.14… を切り上げて、3個です。負荷が下がったときにも同じ式で数を減らし(スケールイン)、計算した値は指定した範囲(1〜10)に収められます。実際には、使用率の比が1に近いときは変更しない許容幅や、減らす前に一定の時間だけ様子を見る仕組みがあり、Podの数が頻繁に変わりすぎないようになっています。
- A. 2.14… を切り捨てた値です。2個では1つあたりの使用率が 30 × 5 ÷ 2 = 75% となり、目標の70%を超えるので、切り上げます。
- B. 正しい。5 × 30 ÷ 70 = 2.14… を切り上げて3個です。
- C. 目標と現在の使用率を逆にした値(5 × 70 ÷ 30 = 11.7… の切り上げ)です。使用率が目標より低いので、Podの数は減ります。