Redian新闻
>
使用开源工具监控 Kubernetes 云成本 | Linux 中国

使用开源工具监控 Kubernetes 云成本 | Linux 中国

科技
 
导读:OpenCost 是一款与 Kubernetes 无缝集成的云成本监控工具,可让您实时跟踪云支出,从而相应地优化资源。
本文字数:3734,阅读时长大约:4分钟

OpenCost 是一款与 Kubernetes 无缝集成的云成本监控工具,可让您实时跟踪云支出,从而相应地优化资源。

Kubernetes🔗 www.redhat.com 是一个强大的平台,用于管理云中的动态容器化应用,但可能很难理解成本发生在哪里。管理 Kubernetes 资源的成本效率可能是一个挑战。这就是 OpenCost🔗 www.opencost.io 的用武之地。OpenCost 是一种云成本监控工具,与 Kubernetes 无缝集成,让你可以实时跟踪云支出,以便相应地优化资源。

OpenCost 是一个开源 CNCF 沙盒项目🔗 www.cncf.io 和 规范🔗 github.com,用于实时监控与 Kubernetes 部署相关的云成本。该规范按服务、部署、命名空间、标签等对当前和历史 Kubernetes 云支出和资源分配进行建模。这些数据对于理解和优化 Kubernetes 从应用到基础设施的成本和性能至关重要。

要求和安装

开始使用 OpenCost 是一个相对简单的过程。OpenCost 使用 Prometheus🔗 prometheus.io 进行监控和指标存储。你可以从 Prometheus 社区的 Kubernetes Helm Chart🔗 prometheus-community.github.io 安装它。

安装 Prometheus

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

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

安装 OpenCost

接下来,使用 kubectl 命令安装 OpenCost:

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

此命令将 OpenCost 部署到你的集群并开始收集数据。这就是大多数安装所需的全部内容。你可以使用你自己的 Prometheus🔗 www.opencost.io 安装或使用 OpenCost Helm Chart🔗 github.com 自定义部署。

测试和访问

OpenCost 会自动检测它是否在 AWS、Azure 还是 GCP 上运行,你可以将其配置为为本地 Kubernetes 部署提供定价。首先转发 API 和 UI 访问的端口:

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

大约五分钟内,你可以验证 UI 和服务器是否正在运行,并且你可以通过 http://localhost:9090 访问 OpenCost UI。

监控成本

你已准备好开始使用部署到 Kubernetes 集群的 OpenCost 来监控云成本。OpenCost 仪表板提供对云支出的实时可见性,使你能够识别成本异常并优化云资源。你可以按节点、命名空间、pod、标签等查看云支出。

OpenCost monitoring console

kubectl cost🔗 github.com 插件提供了对 Kubernetes 成本分配指标的简单 CLI 查询。它允许开发人员、运营商和其他人快速确定任何 Kubernetes 工作负载的成本和效率。

  1. $ kubectl cost --service-port 9003 \
  2. --service-name opencost --kubecost-namespace opencost \
  3. --allocation-path /allocation/compute pod \
  4. --window 5m --show-efficiency=true
  5. +-------+---------+-------------+----------+---------------+
  6. |CLUSTER|NAMESPACE|POD |MONTH RATE|COST EFFICIENCY|
  7. +-------+---------+-------------+----------+---------------+
  8. |cl-one |kube-syst|coredns-db...| 1.486732 | 0.033660 |
  9. | | |coredns-...dm| 1.486732 | 0.032272 |
  10. | | |kube-prox...7| 1.359577 | 0.002200 |
  11. | | |kube-prox...x| 1.359577 | 0.002470 |
  12. | |opencost |opencost...5t| 0.459713 | 0.187180 |
  13. | |kube-syst|aws-node-cbwl| 0.342340 | 0.134960 |
  14. | | |aws-node-gbfh| 0.342340 | 0.133760 |
  15. | |prometheu|my-prome...pv| 0.000000 | 0.000000 |
  16. | | |my-prome...hn| 0.000000 | 0.000000 |
  17. | | |my-prome...89| 0.000000 | 0.000000 |
  18. +-------+---------+-------------+----------+---------------+
  19. | SUMMED| | | 6.837011 | |
  20. +-------+---------+-------------+----------+---------------+

