Containers & Kubernetes

GKE のベスト プラクティス: コスト最適化クラスタを数クリックで作成する方法

#containers

※この投稿は米国時間 2021 年 7 月 23 日に、Google Cloud blog に投稿されたものの抄訳です。

コンピューティング インフラストラクチャに必要以上の費用をかけたい組織などありません。それは、Kubernetes プラットフォームについても同様です。Google Kubernetes Engine(GKE)をご利用のお客様の場合、コスト最適化クラスタを作成する最も簡単な方法は GKE Autopilot を選択することです。しかし、Autopilot を使うのにも準備が必要です。これから準備しようとしているお客様のために、コストが最適化された Kubernetes アプリケーションを GKE で実行するためのベスト プラクティス ガイドを提供しています。このガイドでは、GKE に備わっている主なコスト最適化機能と、それらの機能を実装する際に組織で考慮すべき事項をご確認いただけます。そして今回、そのガイドで説明している設定をもっと簡単に適用できるよう、組み込みの GKE コスト最適化クラスタ設定ガイドのご提供を開始しました。

この新しいクラスタ設定ガイドを使うと、コストが最適化された Kubernetes クラスタをたった数クリックで作成し、GKE の主なコスト最適化機能を簡単に確認できます。しかも、その際にクラスタ作成ワークフローを中断する必要もありません。この設定ガイドは、次のような方に適したリソースです。

  • クラスタのサイズだけ自分で設定し、コスト最適化クラスタを作成する手順の大部分は Google のガイドに従って操作したいユーザー

  • GKE の最新のコスト最適化機能に関する簡単なチュートリアルを求めている経験豊富な GKE 担当者

  • コストとパフォーマンスのバランスに優れた環境を必要としている開発者

  • GKE を使い始めたばかりの方

この設定ガイドは、目的のクラスタに適した構成をバックグラウンドでインテリジェントに判断してデフォルトとして提示します。これにより、次の各項目に関する判断を容易に行えるようになり、お使いの GKE Standard の設定を GKE Autopilot で実装されるベスト プラクティスに近づけることができます。

GKE コスト最適化設定ガイドの使い方

設定ガイドには、Cloud Console の GKE クラスタ作成オプションからアクセスできます。

1 cost-optimized.jpg

手順は次のとおりです。

  • クラスタに名前を付け、リージョンと使用するリリース チャンネルを選択します。

  • クラスタサイズの範囲を、CPU 数で指定します。

  • GKE 使用量メータリング データのエクスポート先を指定します。

以上を行えば、あとは GKE が自動的に処理します。以下では、設定ガイドの進行に合わせて、各手順で実際に設定する項目を具体的に見ていきます。驚かれるかもしれませんが、設定ガイドを使用した手順は本当にこれほどシンプルなのです。

バックグラウンドで行われていること

設定ガイドを使用するとコスト最適化クラスタを簡単に作成できますが、実はバックグラウンドで多くの処理が行われています。

コスト最適化クラスタへの最初の手順はクラスタのサイズを決めることです。この手順では、ノード自動プロビジョニングを有効にします。CPU の最小数と最大数を入力すれば、作成するクラスタで最適なメモリ比率の推奨値が表示されます。

2 cost-optimized.jpg

次の手順ではマシンタイプを検証します。これは、「デフォルトのノードプールではどのマシンサイズを使用するべきか」という、極めてよくある質問の答えとなります。

3 cost-optimized.jpg

クラスタのノードでは、実際のワークロード以外にもエージェントやプロキシなどが GKE によって実行されます。そのため、コストとパフォーマンスの最適なバランスを保つためには、適切な VM サイズを指定することが重要です。そのために、設定ガイドでは、先ほどの手順で指定したクラスタの最小サイズと最大サイズに基づいてマシンタイプとサイズが提案されます。繰り返しになりますが、最終的な何を選択するかは完全にお客様自身が決めることができます。デフォルトでは、コストが最適化された汎用のマシンタイプが選択されています。

次の手順では詳細設定を行います。いくつもの重要な設定が事前に入力されており、基本的にその設定を変更する必要はありません(もちろん、変更することもできます)。

4 cost-optimized.jpg

たとえば、使用率を最適化するため、クラスタの自動スケーリング プロファイルが設定されます。この処理では、クラスタ内で保持される余剰リソースを調整することで使用率が最適化されます。選択すると、クラスタ オートスケーラーはクラスタをより積極的にスケールダウンします。つまり、ノードをより多く、より迅速に削除できます。

加えて、デフォルトのプール専用のクラスタ オートスケーラーが有効化されるので、デフォルトのノードプールを常に指定の範囲内に維持できます。

また、垂直 Pod 自動スケーリングもデフォルトで有効となります。これにより、必要に応じて、ワークロードに対応する推奨事項がクラスタから提示されます。この設定によってクラスタやワークロードに悪影響が及ぶことはありません。

さらに、最適化は測定値に基づいて行うものであるため、ライフサイクルの任意の時点でクラスタの使用率を把握し、改善するための中核的な手段としてクラスタ使用率の観察と測定を行う必要があります。そのため、GKE 使用率メータリングがデフォルトで有効になっています。そのデータのエクスポート先とする BigQuery データセットを選択すれば、設定は完了です。設定ガイドの他の手順と同じく、この手順も省略できます。

5 cost-optimized.jpg

設定はこれで完了です。コスト最適化クラスタを使用する準備が整いました。


上級者向けのヒント: 設定ガイドで指定した内容をメインのクラスタ作成フローに適用し、クラスタの編集を続けるには、[変更を適用] をクリックします。



6 cost-optimized.jpg

作成したクラスタが立ち上がるのを待つ間、インフラストラクチャの最適化に続けて検討したい次のステップをご確認ください。

7 cost-optimized.jpg

Google Cloud のベスト プラクティス ガイドを読む: インフラストラクチャ以外の最適化に関する情報と、クラスタの使用準備が整った際にワークロードレベルで最適化を行う方法を確認できます。

GKE のコストの最適化に関する、上級者向けの資料集動画シリーズも併せてご覧ください。チーム内で共有し、一丸となって GKE コストの最適化を進めましょう。

-GKE プロダクト マネージャー Roman Arcea