Kubecost を使用したコスト ガバナンス
コスト ガバナンスは、コストを管理するためのポリシーを実装する継続的なプロセスです。 Kubernetes のコンテキストでは、組織がコストを管理および最適化できるいくつかの方法が存在します。 これには、リソースの使用状況や消費を管理および制御し、基になるインフラストラクチャを予防的に監視および最適化するためのネイティブな Kubernetes ツールが含まれます。
このセクションでは、Kubecost を使用して Azure Kubernetes Service (AKS) クラスターのコストを管理する方法を示します。 コスト割り当てのスコープをデプロイ、サービス、ラベル、ポッド、または名前空間に指定できるため、クラスター ユーザーのチャージバックまたは表示での柔軟性が提供されます。
Kubecost をインストールする
Kubecost には、いくつかのインストール オプションがあります。 詳細については、Kubecost のインストールに関するページを参照してください。
推奨されるインストール方法は、Helm 3 チャートです。 Helm 3 を使用して Kubecost の基本構成をインストールするには、次のコマンドを使用します。
helm repo add kubecost https://kubecost.github.io/cost-analyzer/
helm repo update
helm upgrade --install kubecost kubecost/cost-analyzer --namespace kubecost --create-namespace
数分経ったら、Kubecost が起動して実行中であることを確認します。
kubectl get pods -n kubecost
# Connect to the Kubecost dashboard UI
kubectl port-forward -n kubecost svc/kubecost-cost-analyzer 9090:9090
ここでブラウザーを開き、http://127.0.0.1:9090
を指定して Kubecost UI を開くことができます。 Kubecost UI で、コスト割り当て情報を表示するクラスターを選択します。
Azure クラウド統合用の Kubecost の構成
Kubecost のインストールを完了するには、Azure クラウドの統合と Azure 価格カードの構成を構成する必要があります。
Microsoft Cost Exportにより、毎日、Cost Management データを Azure Storage に自動的にエクスポートする定期的なタスクを作成できます。 Kubecost はこのストレージ アカウント内のデータにアクセスするように構成されるので、AKS クラスターからのデータだけでなく、Azure リソースの合計コストをダッシュボードに表示できます。 Kubecost で正確なダッシュボードが生成されるようにするには、Azure リソースのタグ付けに関する Kubecost ドキュメントの説明に従って、Azure リソースにタグを付ける必要があります。 一部の Azure リソースは AKS クラスターによって作成されます。これは、種類が LoadBalancer
または PersistentVolume
のサービスを作成する場合です。 これらのリソースのコストを正しく追跡するために、Azure Kubernetes Service での Azure タグの使用に関する記事にある例のように、Kubernetes リソースの注釈を使用して適切な Azure タグを追加できます。
Azure 価格カードの構成は、ダッシュボードで正確な価格を報告するために必要です。 ドキュメント ページの説明に従って、カスタム ロールを持つサービス プリンシパルを作成し、そのサービス プリンシパルを使用して Azure Billing Rate Card API のクエリを実行するように Kubecost を構成する必要があります。
Kubecost 内を移動する
Kubecost では、リソースが次のカテゴリに分類されます。
- 月単位のクラスター コスト
- 名前空間のコスト
- デプロイ リソースのコスト
- コスト効率
次のダッシュボードのような概要を表示するクラスターを選択します。
リソースの名前空間のコストを詳しく調査するには、左側にある [割り当て] を選択します。 [割り当て] には、CPU、メモリ、永続ボリューム、ネットワークのコストが表示されます。 Kubecost では Azure の価格からデータを取得しますが、リソースのカスタム コストを設定することもできます。
使用率が低いリソースのコスト削減を詳しく調査するには、左側にある [削減額] を選択します。 [Savings](削減額) には、使用率が低いノードおよびポッドや破棄されたリソースに関する情報が表示され、クラスター内のオーバープロビジョニングされたリソース要求が特定されます。 次のスクリーンショットは、 [削減額] の概要の例を示しています。
少し時間を取って、Kubecost によって提供されるさまざまなビューや機能の間を移動してください。