OpenCostは、Kubernetesとシームレスに統合されたクラウドコスト監視ツールで、クラウドの支出をリアルタイムで追跡できるため、リソースを適宜最適化できます。
、クラウド上でダイナミックなコンテナ化アプリケーションを管理するための強力なプラットフォームですが、どこでコストが発生しているかを理解するのは難しい場合があります。Kubernetesリソースのコスト効率を管理するのは難しいことです。 、Kubernetesとシームレスに統合されたクラウドコスト監視ツールで、クラウド費用をリアルタイムで追跡できるため、リソースを適宜最適化することができます。
OpenCostはオープンソースの であり、Kubernetesデプロイメントに関連するクラウドコストをリアルタイムに監視するための です。この仕様では、サービス、デプロイメント、ネームスペース、タグなどによる現在および過去のKubernetesクラウド費用とリソース割り当てをモデル化します。このデータは、アプリケーションからインフラまで、Kubernetesのコストとパフォーマンスを理解し、最適化するために不可欠です。
要件とインストール
OpenCostを使い始めるのは比較的簡単なプロセスです。OpenCostはモニタリングとメトリクスの保存に Kubernetes 使用しています。 PrometheusコミュニティのKubernetes Helm Chartから インストールできます。
Prometheusのインストール
まず、以下のコマンドでPrometheusをインストールします:
$ helm install my-prometheus --repo https://-../- prometheus \--namespace prometheus --create-namespace \--set pushgateway.enabled=false --set alertmanager.enabled=false -f \https://..//////.ml
OpenCostのインストール
次に、 kubectl コマンドを使って OpenCost をインストールします:
$ kubectl apply --namespace opencost -f \https://../////.ml
このコマンドは OpenCost をクラスタにデプロイし、データの収集を開始します。ほとんどのインストールで必要なのはこれだけです。CNCF サンドボックスプロジェクト インストールを仕様 、 OpenCost Helm Chart を使って デプロイをカスタマイズすることもできます。
テストとアクセス
OpenCostは、AWS、Azure、GCPのいずれで動作しているかを自動的に検出し、ローカルのKubernetesデプロイメントに価格を提供するように設定できます。APIとUIアクセス用のポートは最初に転送されます:
$ kubectl port-forward --namespace opencost service/opencost
5分ほどで、UIとサーバが動作していることが確認できます。 で OpenCost UI にアクセスできます。
モニタリング費用
KubernetesクラスタにデプロイされたOpenCostを使用して、クラウドコストの監視を開始する準備が整いました。OpenCostダッシュボードは、クラウド費用をリアルタイムで可視化し、コストの異常を特定してクラウドリソースを最適化することができます。ノード別、ネームスペース別、ポッド別、タグ別などのクラウド費用を確認できます。
kubectl cost プラグインは、Kubernetesのコスト割り当てメトリクスへのシンプルなCLIクエリを提供します。これにより、開発者、オペレータ、その他の人々が、任意のKubernetesワークロードのコストと効率を迅速に判断できるようになります。
$ kubectl cost --service-port 9003 \--service-name opencost --kubecost-namespace opencost \--allocation-path /allocation/compute pod \--window 5m --show-efficiency=true+-------+---------+-------------+----------+---------------+|CLUSTER|NAMESPACE|POD |MONTH RATE|COST EFFICIENCY|+-------+---------+-------------+----------+---------------+|cl-one |kube-syst|coredns-db...| 1.. || | |coredns-...dm| 1.. || | |kube-prox...7| 1.. || | |kube-prox...x| 1.. || |opencost |opencost...5t| 0.. || |kube-syst|aws-node-cbwl| 0.. || | |aws-node-gbfh| 0.. || |prometheu|my-prome...pv| 0.. || | |my-prome...hn| 0.. || | |my-prome...0000 |+-------+---------+-------------+----------+---------------+| SUMMED| | | 6. | |+-------+---------+-------------+----------+---------------+
また、APIを統合して、選択したプラットフォームにプログラムでデータを抽出することもできます。
Kubernetes 最適化戦略
クラウドコストをマスターしたら、次はKubernetes環境を最適化しましょう。最適化は反復プロセスです。スタックの最上位から始めて、各レイヤーを横断します。各段階で効率は向上します。例えば、コスト効率のためにKubernetesを最適化する方法はたくさんあります:
- 放置されたワークロードと未割り当てのボリュームを見つける:使用されなくなったコンテナポッドとストレージ、または切断されたコンテナポッドとストレージは、価値を提供することなくリソースを消費し続けます。
- ワークロードのサイズ変更:ワークロードに適したサイズのコンテナを使用していることを確認します。過剰割り当てと過小割り当てのコンテナを調査します。
- 自動スケーリング:自動スケーリングは、必要なときだけリソースを使用することで、コスト削減に役立ちます。
- クラスタのサイズ変更:ノードの数が多すぎたり大きすぎたりすると、非効率になる可能性があります。容量、可用性、パフォーマンスの適切なバランスを見つけることで、コストを大幅に削減できます。
- より安価なノードタイプの研究:CPU、RAM、ネットワーク、ストレージには多くのバリエーションがあります。ARMアーキテクチャに変更することで、よりコストを削減できる可能性があります。
- FinOpsチームへの投資:組織内の専門チームは、予約インスタンス、スポットインスタンス、節約プランを調整することで、より大きな節約を達成する方法を見つけることができます。
今日から
Kubernetes環境でコストを監視するのは難しいことですが、OpenCostを使えばその必要はありません。OpenCostを使い始めてクラウドの支出をコントロールするには、 ウェブサイトを訪問し、 コードを取得し、 OpenCostのドキュメントをチェックし、 CNCF Slackの #opencost チャンネルに参加してください。





