编程语言
首页 > 编程语言> > Kubernetes监控最佳实践

Kubernetes监控最佳实践

作者:互联网

Kubernetes可以使用不同的工具进行安装,无论是开源、第三方供应商还是公共云。在大多数情况下,默认安装的监控能力有限。因此,一旦Kubernetes集群运行,管理员必须实施监控解决方案以满足其需求。

Kubernetes监控的典型用例包括:

关键Kubernetes监控最佳实践概念摘要

下表总结了我们将在本文中探索的Kubernetes监控最佳实践。

监控与可观察性

在我们更详细地讨论之前,让我们来解开一个经常令人困惑的话题,监控与可观察性。“监控”一词更传统,涵盖了用于监控应用程序基础设施组件的指标和日志的收集。这个想法是通过不断评估其基础基础设施的实时性能来“监控”工作量。

可观察性是一个相对较新的概念,即使它与监控重叠,其最终目标是在事务路径上隔离性能瓶颈,而不是监控应用程序基础设施。可观察性在基于微服务范式设计的应用程序环境中获得了牵引力,其中应用程序包括托管在临时容器中的模块化服务,并通过应用程序编程接口(API)相互交互。在这样的环境中,孤立地监控服务器和容器没有意义,因此需要一个新的视角,从而产生了可观察性的概念。

除了指标和日志外,可观察性还包括分布式跟踪,以通过应用程序基础设施跟踪事务的路径。分布式跟踪使操作工程师能够理解用户请求所采取的路径,包括:

7个基本的Kubernetes监控最佳实践

以下七个Kubernetes监控最佳实践可以帮助DevOps和SRE(站点可靠性工程)团队实现SLO(服务级别目标),并提高整体基础设施的可观察性。

Kubernetes监控最佳实践#1:确定您想要实现的目标

确定业务目标是第一个(可以说是最重要的)Kubernetes监控最佳实践。这些目标的例子有:

 

Kubernetes监控最佳实践#2:确定要监控的指标

一旦您确定了业务目标,您就可以确定实现这些目标需要收集哪些指标。此步骤还包括定义相关的配置参数,例如收集率和存储指标数据需要多长时间。

一些指标通常很容易获得,通常是系统指标。这些指标包括:

此外,通常需要更复杂的指标。这些指标通常与您运行的软件相关联。例如,他们可以测量:

 

Kubernetes监控最佳实践#3:选择正确的工具

我们的下一个Kubernetes监控最佳实践是根据所需的指标选择正确的工具,并实现您的监控目标。

自由和开源软件(FOSS)与商业第三方软件通常用于对Kubernetes监控工具进行分类。FOSS监控解决方案的一些示例包括:

虽然有很多开源选项可供选择,但您需要内部专业知识和大量DevOps工程师的时间来构建和维护FOSS监控解决方案。如果你没有内部专家,你可以聘请顾问来构建解决方案,但这可能会很昂贵。另一方面,从长远来看,开发自己的监控解决方案可以为您节省大量资金。

另一种选择是为第三方软件付费,该软件通常提供交钥匙、软件即服务(SaaS)解决方案。商业选项通常具有更先进的产品,例如机器学习来检测可疑的趋势和模式或执行离线数据分析。此外,大多数商业解决方案都具有自由和开放源码软件项目所缺乏的支持水平。

在评估解决方案时,请记住,使用第三方工具(特别是SaaS产品)可能会产生合规性问题,例如根据HIPAA或GDPR保护个人身份信息。您可能还需要打开集群,以允许第三方SaaS产品从互联网路由,这增加了攻击面,并可能产生其他安全问题。

Kubernetes监控最佳实践#4:监控您的监控系统

除非您运行非生产工作负载,否则您可能希望监控解决方案的每个元素都具有高度可用性和可扩展性。实现高可用性监控需要监控系统本身。至少,您必须能够检测监控系统中的严重故障,并在发生时发送通知。理想情况下,您还应该配置此类问题的自动补救。

一般来说,这种额外的监控级别仅用于内部解决方案,因为第三方SaaS供应商通常为其平台提供监控系统。一些自由和开放源码软件产品集成了自己的监控系统。例如,Loki附带了Loki Canary,它定期向Loki发送虚拟日志,并读回它们以确保其正常工作。

Kubernetes监控最佳实践#5:考虑数据存储

您的监控系统将随着时间的推移积累数据,这些数据应该像任何其他数据一样进行管理。你需要确定你需要坚持多久,甚至可能在一段时间后把它放在冷藏室。请务必考虑适用于您组织的任何法规或法律要求,以便根据要求快速访问和提供数据。确定监控数据的数据保留要求将是您整体需求收集工作的一部分,然后您需要相应地实施它。

Kubernetes监控最佳实践#6:监控控制平面

也要忽视监控你的控制飞机!我们列出的所有最佳实践也适用于控制平面,而不仅仅是数据平面。一些Kubernetes托管解决方案,如亚马逊的EKS,将自动为您做到这一点。如果没有,您需要将控制平面节点和各种控制平面组件的监控添加到您的监控策略中。

 

Kubernetes监控最佳实践#7:考虑事件响应

一旦您的监控系统启动并运行并能够向您的团队发送警报,您必须考虑如何响应此类警报。Squadcast可以帮助协调事件响应,确保团队内部的协调水平非常高,以便他们在处理问题时尽可能高效。

将监控数据集成到强大的事件响应策略中,有助于团队更快地检测中断和其他生产事件并从中恢复。因此,MTTR下降,正常运行时间改善。

标签:Kubernetes,存储,监控
来源: