使用 Kubecost 進行成本治理

成本控管是實作原則以控制成本的持續程式。 在 Kubernetes 內容中,組織有數種方式可以控制及優化成本。 其中包括原生 Kubernetes 工具,可管理和控管資源使用量和耗用量,並主動監視和優化基礎結構。

本節說明如何使用 Kubecost 來管理 Azure Kubernetes Service (AKS) 叢集成本。 您可以將成本配置範圍設定為部署、服務、標籤、Pod 或命名空間,以提供彈性來回收費或顯示叢集使用者。

安裝 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 速率卡設定

使用 Azure 成本匯出,您可以建立週期性工作,以每天自動將成本管理數據匯出至 Azure 記憶體帳戶。 Kubecost 已設定為存取此記憶體帳戶中的數據,讓它在儀錶板中顯示 Azure 資源的總成本,而不只是來自 AKS 叢集的數據。 若要確保 Kubecost 產生精確的儀錶板,您應該標記 Azure 資源,如用於標記 Azure 資源的 Kubecost 檔中所述。 某些 Azure 資源是由 AKS 叢集所建立,這是當您建立 類型 LoadBalancer 為 或 PersistentVolume的服務時的情況。 若要正確追蹤這些資源的成本,您可以使用 Kubernetes 資源中的批註來新增適當的 Azure 標籤,如「在 Azure Kubernetes Service 中使用 Azure 標籤」一文中的範例。

您必須使用 Azure 費率卡組態,才能在儀錶板中報告正確的定價。 您必須 建立具有自定義角色的服務主體,如文件頁面 所述,並將 Kubecost 設定為使用服務主體來查詢 Azure 計費費率卡 API。

Kubecost 會將資源細分為下列類別:

  • 每月叢集成本
  • 命名空間成本
  • 部署資源成本
  • 成本效益

選取您的叢集以查看類似下列儀錶板的概觀:

顯示 Kubecost 儀錶板的螢幕快照。

選取左側的 [ 配置 ],以深入探索資源的命名空間成本。 配置 會顯示 CPU、記憶體、永續性磁碟區和網路的成本。 Kubecost 會從 Azure 定價取得數據,但您也可以設定資源的自定義成本。

顯示 Kubecost 配置畫面的螢幕快照。

選取 左側的 [節省 ],以深入瞭解使用量過低的資源節省成本。 節省可讓您瞭解使用量過低的節點和 Pod 和放棄的資源,並識別叢集中過度布建的資源要求。 下列螢幕快照顯示範例 儲存概 觀:

顯示 Kubecost 儲存畫面的螢幕快照。

請花一些時間流覽 Kubecost 提供的不同檢視和功能。