成本監控 - Amazon EKS

協助改善此頁面

想要為此使用者指南做出貢獻嗎? 捲動至此頁面底部,然後選取 [編輯此頁面於] GitHub。您的貢獻將有助於使我們的用戶指南更適合所有人。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

成本監控

成本監控是在 Amazon EKS 上管理Kubernetes叢集的重要方面。透過瞭解叢集成本,您可以最佳化資源使用率、設定預算,並針對部署做出資料驅動的決策。Amazon EKS 提供兩種成本監控解決方案,每個解決方案都有其獨特的優勢,可協助您有效地追蹤和分配成本:

AWS Amazon EKS 的帳單分攤成本分配資料 — 此原生功能與 AWS 帳單主控台無縫整合,讓您可以使用熟悉的介面和用於其他 AWS 服務的工作流程來分析和分配成本。透過分割成本分配,您可以直接與其他 AWS 支出一起深入瞭解Kubernetes成本,讓您更輕鬆地在整個環境中最佳化成本。 AWS 您也可以利用成本類別和成本異常偵測等現有 AWS 帳單功能,進一步增強您的成本管理功能。如需詳細資訊,請參閱 AWS 帳單使用者指南中的了解分割成本分配資料

Kubecost— Amazon EKS 支持 Kubecost,這是一種成本監控工具。Kubecost 提供功能豐富、Kubernetes 原生的成本監控方法,可透過 Kubernetes 資源、成本最佳化建議,以及儀表板和報告提供精細的成本明細分。 out-of-the-box Kubecost 還透過整合成本和用量報告來擷取準確的定價資料,確保您能精確掌握 Amazon EKS AWS 成本。瞭解如何安裝Kubecost

AWS 帳單 — 分割成本分配

使用 Amazon EKS 的分 AWS 割成本分配資料進行成本監控

您可以使用 Amazon EKS 的分 AWS 割成本分配資料,取得 Amazon EKS 叢集的精細成本可見性。這可讓您分析、最佳化及退款應用程式的成本與Kubernetes用量。您可以根據應用程式使用的 Amazon EC2 CPU 和記憶體資源,將Kubernetes應用程式成本分配給個別業務單位和團隊。Amazon EKS 的分割成本分配資料可讓您瞭解每個網繭的成本,並可讓您使用命名空間、叢集和其他Kubernetes原語彙總每個網繭的成本資料。以下是您可以用來分析 Amazon EKS 成本分配資料的Kubernetes基元範例。

  • 叢集名稱

  • 部署

  • 命名空間

  • 節點

  • 工作負載名稱

  • 工作負載類型

如需使用分割成本分配資料的詳細資訊,請參閱 AWS 帳單使用者指南中的了解分割成本分配資料

設定成本與使用量報告

您可以在成本管理主控台或 AWS SDK 中開啟 EKS 的分割成本分配資料。 AWS Command Line Interface

針對「分割成本配置資料」使用下列項目:

  1. 選擇加入分割成本配置資料。如需詳細資訊,請參閱 AWS Cost and Usage Report 使用指南中的啟用分割成本配置資料

  2. 將資料包含在新的或現有的報表中。

  3. 檢視報告。您可以使用帳單和成本管理主控台,或在 Amazon Simple Storage Service 中檢視報告檔案。

熊本

Amazon EKS 支援 Kubecost,可讓您用於監控按 Kubernetes 資源 (包括 Pods、節點、命名空間和標籤) 細分的成本。身為 Kubernetes 平台管理員和財務負責人,您可以使用 Kubecost 視覺化 Amazon EKS 費用明細、分配成本,以及向應用程式團隊等組織單位收取費用。您可以根據內部團隊和業務單位的實際 AWS 帳單,為內部團隊和業務單位提供透明且準確的成本資料。此外,您還可以根據他們的基礎設施環境和叢集內的使用模式,獲得客製化的成本最佳化建議。如需 Kubecost 的詳細資訊,請參閱 Kubecost 文件。

