资讯专栏INFORMATION COLUMN

监控Kubernetes,第一部分:挑战+数据来源

VioletJack / 679人阅读

摘要:在本系列的第一部分中,我将介绍监控的挑战和主要数据来源。稍后,我将深入探讨和部署,并使用下面列出的数据源的实际示例。监控挑战使团队更容易管理容器,在自动维护所需状态的同时调度和配置容器。

作者:Sean Porter

我们的行业长期以来一直依赖基于微服务的架构来更快、更安全地交付软件。微服务的出现和无处不在自然为容器技术铺平了道路,使我们能够重新思考如何构建和部署我们的应用程序。Docker在2013年加入战场,对于专注于基础架构和云迁移现代化的公司而言,像Docker这样的工具对于大规模快速发布应用程序至关重要。

但是,随着速度的提升带来了挑战,容器在编排方面引入了不小的复杂性。进入Kubernetes:一个开源容器编排系统,用于自动化容器化应用程序的部署、扩展和管理,Kubernetes控制平面命令和控制你的基础架构。Kubernetes最初由谷歌于2014年推出,现在由云原生计算基金会维护(顺便提一下,谷歌帮助组建了Kubernetes,以确保它保持自由免费和竞争力)。如果你使用Docker来容器化你的应用程序,那么你肯定会使用Kubernetes进行编排。(当然还有其他的编排器,比如Docker Swarm和Apache Mesos,但Kubernetes已成为容器编排领域的领导者。)

在本系列的第一部分中,我将介绍监控Kubernetes的挑战和主要数据来源。稍后,我将深入探讨Kubernetes和Docker部署,并使用下面列出的数据源的实际示例。

Kubernetes监控:挑战

Kubernetes使团队更容易管理容器,在自动维护所需状态的同时调度和配置容器。核心价值观是它作为一个通用平台,Kubernetes可以在任何地方部署你的应用程序,无论是AWS、GCP、Azure还是裸机。同样,所有这些功能和自动化都带来了挑战,特别是在关注性能方面。无论部署的规模如何,你仍需要知道该部署中有多少可用资源,以及了解已部署应用程序和容器的运行状况。正如微服务使我们重新思考如何构建应用程序一样,Kubernetes要求我们改变传统的监控方法,容器编排的动态特性需要采用动态的监控方法。

以下是我看到的挑战:

在这个新的动态时代,你的应用程序在不断地移动

在Kubernetes之前,将应用程序分布在多个云(公共和私有云,以及不同的云提供商)中并非易事。现在分发应用程序很容易,我们遇到了一系列新问题。

就像从单体到微服务架构的转变一样,采用Kubernetes意味着需要监控许多小块

你已经听说过像牛(cattle)一样处理你的基础设施而不是宠物(pet)的优点。Kubernetes是这种畜牧方法的缩影,可以轻松实现大量和短暂的基础设施。就这样,通过标签(label)和注释(annotation)等标识符跟踪您的Kubernetes pod及其容器变得至关重要。

Kubernetes监控:数据来源

基本上,监控工具从四个来源收集Kubernetes数据:

运行着Kubelet的Kubernetes主机。Kubernetes主机的资源有限,因此监控它们尤其重要。有许多方法可以从这些主机中获取数据,但最常见的方法是使用Prometheus节点导出器(node exporter)从Kubernetes主机中获取数据,并在HTTP端点上公开系统资源遥测数据(例如CPU使用和内存)。

Kubernetes进程,又叫做Kubelet指标,包括apiserver、kube-scheduler和kube-controller-manager的指标。 这些内容为你提供有关Kubernetes节点及其运行工作的详细信息。

Kubelet的内置cAdvisor。这里有一个很好的总结,但基本上Kubelet附带了对cAdvisor的内置支持,它可以收集、聚合、处理和导出正在运行的容器的指标。cAdvisor(它还具有对Docker容器的原生支持)为你提供每容器使用、跟踪资源隔离参数和历史资源使用情况。因为Kubernetes是控制平面,它可以指定使用多少内存,并利用cAdvisor跟踪。

