首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >使用 OpenCost 和 Levitate 控制 Kubernetes 成本

使用 OpenCost 和 Levitate 控制 Kubernetes 成本

作者头像
用户5166556
发布2024-02-29 13:09:49
发布2024-02-29 13:09:49
6590
举报

使用 Levitate 设置 OpenCost 以监控 Kubernetes 集群的成本。

有效控制运营费用在 Kubernetes 的部署和管理中起着至关重要的作用。虽然 Kubernetes 使用户能够增强对部署的控制,但它需要对相关成本的深入了解和有效管理。OpenCost 专为 Kubernetes 成本监控量身定制,与 Levitate 相结合,提供了应对这一挑战的整体解决方案。

在本博客中,我们将学习如何将现有的 OpenCost 设置与 Levitate 集成以监控 Kubernetes 成本。

什么是 Levitate?

Levitate 是一个托管时间序列指标和事件仓库。它与 Prometheus 和 OpenTelemetry 兼容,并提供更好的性能和工作流程来驯服高基数。

什么是开放成本?

OpenCost 是 CNCF 支持的开源成本监控工具,适用于云原生环境,旨在提供跨不同云提供商、区域和本地安装的 Kubernetes 集群成本的完整视图。它可以实时监控 Kubernetes 集群成本,提供每个资源的详细细分。

OpenCost 依赖于节点导出器和 kube-state-metrics (KSM) 发出的指标。它查询底层 TSDB 存储以获取这些指标。它还附带用于可视化的 Web UI 和 Grafana 仪表板。

OpenCost 还与云提供商进行内置集成,使用其 API 检索计费信息。

开放成本安装

可以使用 Helm 安装 OpenCost。它假定已安装现有的 Prometheus Operator。您可以按照文档进行安装。

将 OpenCost 与 Levitate 集成非常简单,因为它只需要进行最少的配置更改即可部署。OpenCost 假设需要查询的指标像 Levitate 一样存储在 TSDB 中。它涉及以下步骤。

  • 配置 Prometheus Operator 以远程写入 Kubernetes 指标,例如 kube-state-metrics 和 node-exporterLevitate。
  • 此外,Prometheus Operator 可以配置为抓取 OpenCost 发出的指标并将其发送到 Levitate。
  • 从 Levitate 读取 OpenCost 所需的指标。获取 OpenCost Helm Chart values.yaml。如果您自定义了 Helm Chart 值,请使用该值而不是默认文件。
  • values.yaml 使用 Levitate Read Credentials 更新 OpenCost Helm Chart 。按照本指南获取阅读凭据。
  • 将默认配置替换为以下修改的配置。使用之前获得的正确身份验证凭据更新占位符。
代码语言:javascript
复制
prometheus:
    # -- Secret name that contains credentials for Prometheus
    secret_name: ~
    # -- Prometheus Basic auth username
    username: "<levitate_username>"
    # -- Key in the secret that references the username
    username_key: DB_BASIC_AUTH_USERNAME
    # -- Prometheus Basic auth password
    password: "<levitate_password>"
    # -- Key in the secret that references the password
    password_key: DB_BASIC_AUTH_PW
    # -- Prometheus Bearer token
    bearer_token: ""
    bearer_token_key: DB_BEARER_TOKEN
    external:
      # -- Use external Prometheus (eg. Levitate)
      enabled: true
      # -- External Prometheus url
      url: "<levitate_read_url>"
    internal:
      # -- Use in-cluster Prometheus
      enabled: false
      # -- Service name of in-cluster Prometheus
      serviceName: prometheus-server
      # -- Namespace of in-cluster Prometheus
      namespaceName: prometheus-system
      # -- Service port of in-cluster Prometheus
      port: 80

确保 Prometheus 的外部数据源 enabled 设置为 true,内部数据 enabled 源设置为 false.

  • 就是这样!干净简单 👌 使用这些更新的配置部署 Helm Chart
代码语言:javascript
复制
helm upgrade opencost opencost/opencost -f ./values.yaml --kubeconfig=/path/to/kubeconfig

OpenCost Grafana 仪表板

导入此仪表板由 OpenCost 提供

结论

总之,有效的 Kubernetes 管理需要仔细监控运营成本。OpenCost 提供了跨不同平台的 Kubernetes 成本的全面视图,再加上 Levitate 高效的时间序列数据存储和强大的警报工作流程,创建了一个强大的成本监控系统。它们共同实现了实时跟踪、详细的成本细分和富有洞察力的可视化,确保 Kubernetes 部署的最佳财务效率。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-02-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生技术爱好者社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是 Levitate?
  • 什么是开放成本?
    • 开放成本安装
  • OpenCost Grafana 仪表板
  • 结论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档