Amazon EKS 提供一套 AWS 優化的Kubecost叢集成本可見度。您可以使用現有的 AWS 支援合約來取得支援。

必要條件
  • 現有 Amazon EKS 叢集。若要部署叢集,請參閱 Amazon EKS 入門。叢集必須具有 Amazon EC2 節點,因為您無法在 Fargate 節點上執行 Kubecost。

  • 已在裝置或 AWS CloudShell上安裝 kubectl 命令列工具。版本可以與您的叢集 Kubernetes 版本相同,或是為最多比該版本更舊一版或更新一版的次要版本。例如,如果您的叢集版本為 1.29,則可以搭配使用 kubectl 1.281.291.30 版。若要安裝或升級 kubectl,請參閱 安裝或更新 kubectl

  • 已在裝置或 AWS CloudShell上設定 Helm 3.9.0 版或更新版本。若要安裝或更新 Helm,請參閱 搭配 Amazon EKS 使用 Helm

  • 如果您的叢集是 1.23 版或更新版本,則必須在您的叢集上安裝 Amazon EBS CSI 驅動程式

若要安裝久貝費
  1. 決定Kubecost要安裝的版本。您可以在 Amazon ECR Public Gallery 中的 kubecost/cost-analyzer 查看可用版本。如需有關Kubecost版本和 Amazon EKS 相容性的詳細資訊,請參閱 Kubecost 文件中的環境需求

  2. 使用下列命令安裝 Kubecost。以 ECR 重新建立的值取代久比成本版本,例如 1.108.1。

    helm upgrade -i kubecost oci://public.ecr.aws/kubecost/cost-analyzer --version kubecost-version \ --namespace kubecost --create-namespace \ -f https://raw.githubusercontent.com/kubecost/cost-analyzer-helm-chart/develop/cost-analyzer/values-eks-cost-monitoring.yaml

    Kubecost 會定期推出新版本。您可以使用 helm upgrade 來更新版本。依預設,安裝會包括本機 Prometheus 伺服器與 kube-state-metrics。您可以依照 Integrating with Amazon EKS cost monitoring (與 Amazon EKS 成本監控整合) 所述來自訂部署,以使用 Amazon Managed Service for Prometheus。如需您可以設定的所有其他設定清單,請參閱上的範例組態檔案 GitHub。

  3. 確定所需的 Pods 正在執行。

    kubectl get pods -n kubecost

    範例輸出如下。

    NAME READY STATUS RESTARTS AGE kubecost-cost-analyzer-b9788c99f-5vj5b 2/2 Running 0 3h27m kubecost-kube-state-metrics-99bb8c55b-bn2br 1/1 Running 0 3h27m kubecost-prometheus-server-7d9967bfc8-9c8p7 2/2 Running 0 3h27m
  4. 在您的裝置上,啟用連接埠轉送以公開 Kubecost 儀表板。

    kubectl port-forward --namespace kubecost deployment/kubecost-cost-analyzer 9090

    或者,您可以使用 AWS Load Balancer Controller 來公開 Kubecost ,並使用 Amazon Cognito 進行驗證、授權和使用者管理。如需詳細資訊,請參閱如何使用應用程式負載平衡器和 Amazon Cognito 驗證 Kubernetes Web 應用程式的使用者

  5. 在您完成上一個步驟的同一部裝置上,開啟 Web 瀏覽器並輸入下列位址。

    http://localhost:9090

    瀏覽器中會顯示 Kubecost 的 Overview (概觀) 頁面。Kubecost 可能需要 5-10 分鐘的時間來收集指標。您可以查看您的 Amazon EKS 支出,包括累積叢集成本、相關聯的 Kubernetes 資產成本和每月彙總支出。

    Kubecost 儀表板
  6. 要在叢集層級追蹤成本,請標記您的 Amazon EKS 資源以進行計費。如需詳細資訊,請參閱 標記您的資源以便計費

