使用 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 速率卡設定。
使用 Microsoft 成本匯出,您可以建立週期性工作,以每天自動將成本管理數據匯出至 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 定價取得數據,但您也可以設定資源的自定義成本。
選取 左側的 [節省 ],以深入瞭解使用量過低的資源節省成本。 節省可讓您瞭解使用量過低的節點和 Pod 和放棄的資源,並識別叢集中過度布建的資源要求。 下列螢幕快照顯示範例 儲存概 觀:
請花一些時間流覽 Kubecost 提供的不同檢視和功能。