本文の内容は、2023年3月2日に JAVIER MARTÍNEZ が投稿したブログ(https://sysdig.com/blog/millions-wasted-kubernetes)を元に日本語に翻訳・再構成した内容となっております。 Sysdig 2023年度クラウドネイティブセキュリティおよび利用状況レポートは、組織がクラウド環境をどのように管理しているのかに光を当てました。実際のお客様をベースに、数十億のコンテナのデータを集約し、2023年のクラウドネイティブの状況をスナップショットとしてまとめたレポートです。 当社のレポートでは、以下の分野のクラウドプロジェクトからデータを取得しています。
- CPUとメモリの使用量が必要以上に少ないコンテナの数
- CPUのリミットが設定されていないコンテナの数
- オーバーアロケーションと推定損失
リミットとリクエスト
この1年間で、リミットとリクエストの重要性を取り上げてきました。簡単に言えば、これらはそれぞれコンテナに対するコンピューティング・リソースの最大量と保証量を指定する方法を提供するものです。 しかし、それだけではなく、特定のプロセスに対する企業の意思を示すものでもあります。また、そのコンテナを実行するPodのeviction ティアレベルやQoSを定義することも可能です。 私たちの調査によると:- 49% のコンテナで、メモリのリミットが設定されていません。
- 59%のコンテナで、CPUのリミットが設定されていません。
59% のコンテナで CPU リミットが設定されていない
当社の調査では、59%のコンテナでCPUリミットがまったく設定されていないことがわかりました。通常、CPUリミットを設けるとスロットリングになる可能性がありますが、このレポートでは、購入したCPUの平均69%が未使用であり、キャパシティプランニングが行われていないことが示唆されています。メモリリミットのないコンテナが49%存在
コンテナーのほぼ半分には、メモリリミットがまったくありませんでした。 メモリにリミットを追加すると最終的に OOM エラーが発生する可能性があるため、この特定のケースは特別です。Kubernetesのオーバーアロケーション
クラウドプロバイダーは、クリックするだけの簡単な操作でアプリケーションを実行できるオプションをたくさん提供しており、これは監視の旅を始めるには最適な方法です。しかし、クラウドネイティブの企業は、飽和状態になるのを避けるためだけにリソースを割り当てる傾向があり、これが天文学的なコストにつながることがあります。 なぜこのようなことが起こるのでしょうか?- 迅速なスケーリングの必要性
- リソース消費の可視化不足
- マルチテナント・スケーリング
- Kubernetesの知識不足
- キャパシティプランニングの欠如
CPUオーバーコミットメント
設定されたリミットが実際のCPUよりも高い場合、Kubernetesノードが表示されます:Allocated resources: (Total limits may be over 100 percent, i.e., overcommitted.)これは、Kubernetesが一部のプロセスをスロットルして、より高いCPU使用率を提供することを意味します。