您也可以在儀表板的左窗格中選取相應項目來檢視以下資訊:
  • Cost allocation (成本分配) – 檢視過去七天內每個命名空間和其他維度的每月 Amazon EKS 成本和累計成本。這有助於了解應用程式的哪些部分產生了 Amazon EKS 支出。

  • Assets (資產) – 檢視與 Amazon EKS 資源相關聯的 AWS 基礎設施資產的成本。

額外功能
  • Export cost metrics (匯出成本指標) – Amazon EKS 最佳化成本監控是與 Kubecost 和 Prometheus 一起部署,形成開放原始碼監控系統和時間序列資料庫。Kubecost 會從 Prometheus 讀取指標並執行成本分配計算,然後將指標重新寫入 Prometheus。Kubecost 前端會從 Prometheus 讀取指標,並顯示在 Kubecost 使用者介面上。下圖說明此架構。

    Kubecost 架構

    在預先安裝 Prometheus 之後,您可寫入查詢並擷取 Kubecost 資料到目前的商業智慧系統,以便進一步分析。您也可以將其用作目前 Grafana 儀表板的資料來源,以顯示您的內部團隊熟悉的 Amazon EKS 叢集成本。要了解有關如何編寫Prometheus查詢的更多信息,請參閱上的Prometheus配置readme文件 GitHub 或使用 KubecostGithub 存儲庫中的示例 Grafana JSON 模型作為參考。

  • AWS Cost and Usage Report 整合 — 若要為 Amazon EKS 叢集執行成本分配計算,請從價目表 API Kubecost 擷取的公開定 AWS 價資訊 AWS 服務 和 AWS 資源。您也可AWS Cost and Usage Report以Kubecost與整合,以提高您的 AWS 帳戶. 這類資訊包括企業折扣方案、預留執行個體使用量、Savings Plans 和 Spot 使用量。若要進一步了解 AWS Cost and Usage Report 整合的運作方AWS 式,請參閱Kubecost文件中的帳單整合

移除 Kubecost

您可以使用下列命令將 Kubecost 從您的叢集中移除。

helm uninstall kubecost --namespace kubecost kubectl delete ns kubecost

常見問答集

請參閱以下有關搭配使用 Kubecost 與 Amazon EKS 的常見問題和解答。

AWS 並Kubecost協同合作提供自訂版本的Kubecost. 此版本提供商業功能的子集,不收取額外費用。請見下列表格以瞭解 Kubecost 的自訂套件中隨附的功能。

功能 Kubecost 免費方案 Amazon EKS 已最佳化 Kubecost 自訂套件 Kubecost Enterprise
部署 使用者託管 使用者託管 使用者託管或 Kubecost 託管 (SaaS)
支援的叢集數目 無限制 無限制 無限制
支援的資料庫 區域 Prometheus 本機 Prometheus 或 Amazon Managed Service for Prometheus Prometheus、Amazon Managed Service for Prometheus、Cortex,或 Thanos
資料庫保留支援 15 天 無限的歷史記錄資料 無限的歷史記錄資料
Kubecost API 保留 (ETL) 15 天 15 天 無限的歷史記錄資料
叢集成本能見度 單一叢集 統一的多重叢集 統一的多重叢集
混合雲端能見度 - Amazon EKS 和 Amazon EKS Anywhere 叢集 多重雲端和混合雲端支援
警示和週期性報告 - 效率警示、預算警示、支出變更警示,以及更多支援的功能 效率警示、預算警示、支出變更警示,以及更多支援的功能
已儲存的報告 - 使用 15 天資料的報告 使用無限期歷史記錄資料的報告
雲端計費整合 每一個叢集都需要 自訂定價支援 AWS (包括多個叢集和多個帳戶) 自訂定價支援 AWS (包括多個叢集和多個帳戶)
Savings 建議 單一叢集深入解析 單一叢集深入解析 多重叢集深入解析
治理:稽核 - - 稽核歷史記錄成本事件
單一登入 (SSO) 支援 - 支援 Amazon Cognito Okta, Auth0, PingID, KeyCloak
角色型存取控制 (RBAC) 與 SAML 2.0 - - Okta, Auth0, PingID, Keycloak
企業培訓和入門 - - 全方位服務培訓和 FinOps 入門
什麼是 Kubecost API 保留 (ETL) 功能?

