クラウドとコンテナの基礎
resources:
requests:
cpu: 500m
limits:
cpu: 1000mPodのコンテナに上の設定をしたDeploymentで、Podが4つ動いており、どのPodもCPUを400m(0.4コア)ずつ使っている。HorizontalPodAutoscalerのCPU使用率の目標を60%とし、必要なPodの数は ⌈現在の数 × 現在の使用率 ÷ 目標の使用率⌉ で求めるものとする。必要なPodの数として、正しいものはどれか。
- A3個
- B5個
- C6個
答えと解説を見る
正解:C. 6個
HorizontalPodAutoscalerが使うCPU使用率は、limits ではなく requests に対する割合です。各Podは 400m ÷ 500m = 80% を使っているので、必要な数は 4 × 80 ÷ 60 = 5.33… を切り上げて6個です。6個に増えると、全体の使用量 400m × 4 = 1,600m が分け合われて1つあたり約267m、使用率は約53%になり、目標を下回ります。requests を設定していないと、CPU使用率を基準にした自動スケーリングは働きません。
- A. limits(1000m)に対する割合の40%で計算した値(4 × 40 ÷ 60 = 2.67… の切り上げ)です。使用率は requests を基準にします。
- B. 5.33… を切り捨てた値です。5個では1つあたり 1,600m ÷ 5 = 320m、使用率64%で、目標の60%を超えます。
- C. 正しい。使用率80%から 4 × 80 ÷ 60 = 5.33… を切り上げて6個です。