写点什么

kubernetes 可观测性:10 款开源工具

作者:HummerCloud
  • 2023-03-13
    北京
  • 本文字数:2952 字

    阅读完需:约 10 分钟

kubernetes 可观测性:10款开源工具

Kubernetes 正在彻底改变现代企业管理其云基础设施的方式。 但随着技术的发展,对运行在 Kubernetes 上的系统的可见性的需求也在增长。 如果没有适当的可观察性,就很难监控在 Kubernetes 上运行的应用程序和服务的健康状况。 幸运的是,大量 Kubernetes 原生可观察性工具可以帮助提供对云原生应用程序的可见性和监控。

下面,我们将探讨一些目前可用的开源 Kubernetes 原生可观察性工具,例如 Prometheus、Grafana 和 ELK Stack 等。 我们将简要介绍每一个的特性,在适用的情况下连接到它们的 Kubernetes Operators,并了解每一个如何帮助提高环境的可观察性。

Kubernetes 内置的监控功能

首先应该提到的是,Kubernetes 附带了一些内置功能来帮助监控。 例如,Kubernetes 带有 cAdvisor,这是一种可以跟踪容器的使用情况、性能和指标的工具。 Kubernetes 仪表板还可以提供集群资源的快照。 还有用于监控容器健康状况的活性和就绪探测器以及 Horizontal Pod Autoscaler,它可以根据不同的指标自动缩放 Pod。

1. Prometheus

Prometheus 是一个开源监控解决方案,可提供强大的指标、洞察力和警报。 这个流行的工具使用 PromQL 查询,使用户能够遍历时间序列数据并生成图形、表格和警报。 Prometheus 提供了许多客户端库,使其能够轻松连接到存储和警报工具。 它还为 Kubernetes 原生部署和管理提供了 Prometheus Operator。 Prometheus 是云原生计算基金会(CNCF)的毕业项目,在 Apache 2 许可下作为 GitHub 上的开源软件提供。

2. OpenTelemetry

OpenTelemetry (OTel) 是一个 CNCF 孵化项目,它是一个供应商中立的开源可观察性框架,用于检测、生成、收集和导出遥测数据,例如跟踪、指标和日志。 它用于创建和收集来自服务的遥测数据,并将它们发送到各种工具进行分析。 这种将可观察性数据转换为各种格式的能力是使用 OTel 的主要优势。

OTel 集成了流行的库和框架,如 Spring、ASP.NET Core、Express 和 Quarkus,安装和集成可以相对轻松地完成。 它被可观察性领域的许多供应商采用和支持。 OpenTelemetry 还有一个参考架构和一个 OpenTelemetry Operator for Kubernetes,它“使用 OpenTelemetry 检测库管理工作负载的收集器和自动检测”。

3. Jaeger

Jaeger 定位为一个开源的端到端分布式跟踪平台,旨在帮助解决复杂的分布式系统问题。 Jaeger 帮助进行分布式事务监控、性能和延迟优化、根本原因分析、服务依赖性分析和分布式上下文传播。

Jaeger 的最新版本为 v1.35,现在支持 OpenTelemetry 协议 (OTLP),该协议允许从 OpenTelemetry 接收跟踪数据。 Jaeger 提供了一个 Jaeger Operator,可以轻松开始使用 Kubernetes。 对于希望以高效方式监控分布式云原生系统并对其进行故障排除的组织来说,Jaeger 是一个很好的解决方案。

4. Grafana

Grafana 是一个开放的监控和可观察性平台,可帮助可视化数据。 它可以从许多不同的来源获取数据,例如来自 Prometheus、Loki、Elasticsearch、InfluxDB、Postgres 等的指标、日志和跟踪。 有超过 100 个插件可用,包括云和自托管。

除了可视化之外,您还可以使用 Grafana 创建动态仪表板、过滤和查询指标以及浏览日志。 您还可以设置自定义规则以向各种系统发送警报,例如 Slack、PagerDuty、VictorOps 和 OpsGenie。 Grafana Operator 可以轻松地将 Grafana 监控与 Kubernetes 集成。

5. The ELK Stack

ELK Stack 是 Kubernetes 可观察性工具的强大组合——ELK 代表 Elasticsearch、Logstash 和 Kibana。 Elasticsearch 提供了一种快速高效的方式来存储、搜索和分析日志。 Logstash 提供过滤和解析日志的能力,允许以易于使用的方式解析和构建日志。 Kibana 是用于可视化日志和指标的界面,允许用户快速获得见解并识别相关性。

