如今,kubernetes在github上已经拥有了超过58000万颗点赞之星,而且它在全球范围内有着2200多名在册的贡献者。可以说,它已然成为了容器编排方面的实际标准。不过,在解决并运行分布式微服务应用的过程中,它时常也会面临一些严峻的挑战。其中,广为开发与运维人员所提及的挑战之一便是:对于kubernetes的监控问题。面对复杂的分布式环境,大家往往需要通过开发各种开源的监控方案,以满足实际应用的需求。
当前,在kubernetes生态系统及其社区中,有着林林总总的kubernetes工具。它们中有的能够通过日志来辅助检测状态;有的则是一种数据收集器;而另一些则提供了操作kubernetes的界面。有些是kubernetes原生的,有些则是开发人员自行研发的。在本文中,我们将通过优缺点的比较,向您介绍十大流行的kubernetes开源监控工具。
prometheus
优点:kubernetes原生,易于使用,拥有庞大的社区。
缺点:可扩展性与存储能力不强。
由于具有与大量数据源的集成能力,因此grafana在业界备受欢迎。同时,强大的grafana具有警报、注释、过滤、特定数据源查询、可视化仪表板、身份验证与授权、以及跨组织协作等多种功能。
优点:拥有大型生态系统,以及丰富的可视化与警报功能。
缺点:未能针对kubernetes的日志管理进行优化。
elk(ala elastic stack)
就kubernetes的日志而言,最受欢迎的开源解决方案当属elk stack。elk是elasticsearch、logstash和kibana的首字母缩写,其实它包含了第四个组件:beats。它们都属于轻量级的数据传送器。虽然堆栈中的每一个组件都仅负责日志管道中的不同阶段,但是它们组合在一起,却能为kubernetes提供了一个全面而强大的日志解决方案。
其中,logstash管道能够在发送日志并对其进行存储之前,完成数据的汇总和处理。具有可扩展性的elasticsearch,即使在存储和搜索数百万个文档时,也能具有不俗的表现。其对应的kibana平台,则能够出色地为用户提供分析数据所需的可视化界面。
堆栈中所有不同的组件都可以被轻松部署到kubernetes环境之中。您可以使用各种部署配置、以及helm图表,将不同的组件作为pod予以运行。通过部署,我们可以将metricbeat和filebeat作为守护进程的采集器,将kubernetes的元数据附加到对应的文档中。
优点:拥有庞大的社区,易于在kubernetes中部署与使用,具有丰富的分析功能。
缺点:扩展起来较为麻烦。
fluentd/fluent bit
fluentd在logstash的基础上进行了相关性能的改进,因此也广受kubernetes用户的欢迎。在工具设计方面,fluentd拥有出色的性能、可扩展性和可靠性。各种简单方便的输入与输出,并不会对其性能产生任何影响。针对处理传输中的故障、以及数据过载问题,fluentd使用磁盘或内存来进行缓冲和队列。同时,fluentd通过支持多种配置选项,以确保提供更为灵活的数据管道。
kubernetes原生的fluentd和fluent bit都隶属于cncf项目。它们不但可以与kubernetes无缝集成,而且能够在仅占用少量资源的情况下,使用相关的pod和容器元数据来丰富各类数据。
优点:具有庞大的插件生态系统,提供优异的性能与可靠性。
缺点:配置较为麻烦。
cadvisor(
图片来源:github
您可以通过该应用工具,来有效地掌控部署环境,并在其上部署自己的基础架构,以及不同的组件连接。
优点:提供了“零配置”式的用户界面。
缺点:其分析深度欠佳。
总结
上述所列举的十大kubernetes开源工具,只是业界所有工具中的“冰山一角”。它们在不同程度上为用户提供了设计kubernetes堆栈的可观察性。您可以通过设置小型的沙箱环境,从小规模的测试开始,进行尝试性的测试和部署,进而判断出哪一款才是您真正所需要的工具。
您可以采取简单的步骤来提高您的网站排名301重定向是什么301重定向怎么做网络推广让品牌发扬烟台到新沂物流专线东莞到禹城物流专线新闻动态IT信息技术交流网站主要功能模块实现大连到亳州物流专线南昌到冷水江物流专线