使用 Levitate 设置 OpenCost 以监控 Kubernetes 集群的成本。
有效控制运营费用在 Kubernetes 的部署和管理中起着至关重要的作用。虽然 Kubernetes 使用户能够增强对部署的控制,但它需要对相关成本的深入了解和有效管理。OpenCost 专为 Kubernetes 成本监控量身定制,与 Levitate 相结合,提供了应对这一挑战的整体解决方案。
在本博客中,我们将学习如何将现有的 OpenCost 设置与 Levitate 集成以监控 Kubernetes 成本。
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:
# -- 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 upgrade opencost opencost/opencost -f ./values.yaml --kubeconfig=/path/to/kubeconfig
导入此仪表板由 OpenCost 提供
总之,有效的 Kubernetes 管理需要仔细监控运营成本。OpenCost 提供了跨不同平台的 Kubernetes 成本的全面视图,再加上 Levitate 高效的时间序列数据存储和强大的警报工作流程,创建了一个强大的成本监控系统。它们共同实现了实时跟踪、详细的成本细分和富有洞察力的可视化,确保 Kubernetes 部署的最佳财务效率。