选择正确的工具来成功监控 Kubernetes。
Kubernetes是一个生产就绪的开源平台,基于 Google 在容器编排方面的经验并结合了公众的最佳想法而设计。预计它将实现应用程序容器的部署、扩展和操作的自动化。
构建和运行应用程序的现代方法需要不断发展的控制和可观察性策略,以及我们使用的工具。传统的基础设施监控工具可能不够,需要专用的 Kubernetes 监控系统,如下所述。
有些对日志有用,有些对指标有用。有些提供了从鸟瞰角度使用 Kubernetes 的界面。有些是 Kubernetes 原生的,而另一些则更加不可知。
探索以下用于监控 Kubernetes 的工具。

普罗米修斯+格拉法纳
Prometheus是与 Kubernetes 一起使用的最流行、最好的监控工具之一。该工具最初由 SoundCloud 开发,后来捐赠给 CNCF。 Google Borg Monitor 激发了它的灵感。
Prometheus 将所有数据存储为时间序列。简而言之,Prometheus 在其他时间序列数据库中脱颖而出的原因在于其内置的警报机制、多维数据模型、拉与推模型、PromQL(Prometheus 查询语言),当然还有不断发展的社区。
Prometheus还具有以下特点:
- 不依赖分布式存储。
- 通过服务发现或静态配置来发现目标。
- PromQL,一种利用这种维度的灵活查询语言
- 单个服务器节点是自治的
- 时间序列收集是通过 HTTP 上的拉模型完成的
- 通过中间网关支持时序推送
- 包含按指标名称和键/值对分析的时间序列数据的多维数据模型
- 还支持多种格式的图表和仪表板
学习 Prometheus 的最佳方法是将其安装在您的开发服务器上并试用。我们有很棒的文档,但如果您正在寻找基于视频的学习,请查看此Udemy 课程。
您可以使用Kube Prometheus ,它提供端到端的集群监控。或者,您可以使用Kube State Metrics公开对象状态。
要可视化数据,您可以使用 Grafana。
Grafana用于可视化指标,但它也用作警报工具。 Grafana 可以通过 Slack、webhooks、电子邮件或其他通信渠道发出警报。另一个重要原因是数据的来源。 Grafana 可以同时查询多个实体。
您可以从 Grafana 查询和可视化 Prometheus 指标、创建仪表板并可选择设置警报。 Grafana 有一个 Kubernetes 插件,并且有一个漂亮的仪表板。
通过结合 Prometheus 和 Grafana,您可以在生产系统上实现高级的 Kubernetes 监控。

复选标记
最新版本的Checkmk包括完全改进的 Kubernetes 监控,使您能够立即分析和监控容器基础设施的动态交互。它允许对所有 Kubernetes 对象进行详细监控,并且非常易于使用。
无需具备动态基础设施经验,您可以在几分钟内设置 Kubernetes 监控。 Checkmk 会自动添加所有 Kubernetes 对象,并可以监控 Kubernetes 资产,例如集群、代码、部署、pod、卷、命名空间、daemonSet 和 statefulSet。
监控在预配置的仪表板上显示所有相关数据。这使您可以在几分钟内检测到资源消耗瓶颈和异常情况。您还可以创建自己的自定义视图。您只需单击不同的项目即可在多个视图之间移动。

在 Kubernetes 上部署 Checkmk 的最简单方法是使用 helm 存储库。 tribe29提供了模板,用户可以适应自己的环境。您可以按照Kubernetes 上的视频教程开始免费试用 Checkmk 企业版。
当然,Checkmk 并不止于此。借助 2,000 多个即用型插件,您只需一种工具即可监控 IT 基础架构的各个方面。例如,深入问题的根源并分析 Kubernetes 主机系统和编排容器如何交互。 Checkmk 提供对 CPU、内存、网络带宽和其他指标的深入了解。
数据可视化和警报通信可以适应不同团队的要求。 Checkmk 还可以与其他监控工具集成,例如 Prometheus、ntop 和 Datadog。将所有信息收集到一处并自动分享见解。

Checkmk 的其他功能包括:
- 智能警报了解 Kubernetes 的自我修复功能,并仅在真正需要采取行动时才突出显示关键情况。
- 强大的Kubernetes 集群收集器,获取您需要的所有数据
- 支持 TLS 加密以保护您的监控
由于其高性能监控核心以及支持分布式监控的能力,Checkmk 具有高度可扩展性。

立方体手表
Kubewatch是一个 Kubernetes 观察程序,可在 Slack 通道中发布事件通知。该工具能够确定需要监视哪些资源。它是用 Golang 编写的,并使用 Kubernetes 客户端库连接到 Kubernetes API 服务器。该库充当 Kubernetes 事件监控的构建块。
kubewatch 易于配置,可以使用 helm 或系统部署进行部署。更具体地说,kubewatch 检查它监控的特定 Kubernetes 资源所需的更改:部署、守护进程集、pod、服务、副本集、服务、复制控制器、机密和配置映射。
耶格
分布式跟踪在 Kubernetes 环境的监控和故障排除方面正在稳步增长。 Yeter是 Uber Technologies 发布的跟踪系统。它用于监控复杂分布式系统中的事务并对其进行故障排除。
Jaeger 具有适用于 Java、Python、Node 和 C++ 的基于 OpenTracing 的工具。对每个服务/端点使用一致的预先采样和单独的概率,并支持多个存储后端(Cassandra、Elasticsearch、Kafka、内存)。
Jaeger 的其他功能包括:
- 分布式事务监控
- 分布式上下文传播
- 性能/延迟优化
- 根本原因分析
- 服务依赖分析
顾问
cAdvisor旨在组装、处理和导出有关正在运行的容器的资源使用情况和生产信息。它还为 Kubernetes 开发并集成到 Kubelet 二进制文件中。虽然易于使用(它公开了开箱即用的 Prometheus 指标),但它不够强大,不足以成为通用监控解决方案。
与其他的不同,cAdvisor 不是按 Pod 部署,而是在节点级别部署。自动确定系统上运行的所有容器并收集系统指标,例如内存、CPU 和网络。
cAdvisor 是一个基本工具,以下是它的一些功能。
- 对 Docker 容器的本机支持以及对其他容器类型的帮助。
- 支持将统计数据导出到各种存储插件。 InfluxDB等
- 它通过分析机器上的“根”容器来提供整个机器的使用情况。
- 还支持在 Docker 或其他容器之外独立运行。
- cAdvisor 以每个节点为基础运行。自动发现指定节点上的所有容器并收集CPU、文件系统和网络使用情况统计信息。在 Web-UI 中查看指标会导出有关系统上所有容器的实时信息。
远程呈现
Telepresence允许您将某些服务连接到远程 Kubernetes 集群,同时在本地运行它们。这使得从事多服务操作的开发人员可以使用本地安装的工具来检查/调试/编辑服务。例如,您可以运行调试器或 IDE。
它还允许开发人员快速开发特定服务的本地服务,即使该服务依赖于集群中的另一个服务。通过迁移和保存服务,您可以立即查看正在运行的新服务。
Telepresence 是一个出色的本地开发环境,适用于在 Kubernetes 上运行的服务。实时调试部分是独特的,并且发展得非常快。以下是一些其他功能:
- 允许在容器内运行的代码连接到在主机上运行的 IDE 或调试器。
- Telepresence 在监控 OpenShift 集群时使用特定于 OpenShift 的代理映像。
- Telepresence 还支持在 pod 内的其他容器之间转发流量。
- Telepresence 使用可从 Docker 访问的目录作为临时目录。
编织范围
Weave Scope是一个 Kubernetes 故障排除和监控工具。创建应用程序和基础设施的逻辑拓扑,以轻松探索、监视和控制基于微服务的容器化应用程序。
这为您提供了整个应用程序和基础设施的自上而下的可见性。这使您可以实时确定部署到云提供商的分布式容器化应用程序中的问题。
Weave Scope 的功能包括:
- 支持任何部署方式(本地、托管、混合)并能够收集和报告主机/容器指标
- 聚合来自 Kubernetes 的指标、事件和标签
- 实时上下文指标
- 您可以按 CPU 和内存管理来过滤节点,以便快速识别哪些容器正在使用最多的资源。
扎比克斯
Zabbix允许您从系统构建几乎无限类型的数据。高性能实时监控系统,可同时控制数万台服务器、虚拟机和网络设备。
除了存储数据之外,您还可以使用可视化功能和非常灵活的方式来了解警报的数据。
Zabbix 的功能包括:
- 根本原因分析
- Zabbix 帮助您以 JSON 格式保存数据,因此您也可以在许多应用程序中使用它。
- 实时监控
- 强烈建议大型生产系统使用 Zabbix proxy。
- 深入报告
- 低级发现会自动检查新节点,无需任何努力。
- 高度可配置和可扩展。
Zabbix 很重要并且适合监控基础设施和应用程序指标,而不仅仅是 Kubernetes。如果您有兴趣学习 Zabbix,请查看这个精彩的课程。
Kubernetes 仪表板
虽然不完全是一个监控工具, 但 Kubernetes 仪表板是 Kubernetes 的通用 UI,可让您管理 Kubernetes 集群并对其进行故障排除。
如果您没有监控工具,仪表板是一个不错的起点。请检查安装指南。
结论
选择正确的 Kubernetes 工具非常重要。但你猜怎么着?最重要的是,它可以免费试用,所以为什么不尝试一下,看看什么对您的 Kubernetes 监控有效呢?
享受监控和故障排除的乐趣。




![2021 年如何设置 Raspberry Pi Web 服务器 [指南]](https://i0.wp.com/pcmanabu.com/wp-content/uploads/2019/10/web-server-02-309x198.png?w=1200&resize=1200,0&ssl=1)

