36

5个Kubernetes监控注意事项

 5 years ago
source link: http://dockone.io/article/6024?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

【编者的话】Kubernetes成为云生产环境中日益重要的组成部分,对于Kubernetes的监控也是必不可少的,以下介绍监控Kubernetes需要做的事项。

如果您奋战在DevOps前线,您可能知道Kubernetes正在迅速成为云生产环境的重要组成部分。 由于容器编排对于部署,扩展和管理docker化应用程序都至关重要,所以对Kubernetes的监控策略也成为监控策略中很重要的一部分。

容器环境与传统的运维环境不同,当你对应用程序和基础架构监控时,需要考虑如何监控运行它们的容器环境。 以下是五个最佳实践来实现监控策略:

  1. 集中日志和指标。 通过Kubernetes可以协调docker可以避免服务和工作流负载带来的混乱,但仅仅这样做你的环境仍然是分散的。集中你日志和监控指标,你才有机会实现对于整体环境的监控。
  2. 要考虑容器生病周期的短暂性。 容器编排是可以恰到好处的在短时间内启动,停止,杀死以及清理容器。 但是,监控它们可能并不那么容易。 即使服务正在进行,您仍然需要调试问题并监控集群的活动。 诀窍是在日志和指标消失之前获取。 如果你不这样做,你的指标看起来更像左边的图,而不是右边的图。

JzQFf2q.png!web

  1. 简化,简化,简化。对于容器环境中的所有活动块(服务,API,容器,编排工具),需要进行监视且不要引入不必要的复杂性。并不是要使用各种监控代理来扩展您的容器,每个监控代理都需要更新自己的时间表,从监控和管理的内容中抽象出监控和管理工具。 这也将帮助工程师专注于构建和交付软件,而不是运行交付平台。
  2. 明确监视每一层。 您需要收集日志并监视环境中各层的错误,故障和性能问题(pod,容器和控制管理器)。 例如,要解决pod问题,需要确保容器正在运行,并在controller manager中收集运行时指标。
  3. 确保整个图层的数据一致性。 为了快速准确的调试,您需要确保容器环境中所有图层的数据一致性。 诸如准确的时间戳,一致的测量单位(例如毫秒数与秒数)以及在应用程序和组件中收集常用的公共度量标准和日志,将帮助您快速准确地对所有层进行故障排除和调试。

简单直接的完成这些监控策略的最佳做法是监视Kubernetes环境中的容器,而不触碰应用程序容器。 通过将DaemonSet或sidecar引入与您的集装箱化服务并列的Kubernetes环境中,并包含您的日志记录和度量收集客户端,来实现此目的。 使用此方法进行部署将确保数据收集的一致性,最大限度地减少应用程序容器所需的更改,最重要的是,消除生产环境中选择的盲目性。

几种实现方法包括:

  • 使用Fluentd日志记录代理引入DaemonSet(这会为您提供日志记录而不是指标)。 如果您已经配置了ELK群集, 点击了解更多
  • 用Prometheus指标代理引入DaemonSet或sidecar(CoreOS在集成Prometheus和Kubernetes方面做得非常出色)。 在您的Kubernetes群集上运行Prometheus将为您提供指标检测,查询和警报, 点击了解更多
  • 各种指标和性能监控工具,包括Heapster,DataDog,cAdvisor,New Relic,Weave / VMware以及其他一些指标和性能监控工具也提供了用于Kubernetes监控的DaemonSet或sidecar选项。

原文链接: 5 Kubernetes Monitoring to-dos (翻译:edge_dawn)


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK