Kubernetes:监控指南

今天的帖子由Datadog的研究与分析工程师Jean-Mathieu Saponaro讨论,Kubernetes需要进行哪些更改以进行监视,以及如何准备适当地监视Kubernetes精心策划的容器化基础架构。

容器技术正在席卷基础设施领域。尽管容器解决或简化了基础架构管理流程,但它们在编排方面也带来了极大的复杂性。这就是Kubernetes拯救我们的地方。就像指挥指挥乐队一样, Kubernetes 监督我们的容器集合-自动启动,停止,创建和销毁它们,以使我们的应用程序保持正常运行。

Kubernetes通过创建诸如以下的抽象级别使管理容器化基础架构变得更加容易 豆荚服务。我们不再需要担心应用程序在哪里运行或它们是否有足够的资源来正常工作。但这并不能改变这样一个事实,即为了确保良好的性能,我们需要监视我们的应用程序,运行它们的容器以及Kubernetes本身。

重新思考Kubernetes时代的监控

正如容器完全改变了我们在虚拟机上运行服务的方式一样,Kubernetes也改变了我们与容器交互的方式。好消息是,通过适当的监视,即使容器和应用程序不断变化,Kubernetes固有的抽象级别也可以提供您的基础架构的全面视图。但是Kubernetes监控要求我们重新考虑和调整策略,因为它在某些方面不同于监控传统主机(例如VM或物理机)。

标签和标签变得至关重要
由于容器及其编排完全由Kubernetes管理,因此标签是我们现在必须与容器和容器进行交互的唯一方法。这就是为什么它们对于监视绝对至关重要的原因,因为所有指标和事件都将使用以下方法进行切片和切块 标签 跨基础架构的不同层。使用逻辑且易于理解的架构定义标签非常重要,因此您的指标将尽可能有用。

现在有更多要监视的组件

在以主机为中心的传统基础架构中,我们仅用于监视两层:应用程序和运行它们的主机。现在,中间的容器和Kubernetes本身都需要监视,因此有四个不同的组件可以监视和收集度量。

应用程序在不断发展
Kubernetes根据调度策略动态调度应用程序,因此您并不总是知道应用程序在哪里运行。但是仍然需要对其进行监视。因此,必须使用具有服务发现功能的监视系统或工具。它会自动使度量标准收集适应移动的容器,因此可以连续监视应用程序而不会中断。

为分布式集群做好准备

Kubernetes具有 能力 在多个数据中心和可能不同的云提供商之间分布容器化的应用程序。这意味着必须在所有这些不同来源之间收集并汇总指标。 

 

有关Kubernetes固有的所有这些新的监控挑战以及如何克服这些挑战的更多详细信息,我们最近发布了 深入的Kubernetes监控指南。该系列的第1部分介绍了如何使您的监视策略适应Kubernetes时代。

监控指标

是否使用 堆子 数据或与Kubernetes及其不同API集成的监视工具,需要密切跟踪几种关键类型的指标:

  • 跑步吊舱 和他们的 部署
  • 通常 资源指标 例如CPU,内存使用率和磁盘I / O
  • 容器原生 指标
  • 监视工具中的服务发现功能必不可少的应用程序指标 

所有这些指标都应使用Kubernetes标签进行汇总,并与来自Kubernetes和容器技术的事件相关联。

 

Part 2 我们有关Kubernetes监视的系列文章中的指南将指导您完成所有需要收集和跟踪的数据。

收集这些指标

无论您是想通过组合Heapster,存储后端和制图工具来跟踪这些关键性能指标,还是要通过将监视工具与基础结构的不同组件集成在一起,来跟踪这些关键性能指标, Part 3关于Kubernetes指标集合,已经介绍了。

 

锚定了!

使用Kubernetes可以大大简化容器管理。但这要求我们在几个方面重新考虑我们的监控策略,并确保正确收集,汇总和跟踪来自不同组件的所有关键指标。我们希望我们的监控指南能够帮助您有效监控您的Kubernetes集群。 意见和建议 非常欢迎。

 

-Jean-Mathieu Saponaro,Datadog研究与分析工程师