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中國

    Linux中國

    捐贈 Let's Encrypt,共建安全的互聯網

    隨著 Mozilla、蘋果和谷歌對沃通和 StartCom 這兩家 CA 公司處罰落定,很多使用這兩家 CA 所簽發證書的網站紛紛尋求新的證書籤發商。有一個非盈利組織可以為大家提供了免費、可靠和安全的 SSL 證書服務,這就是 Let's Encrypt 項目。現在,它需要您的幫助
    Linux中國

    關於Linux防火牆iptables的面試問答

    Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
    Linux中國

    Lets Encrypt 已被所有主流瀏覽器所信任

    旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...