你还可以集成 API,以编程方式将数据提取到你选择的平台中。

Kubernetes 优化策略

现在你已经掌握了云成本,是时候优化你的 Kubernetes 环境了。优化是一个迭代过程。从栈的顶部(容器)开始并遍历每一层。每一步的效率都会复合。有很多方法可以优化 Kubernetes 以提高成本效率,例如:

◈ 查找废弃的工作负载和未申明的卷:不再使用或断开连接的容器荚和存储会继续消耗资源而不提供价值。
◈ 调整你的工作负载大小:确保你为你的工作负载使用正确大小的容器。调查分配过多和分配不足的容器。
◈ 自动扩展:自动扩展可以帮助你仅在需要时使用资源来节省成本。
◈ 调整集群大小:节点过多或过大可能会导致效率低下。在容量、可用性和性能之间找到适当的平衡可能会大大降低成本。
◈ 研究更便宜的节点类型:CPU、RAM、网络和存储有很多变化。切换到 ARM 架构可能会带来更大的节省。
◈ 投资 FinOps 团队:组织内的专门团队可以通过协调预留实例、现货实例和节省计划来寻找实现更大节省的方法。

从今天开始

监控 Kubernetes 环境中的成本可能具有挑战性,但使用 OpenCost 则不必如此。要开始使用 OpenCost 并控制你的云支出,请访问 OpenCost🔗 opencost.io 网站,在 GitHub🔗 github.com 中获取代码,查看 OpenCost 文档🔗 www.opencost.io,并参与 CNCF Slack🔗 slack.cncf.io 中的 #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中国 荣誉推出

LCTT 译者 :geekpi
💎💎💎💎
翻译: 1995.5 篇
|
贡献: 3584 天
2013-10-25
2023-08-18
https://linux.cn/lctt/geekpi
欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
美国海军的肺管子被戳了剑指 Kubernetes!微软发布开源平台 Radius:高效构建、运行云原生应用程序图解几种常见 Kubernetes Pod 驱逐场景Kubernetes 网络排错终极指南深入理解Kubernetes Pod调试Kubernetes 中的 Java 应用的内存调优10 个在 Linux 终端中生成有趣的 ASCII 字符画的工具 | Linux 中国Ubuntu 与 Kubuntu:哪一个更适合你? | Linux 中国Linux 游戏的下一个秘密武器:Bottles Next | Linux 中国如何利用 Kubernetes 实现应用零宕机这些 kubernetes 的安全机制你都了解吗?Pinterest 使用 Kubernetes 和 Helix 构建下一代异步计算平台 Pacer通过例子介绍如何从零开发 Kubernetes Operator如何在 Kubernetes 集群中设置动态 NFS 配置 | Linux 中国第八章 快樂的95%KSOC实验室发布首批Kubernetes材料清单(KBOMs)任务中心:一款流畅的 Linux 系统监控应用 | Linux 中国Kubernetes DevSecOps 实践如何快速查看 Kubernetes Pod 崩溃前的日志Bazzite:专为 Steam Deck 和 PC 上的 Linux 游戏打造的发行版 | Linux 中国使用开源工具 CBconvert 转换你的漫画书 | Linux 中国973页kubernetes学习笔记,核心干货分享登上香港太平山顶Kubernetes 资源请求和限制的最佳实践日常生活中的小收藏《花信风之夏至》Ubuntu 23.10 将首次推出基于 Flutter 的新 Ubuntu 商店 | Linux 中国开源朗读者 | Linux 只是一个内核:这是什么意思? | Linux 中国“互联网”要写成the Internet还是the internet?在 Kubernetes 集群中,如何正确选择工作节点资源大小如何在 Kubernetes 集群上安装 Ansible AWX | Linux 中国分步指南:安装和访问 Kubernetes 仪表板 | Linux 中国使用 GoogleTest 和 CTest 进行单元测试 | Linux 中国ChatGPT 团队是如何使用Kubernetes的973页kubernetes学习笔记,全是K8S核心干货,限时分享3天
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。