借助 ELK Stack,Kubernetes 的可观察性得到改善,因为用户可以轻松监控系统事件和性能指标、检测异常并确定任何问题的根本原因。 ELK Stack 是一种流行的可观察性工具组合,许多人使用它来改进故障排除并保持更好的系统性能。

6. Fluentd/Fluent Bit

Fluentd 是一个在 Apache License v2.0 下获得许可并由 CNCF 托管的开源项目。 该工具旨在将不兼容的日志记录格式和过程转换为统一的日志记录层。 Fluentd 可以跟踪来自许多来源的事件,例如 Web 应用程序、移动应用程序、NGINX 日志等。 Fluentd 集中了这些日志,还可以将它们移植到外部系统和数据库解决方案,如 Elasticsearch、MongoDB 或 Hadoop。 参考官方文档可以使用 Fluentd DaemonSet 在 Kubernetes 中部署 Fluentd。

7. Kubewatch

Kubewatch 是跟踪 Kubernetes 集群变化的观察者。 当资源更改和事件发生时,该工具可以向协作中心和通知渠道发送通知。 该工具可以帮助跟踪部署历史、应用程序指标、版本漂移和观察其他事件。 请记住,VMware 已停止推动该项目,但它由 Robusta.dev 在此处的分支中进行外部维护。

8. Kube-state-metrics

Kube-state-metrics (KSM) 是一个简单的实用程序,可插入 Kubernetes API 服务器并创建有关集群内对象状态的指标。 它可用于生成有关对象(如部署、节点和 Pod)的健康报告。 该工具提供原始的、未修改的数据,并以纯文本形式将指标导出到侦听端口 8080 上的 HTTP 端点/指标。此数据旨在供 Prometheus 或类似的抓取工具使用。 您还可以在浏览器中打开 /metrics 端点以查看当前的 Kubernetes 集群数据。

9. Thanos

Thanos 是一种开源、高度可用的 Prometheus 设置,具有长期存储功能,允许用户扩展其 Prometheus 设置。 Thanos 使得跨多个 Prometheus 服务器和集群查询 Prometheus 指标成为可能。 支持 GCP、S3、Azure、Swift、腾讯 COS 等对象存储,无限保留。 它与 Prometheus Query API 兼容,允许用户利用任何支持该 API 的工具,例如 Grafana。

此外,Thanos 支持下采样以提高查询大时间范围的性能或帮助数据保留过程。 Thanos 与 Kubernetes 没有直接关联,但一些社区应用程序可以帮助在 Kubernetes 上安装 Thanos。 Thanos 由 Improbable 创立,是 CNCF 的孵化项目。

10. Cortex

Cortex 是 CNCF 的另一个孵化项目。 它专门为 Prometheus 启用高可用性、多租户、长期存储。 Cortex 可以长期保存数据,有助于容量规划。 Cortex 旨在通过并行化和缓存使 PromQL 查询非常快。 Cortex 还全面概述了可用于分析的 Prometheus 时间序列数据。 Cortex 具有可扩展性,允许将来自多个 Prometheus 服务器的数据发送到单个集群,超越单台机器所能提供的。

总结

Kubernetes 正在彻底改变现代企业管理其云基础设施的方式。 然而,它并非没有障碍——其中之一是集中云原生监控和指标的日益分散的状态。

幸运的是,有几个开源 Kubernetes 原生可观察性工具可用于帮助提供对 Kubernetes 环境的可见性和监控。 如您所见,其中许多工具也与 Prometheus 兼容,让您可以利用您可能已经使用的设置。 这些 Kubernetes 原生工具中的每一个都提供了独特的特性和功能,可以帮助提高 Kubernetes 环境的可观察性,从而更轻松地监控 Kubernetes 上运行的应用程序和服务的性能和健康状况。

关于 HummerRisk

HummerRisk 是开源的云原生安全平台,以非侵入的方式解决云原生的安全和治理问题,核心能力包括混合云的安全治理和 K8S 容器云安全检测。

Github 地址:https://github.com/HummerRisk/HummerRisk

Gitee 地址:https://gitee.com/hummercloud/HummerRisk


发布于: 刚刚阅读数: 4
用户头像

HummerCloud

关注

还未添加个人签名 2022-09-07 加入

还未添加个人简介

评论

发布
暂无评论
kubernetes 可观测性:10款开源工具_Kubernetes_HummerCloud_InfoQ写作社区