Kubecost ETL 功能可彙總並整理指標,藉此顯示各種規模程度的成本能見度 (例如 namespace-levelpod-level,以及 deployment-level)。若為自訂 Kubecost 套件,客戶可以從過去 15 天的指標中取得資料和深入解析。

什麼是警示和週期性報告功能? 它包含了哪些警示和報告?

Kubecost 警示可讓團隊即時接收 Kubernetes 支出和雲端支出的更新。週期性報告可讓團隊接收歷史記錄 Kubernetes 和雲端支出的自訂檢視。兩者均可使用 Kubecost UI 或 Helm 值來設定。它們支援電子郵件、Slack,以及 Microsoft Teams。

儲存的報告包含哪些內容?

Kubecost 儲存的報告是成本和效率指標的預先定義檢視。它們包含依叢集、命名空間、標籤以及更多類別來區分的成本。

什麼是雲端計費整合?

與 AWS 帳單 API 整合Kubecost可顯示 out-of-cluster 成本 (例如 Amazon S3)。此外,它也能讓 Kubecost 協調 Kubecost 具有實際計費資料的叢集內預測,以說明 Spot 使用量、Savings Plans 和企業折扣。

Savings 建議包含哪些內容?

Kubecost 提供深入解析和自動化功能,協助使用者最佳化 Kubernetes 基礎結構和支出。

否。您可以免費使用此版本的 Kubecost。如果您想要此套件中未包含的其他Kubecost功能,可以Kubecost透過或Kubecost直接向購買的企業授權。 AWS Marketplace

是。您可以在「聯繫」與 AWS Support 團隊打開支持案例 AWS。

否.

是。您可以將 Kubecost 設定為從 AWS Cost and Usage Report 擷取資料以獲得準確的成本情況,包括折扣、Spot 定價、預留執行個體定價等。如需詳細資訊,請參閱AWS Kubecost文件中的帳單整合

否。此版本僅與 Amazon EKS 叢集相容。

Kubecost 會盡最大努力顯示在 Fargate 上使用 Amazon EKS 時的叢集成本情況,但準確度低於在 Amazon EC2 上使用 Amazon EKS。這主要是因為用量計費方式有所不同。在 Fargate 上使用 Amazon EKS 時,您是按耗用的資源付費。在 Amazon EC2 節點上使用 Amazon EKS 時,您是按佈建的資源付費。Kubecost 會根據節點規格 (包括 CPU、RAM 和暫時性儲存) 計算 Amazon EC2 節點的成本。使用 Fargate 時,系統會根據 Fargate Pods 所請求的資源來計算成本。

您可以使用標準 Helm 升級程序升級您的 Kubecost 版本。最新版本位於 Amazon ECR Public Gallery 中。

是。Kubectl-cost 是 Kubecost 的開放原始碼工具 (Apache 2.0 License),提供對 Kubernetes 成本分配指標的 CLI 存取。若要安裝kubectl-cost,請參閱安裝於 GitHub。

Kubecost 提供 Web 儀表板,您可透過 kubectl 連接埠轉送、輸入或負載平衡器來存取。您也可以使用 AWS Load Balancer Controller 來公開 Kubecost,並使用 Amazon Cognito 進行驗證、授權和使用者管理。如需詳細資訊,請參閱如何在 AWS 部落格上使用應用程式負載平衡器和 Amazon Cognito 驗證 Kubernetes Web 應用程式的使用者

否.