kube-state-metrics,它为你提供集群级别的信息,可以全面了解Kubernetes集群上发生的情况,例如你配置的所有pod及其当前状态。kube-state-metrics覆盖所有Kubernetes服务并收集有关其当前状态的信息,例如运行的容器数量、处于特定状态的容器数量、是否有任何表明它们不健康或我们处于容量饱和状态等。从README,kube-state-metrics“监听Kubernetes API服务器”。

接下来:容器状态和使用Prometheus收集数据

如果你有跟踪这话题,你可能会注意到你可以使用Prometheus监控所有这四个数据源。你可能还注意到我们只讨论监控Kubernetes而不是监控它上面运行的应用程序(并且,这可能与你听到的有关Kubernetes监控的所有内容一致)。在我的下一篇文章中,我将以Prometheus展示Kubernetes和Docker监控,讨论它为什么能够很好地适应Kubernetes生态系统,并识别差距。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/32827.html

相关文章

  • CNCF权威调研揭示K8s用户所面临的最大挑战

    摘要:然而此次调研结果表明,企业采用时面临的挑战中,复杂性仅排在第五位,用户面临的基础设施相关的挑战更大。在监控方面,中型组织更可能会面临挑战。 人们在使用及部署Kubernetes时会遇到各种各样的问题。一些挑战是使用Kubernetes时独有的,其他一些挑战则是伴随着一些技术的使用出现的典型问题。 The New Stack发布的《Kubernetes的生态系统状况》报告总结了用户在挑...

    wpw 评论0 收藏0
  • Kubernetes改变监控的三种方式

    摘要:我们客户之中有一个最近在日志中提到,显著改变了他们将服务带到市场的方式。现在我们看到的这种变化波及到监视和故障诊断经过编排的环境。警报需要适应两个方面。为了操作正常,这些警报提示需要自动设置为创建的容器。 随着K8S的成熟,越来越多的公司选择在生产中运用容器,我们现在看的第一个改变方式就是DevOps团队如何监控的这个过程中的变化。我们客户之中有一个最近在日志中提到,Kubernete...

    pinecone 评论0 收藏0
  • 乐心医疗的 Kubernetes云平台建设实践

    摘要:宋体自年被开源以来,很快便成为了容器编排领域的标准。宋体年月,乐心医疗的第一个生产用集群正式上线。所以于年推出后,乐心医疗的运维团队在开会讨论之后一致决定尽快迁移到。Kubernetes 自 2014 年被 Google 开源以来,很快便成为了容器编排领域的标准。因其支持自动化部署、大规模可伸缩和容器化管理等天然优势,已经被广泛接纳。但由于 Kubernetes 本身的复杂性,也让很多企业的...

    testHs 评论0 收藏0
  • LC3视角:Kubernetes下日志采集、存储与处理技术实践

    摘要:下需要为每个单独进行采集配置采集日志目录,采集规则,存储目标等,不易维护。日志服务的日志架构实践我们提出基于阿里云日志服务的日志处理架构,用以补充社区的方案,来尝试解决场景下日志处理的一些细节体验问题。 摘要: 在Kubernetes服务化、日志处理实时化以及日志集中式存储趋势下,Kubernetes日志处理上也遇到的新挑战,包括:容器动态采集、大流量性能瓶颈、日志路由管理等问题。本文...

    Guakin_Huang 评论0 收藏0
  • 实录享|kubernetes 在腾讯游戏的应用实践

    摘要:大家好今天我分享的主题与游戏行业相关,为大家介绍的是在腾讯游戏中的应用实践。随着技术的兴起,我们开始调研在游戏容器化方面的应用。也就是说,将不同游戏业务部署到同一台母机,采用绑定核的方式。在母机上架部署时,创建设备和设备并将它们进行关联。 今天小数的推送内容来自腾讯互娱高级工程师黄惠波,让我们一起来看看吧~~~ 黄惠波,腾讯互娱高级工程师目前主要负责游戏计算资源容器化平台的研发工作,包...

    DangoSky 评论0 收藏0

发表评论

0条评论

VioletJack

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<