Linux中國

使用開源工具監控 Kubernetes 雲成本

OpenCost 是一款與 Kubernetes 無縫集成的雲成本監控工具,可讓您實時跟蹤雲支出,從而相應地優化資源。

Kubernetes 是一個強大的平台,用於管理雲中的動態容器化應用,但可能很難理解成本發生在哪裡。管理 Kubernetes 資源的成本效率可能是一個挑戰。這就是 OpenCost 的用武之地。OpenCost 是一種雲成本監控工具,與 Kubernetes 無縫集成,讓你可以實時跟蹤雲支出,以便相應地優化資源。

OpenCost 是一個開源 CNCF 沙盒項目規範,用於實時監控與 Kubernetes 部署相關的雲成本。該規範按服務、部署、命名空間、標籤等對當前和歷史 Kubernetes 雲支出和資源分配進行建模。這些數據對於理解和優化 Kubernetes 從應用到基礎設施的成本和性能至關重要。

要求和安裝

開始使用 OpenCost 是一個相對簡單的過程。OpenCost 使用 Prometheus 進行監控和指標存儲。你可以從 Prometheus 社區的 Kubernetes Helm Chart 安裝它。

安裝 Prometheus

首先使用以下命令安裝 Prometheus:

$ helm install my-prometheus --repo https://prometheus-community.github.io/helm-charts prometheus 
 --namespace prometheus --create-namespace 
 --set pushgateway.enabled=false --set alertmanager.enabled=false -f 
https://raw.githubusercontent.com/opencost/opencost/develop/kubernetes/prometheus/extraScrapeConfigs.yaml

安裝 OpenCost

接下來,使用 kubectl 命令安裝 OpenCost:

$ kubectl apply --namespace opencost -f 
https://raw.githubusercontent.com/opencost/opencost/develop/kubernetes/opencost.yaml

此命令將 OpenCost 部署到你的集群並開始收集數據。這就是大多數安裝所需的全部內容。你可以使用你自己的 Prometheus 安裝或使用 OpenCost Helm Chart 自定義部署。

測試和訪問

OpenCost 會自動檢測它是否在 AWS、Azure 還是 GCP 上運行,你可以將其配置為為本地 Kubernetes 部署提供定價。首先轉發 API 和 UI 訪問的埠:

$ kubectl port-forward --namespace opencost service/opencost 9003 9090

大約五分鐘內,你可以驗證 UI 和伺服器是否正在運行,並且你可以通過 http://localhost:9090 訪問 OpenCost UI。

監控成本

你已準備好開始使用部署到 Kubernetes 集群的 OpenCost 來監控雲成本。OpenCost 儀錶板提供對雲支出的實時可見性,使你能夠識別成本異常並優化雲資源。你可以按節點、命名空間、pod、標籤等查看雲支出。

OpenCost monitoring console

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.486732 |      0.033660 |
|       |         |coredns-...dm| 1.486732 |      0.032272 |
|       |         |kube-prox...7| 1.359577 |      0.002200 |
|       |         |kube-prox...x| 1.359577 |      0.002470 |
|       |opencost |opencost...5t| 0.459713 |      0.187180 |
|       |kube-syst|aws-node-cbwl| 0.342340 |      0.134960 |
|       |         |aws-node-gbfh| 0.342340 |      0.133760 |
|       |prometheu|my-prome...pv| 0.000000 |      0.000000 |
|       |         |my-prome...hn| 0.000000 |      0.000000 |
|       |         |my-prome...89| 0.000000 |      0.000000 |
+-------+---------+-------------+----------+---------------+
| SUMMED|         |             | 6.837011 |               |
+-------+---------+-------------+----------+---------------+

你還可以集成 API,以編程方式將數據提取到你選擇的平台中。

Kubernetes 優化策略

現在你已經掌握了雲成本,是時候優化你的 Kubernetes 環境了。優化是一個迭代過程。從棧的頂部(容器)開始並遍歷每一層。每一步的效率都會複合。有很多方法可以優化 Kubernetes 以提高成本效率,例如:

  • 查找廢棄的工作負載和未申明的卷:不再使用或斷開連接的容器莢和存儲會繼續消耗資源而不提供價值。
  • 調整你的工作負載大小:確保你為你的工作負載使用正確大小的容器。調查分配過多和分配不足的容器。
  • 自動擴展:自動擴展可以幫助你僅在需要時使用資源來節省成本。
  • 調整集群大小:節點過多或過大可能會導致效率低下。在容量、可用性和性能之間找到適當的平衡可能會大大降低成本。
  • 研究更便宜的節點類型:CPU、RAM、網路和存儲有很多變化。切換到 ARM 架構可能會帶來更大的節省。
  • 投資 FinOps 團隊:組織內的專門團隊可以通過協調預留實例、現貨實例和節省計劃來尋找實現更大節省的方法。

從今天開始

監控 Kubernetes 環境中的成本可能具有挑戰性,但使用 OpenCost 則不必如此。要開始使用 OpenCost 並控制你的雲支出,請訪問 OpenCost 網站,在 GitHub 中獲取代碼,查看 OpenCost 文檔,並參與 CNCF Slack 中的 #opencost 頻道。

(題圖:MJ/5de557f1-464c-480c-8698-130748f60b20)

via: https://opensource.com/article/23/3/kubernetes-cloud-cost-monitoring

作者:Matt Ray 選題:lkxed 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國