云端的Kubernetes:可观察性的指南

根据 Deming 的名言“如果你不测量它,你就无法管理它”,可观察性和监控是我们衡量服务的方式。

在处理部署和扩展方面,Kubernetes 非常具有革命性。但是容器不断创建和销毁的方式有时会在监控方面带来挑战。这就是观察性发挥作用的地方,提供了关于系统表现以及问题发生原因的关键见解。

想重新了解 Kubernetes 术语吗?阅读 5分钟解密 Kubernetes

在 Kubernetes 中的可观察性是什么?

人们喜欢使用 可观察性 作为一个总称。但通常指的是指标、日志和追踪。就像是有一个窥视您的应用程序和基础设施核心的镜头。通过收集和分析这些输出,可观察性帮助您在问题影响服务之前发现潜在问题,并优化整个系统性能。

我脑海中浮现的三个事物是:

指标

这些是数字,它们提供有关资源使用情况、错误率和性能的数据。一些流行的指标包括 CPU 使用率和内存使用率的百分比,以及有关指标本身的其他元数据(有时称为维度)。

日志

日志提供了系统内事件的详细历史记录,如错误或用户操作。它们为故障排除和理解应用程序行为提供了上下文。我相信您以前见过”日志”:

SystemVerilog

 

跟踪

跟踪提供了请求经过服务时的端到端视图,有助于识别瓶颈或延迟问题。通过跟踪多个微服务中的请求,您可以确定性能问题出现在哪里。

日志和跟踪听起来可能相似,但它们是不同的。将日志视为发生情况的快照,而跟踪则告诉您发生的方式和原因跨整个系统。

可观测性实际上并不局限于组织中的一个角色,它本身是在不同角色之间传递的关键信息。例如,作为软件工程师,您会使用度量标准、日志和跟踪为应用程序代码添加仪器。现在,您需要一些工具来收集、存储和分析这些数据,比如用于度量标准的Prometheus和用于跟踪的Jaeger

如果您还没有对可观测性产生兴趣,我将总结:

  1. 它确保一切正常高效地运行,通过识别性能瓶颈。
  2. 提高系统的韧性,并帮助应用程序快速恢复失败(希望如此)。
  3. 持续监控让团队能够及早检测异常,预防安全漏洞,并确保敏感数据受到保护。
  4. 您可以构建一个外观精美的仪表板,帮助您更好地了解系统性能。它甚至可以帮助您节省大量基础设施成本(看着你,AWS!)。

等等,我还提到了上面的监控。那是什么,它又有什么不同呢?

虽然可观测性和监控是相关的,但它们有不同的作用。监控涉及设置预定义的检查/警报,以确保系统在可接受的参数范围内运行,符合您的SLA/SLO。另一方面,可观测性则更进一步,提供对系统行为的全面理解。这不仅仅是知道何时出现故障;更重要的是理解为什么以及如何发生。监控和可观测性对于有效的系统管理都是必不可少的。

Call Out:OpenTelemetry

OpenTelemetry(也称为OTel)是一个领先的开源API、SDK和工具集合。使用它来对软件的性能和行为进行仪器化、生成、收集和导出遥测数据(指标、日志和跟踪),帮助您分析您的软件性能和行为。OpenTelemetry与许多热门库和框架集成,并支持在各种Kubernetes环境中进行基于代码和零代码的仪器化。

结论

总结可观察性不仅是一项技术要求,对于希望在当今竞争激烈的市场中保持领先地位的组织来说,这是一项战略必需。通过利用正确的工具和策略,例如用于统一数据收集的OTel,组织可以监视、排除故障并持续优化其Kubernetes应用程序。通过更好地了解系统性能,组织可以做出基于数据的决策,提高应用程序可靠性,并更有效地实现业务目标。

我不知道谁说的,但我喜欢这句话:停止猜测,开始了解!

Source:
https://dzone.com/articles/the-must-have-guide-to-kubernetes-observability