クラウドとコンテナの基礎
Kubernetesで、コンテナに設定する資源の requests と limits の説明として、正しいものはどれか。
- Aノードの選択には requests が使われ、メモリが limits を超えると強制終了されることがあり、CPUは limits までに抑えられる
- Bスケジューラは limits の合計がノードの資源に収まるようにPodを配置し、CPUの使用量が requests を超えたコンテナは強制終了される
- Crequests はコンテナが使える上限で、使用量が requests を超えると、メモリでもCPUでも、コンテナはすぐに強制終了される
答えと解説を見る
正解:A. ノードの選択には requests が使われ、メモリが limits を超えると強制終了されることがあり、CPUは limits までに抑えられる
requests は、コンテナが確保しておきたい資源の量で、スケジューラは、ノードに置かれたPodの requests の合計がノードの割り当て可能な量を超えないように、Podを置くノードを選びます。limits は使用量の上限です。CPUは時間で分け合える資源なので、limits を超えそうになると使用が抑えられ(スロットリング)、処理が遅くなります。メモリは取り上げることが難しいので、limits を超えて使おうとしたコンテナは、メモリ不足として強制終了(OOMKilled)されることがあります。
- A. 正しい。配置は requests、上限は limits で、超えたときの扱いはCPUとメモリで異なります。
- B. 配置の判断には、limits ではなく requests が使われます。また、CPUを多く使っても強制終了はされず、使用が抑えられます。
- C. requests を超えて使うこと自体はでき、上限は limits です。CPUは limits を超えても強制終了ではなく、使用が抑えられます。