当前位置: 首页 > 科技观察

如何以5种方式获取Kubernetes监控

时间:2023-03-14 20:42:23 科技观察

如果您处于DevOps的前线,Kubernetes正迅速成为您生产云环境的重要组成部分。由于容器编排对于部署、扩展和管理容器化应用程序至关重要,因此监控Kubernetes需要成为监控策略的重要组成部分。容器环境的运行方式与传统环境不同。因此,如果您要监控应用程序和基础架构,则需要考虑如何监控运行它们的容器环境。这里有5个最佳实践供参考:1.集中日志和指标。通过Kubernetes编排您的容器化服务和工作负载可以带来秩序,但请记住您的环境仍然是分散的。如果您将日志和指标集中起来,处理起来会容易得多。2.考虑临时容器。容器编排的美妙之处在于它可以在很短的时间内轻松启动、停止、终止和清理容器。然而,监控它们可能并不容易。即使服务正在运行,您仍然需要调试问题并监视集群活动。诀窍是在日志和指标消失之前获取它们。如果不这样做,您的指标将看起来更像左边的图表而不是右边的图表。3.简化,简化,再简化。对于容器环境中的所有移动部件(服务、API、容器、编排工具),您需要在不引入不必要的复杂性的情况下进行监控。不是使用各种监控代理扩展容器,而是从您监控和管理的内容中抽象监控和管理工具。这也将帮助您的工程师专注于构建和交付软件,而不是操作和维护交付平台。4.清晰监控每一层。您需要在环境的所有层(pod\container和controllermanager)收集日志并监控错误、故障和性能问题。例如,您需要能够对pod进行故障排除,确保容器健康,并在控制器管理器中收集运行时指标。5.确保跨层数据一致性。为了快速准确地调试,您需要确保容器环境中所有层的数据一致性。诸如准确的时间戳、一致的测量单位(例如毫秒与秒)以及跨应用程序和组件收集一组通用指标和日志之类的东西将帮助您快速准确地跨所有层进行故障排除和调试。以简单直接的方式完成这些积压的最佳方法是在Kubernetes环境中监控容器,而无需接触应用程序容器。这可以通过将DaemonSet或sidecar与容器化服务一起引入Kubernetes环境并包含日志记录和指标收集代理来实现。使用这种方法进行部署将确保一致的数据收集,最大限度地减少对应用程序容器的更改,最重要的是,消除在生产环境中盲目选择的可能性。执行此操作的几种方法包括:1.将DaemonSet与Fluentd日志记录代理一起使用(这为您提供日志记录而不是指标)。如果您已经配置了ELK集群,那么这是一个选项。2.使用带有Prometheus指标代理的DaemonSet或sidecar(CoreOS在集成Prometheus和Kubernetes方面做得非常出色)。在Kubernetes集群上运行Prometheus将为您提供指标、查询和警报。3.许多指标和性能监控工具,包括Heapster、DataDog、cAdvisor、NewRelic、Weave/VMware,也提供了用于Kubernetes监控的DaemonSet或sidecar选项。