State of Kubernetes Cost Optimization(Kubernetes の費用最適化の現状)レポートを初公開
Google Cloud Japan Team
※この投稿は米国時間 2023 年 6 月 29 日に、Google Cloud blog に投稿されたものの抄訳です。
ここ数年、IT 組織は試練の中にあります。COVID-19(新型コロナウイルス感染症)のパンデミックやその他のマクロ経済の逆風が続くなか、クラウド インフラストラクチャのフットプリントを最適化しながら、ビジネスの運営に欠かせないコアサービスを維持することが求められています。このたび、Google Cloud は初の State of Kubernetes Cost Optimization(Kubernetes の費用最適化の現状)レポートを公開いたしました。このレポートは、パブリック クラウドにおいてワークロードのパフォーマンスや信頼性について妥協することなく、費用対効果の高いクラスタを実行するために役立つ分析情報やベスト プラクティスを Kubernetes コミュニティに提供することを目的としています。
レポート作成の背景
このレポートは、IT 組織が費用の削減を目指すなか、各種業界で Kubernetes の導入が進んでいる現状を受けて作成されました。Kubernetes クラスタについて大規模な分析を実施し、費用を最適化するために効果的な要因の把握に努めた結果、このたび、分析結果を皆様に共有できる運びとなりました。
Twitter スペースにご参加ください
レポートの内容について詳しくは、Twitter で @googlecloudtech をフォローのうえ、2023 年 8 月 9 日午前 9 時~10 時(太平洋夏時間)に執筆者が開催予定の Twitter スペースにご参加ください。
分析の実施方法
このレポートでは、Kubernetes の費用を最適化するにあたって 4 つの「ゴールデン シグナル」に着目しました(モニタリングの 4 つのゴールデン シグナルと混同のないようご注意ください)。これらのシグナルは、Kubernetes ユーザーとの長年の共同作業から導き出されたものであり、クラスタ内のワークロードの信頼性と費用最適化のバランスを測る目安となります。これらのゴールデン シグナルを基本的な指標とし、Google Kubernetes Engine(GKE)クラスタ内の匿名化したデータを大量に調べ、ほぼ等間隔で配分した分類木を使って、個々のクラスタを「リスクあり」、「低」、「中」、「高」、「優良」に分類しました。この分類をもとに、パフォーマンスが特に高いクラスタのゴールデン シグナルを比較、分析しました。
重要なポイント: リクエストを必ず設定する
使用中の本番環境クラスタで、リクエストを設定していないワークロードがいくつあるかご存知ですか?今回の分析で明らかになった重要な点の一つは、多くのデベロッパーが、ワークロードにリクエストを設定していないという事実です。これは憂慮すべきことです。なぜなら、Kubernetes はノードの必要性に応じて、リソースを再利用するからです。たとえ最小レベルの信頼性が必要なワークロードであっても、リクエストの設定は欠かせません。
リクエストを明示的に設定しない場合、Pod にベスト エフォートの Quality of Service(QoS)クラスが割り当てられます。特定のノードでリソース不足が発生すると、通常、ベスト エフォートの Pod が最初に強制終了されます(警告や、適切な終了処理は行われません)。そのため、ワークロードでパフォーマンスや信頼性の問題が断続的に発生する可能性があります。こうした問題は、Pod のリソースの使用率や、スケジューラによる Pod の配置に応じて発生し、特定やデバッグが困難です。
リクエストが設定されていないワークロードを特定するには、以下のいずれかのツールをご利用ください。
GKE で Kubernetes クラスタを実行している場合は、リスクのある GKE ワークロードのダッシュボードをご覧ください。このダッシュボードには、ご利用の GKE クラスタ内でリクエストが設定されていないワークロードのほか、リクエストの設定方法に起因してパフォーマンスまたは信頼性がリスクにさらされているワークロードが表示されます。
Kubernetes クラスタにおいてリクエストが設定されていないコンテナをリストアップする非常に単純なスクリプトを使用したい場合は、kube-requests-checker をご覧ください。
いったんワークロードにリクエストを設定したら、次は、ワークロードのサイズ適正化を行います。費用の最適化を進めるにあたっては、ゴールデン シグナルが重要な目安となります。現状に即したリクエストを使用するほど、Kubernetes の判断の的確性が増していきます。
現在、コミュニティ全体で、リソース リクエストを適切に設定することに注目が高まっています。OpenCost プロジェクトの作成者である Ajay Tripathy 氏は、「リソース リクエストを適切に設定し、ワークロードのサイズ適正化の優先順位を付けることは、OpenCost ユーザーにとって大きな可能性を秘めています」と述べています。
まとめ
Kubernetes の費用最適化は、単独の部門が責任を負うべきテーマではありません。これは、デベロッパーや、プラットフォーム管理者、請求担当者、予算担当者などが協力して取り組むべき問題です。レポートの結果には、担当業務ごとの詳細分析や推奨事項も含まれています。
この調査でわかったことは、一回修正すればそれでおしまい、という類のものではありません。継続的に取り組むべき課題であり、時間をかけて、社内の手順として浸透させていく必要があります。
State of Kubernetes Cost Optimization レポートでわかったことをどのように受け止め、GKE に組み込んでいくべきかについて詳しくは、以下をご覧ください。
GKE で費用を最適化するためのベスト プラクティスのソリューション ガイド
GKE でワークロードのサイズ適正化を大規模に実施するためのソリューション ガイド
GKE でワークロードのサイズ適正化を大規模に実施するためのデモ動画
Cloud コンソールを使って GKE 最適化を行うためのデモ動画
サンプル ワークロードを使って GKE を試せるインタラクティブ チュートリアル
最後になりましたが、レポートのダウンロードはこちらからどうぞ。
2023 年 8 月 9 日に @googlecloudtech の Twitter スペースでこのレポートの結果を取り上げる予定ですので、フォローのうえぜひご参加ください。ご都合が合わない場合は、ブログ投稿で主な内容について一つずつ取り上げていく予定ですので、どうぞお見逃しなく。
- ソリューション アーキテクト Ameenah Burhan