专栏首页CNCF监控Kubernetes,第一部分:挑战+数据来源

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

作者: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数据:

  1. 运行着Kubelet的Kubernetes主机。Kubernetes主机的资源有限,因此监控它们尤其重要。有许多方法可以从这些主机中获取数据,但最常见的方法是使用Prometheus节点导出器(node exporter)从Kubernetes主机中获取数据,并在HTTP端点上公开系统资源遥测数据(例如CPU使用和内存)。
  2. Kubernetes进程,又叫做Kubelet指标,包括apiserver、kube-scheduler和kube-controller-manager的指标。 这些内容为你提供有关Kubernetes节点及其运行工作的详细信息。
  3. Kubelet的内置cAdvisor。这里有一个很好的总结,但基本上Kubelet附带了对cAdvisor的内置支持,它可以收集、聚合、处理和导出正在运行的容器的指标。cAdvisor(它还具有对Docker容器的原生支持)为你提供每容器使用、跟踪资源隔离参数和历史资源使用情况。因为Kubernetes是控制平面,它可以指定使用多少内存,并利用cAdvisor跟踪。
  4. kube-state-metrics,它为你提供集群级别的信息,可以全面了解Kubernetes集群上发生的情况,例如你配置的所有pod及其当前状态。kube-state-metrics覆盖所有Kubernetes服务并收集有关其当前状态的信息,例如运行的容器数量、处于特定状态的容器数量、是否有任何表明它们不健康或我们处于容量饱和状态等。从README,kube-state-metrics“监听Kubernetes API服务器”。

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

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

本文分享自微信公众号 - CNCF(lf_cncf),作者:CNCF

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-01-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何克服第2天Kubernetes的技能差距

    https://nirmata.com/2020/07/09/how-to-overcome-the-day-2-kubernetes-skills-gap/

    CNCF
  • Kubernetes提供的和不提供的安全功能

    要说Kubernetes没有提供安全功能是错误的。Kubernetes提供了一些旨在帮助保护容器化应用程序的功能。

    CNCF
  • Kubernetes安全三步谈:如何监控与控制Kubernetes中的资源消耗问题

    本文是关于Kubernetes安全系列三篇文章中的最后一篇。在第一篇文章中,我们分享了如何确保企业的Kubernetes集群免受外部攻击;第二篇文章介绍了三种保...

    CNCF
  • 浅谈K3OS:首个K8s操作系统,为边缘计算而生!

    4月24日,容器软件提供商Rancher Labs正式发布k3OS,这是业界首个专为Kubernetes而生的极轻量操作系统,资源消耗极低,操作极简,秒级启动,...

    边缘计算
  • 腾讯云成全球首批CNCF K8S一致性项目认证成员

    在过去的三年中,Kubernetes 已经成为主流的容器调度平台,越来越多的企业组织和开发者开始使用。而 Certified Kubernetes Confor...

    云加社区
  • Kubernetes 是否值得学习吗?

    Original image by Myriam Zilles from Pixabay

    YP小站
  • 豆瓣评分9.3的《Kubernetes In Action》中文版隆重上市,学习K8S更方便了!

    2017年,Docker 公司宣布下一版本的 Docker EE 中将全力拥抱 Kubernetes,这标志着Kubernetes获得容器编排之战中的全面胜利,...

    博文视点Broadview
  • 管理Kubernetes应该了解的7件事

    越来越多的团队开始在生产中使用Kubernetes来运行其容器化工作负载和应用程序。当零停机时间和安全性至关重要时,Kubernetes迅速成为在生产中运行大规...

    静一
  • 微软出品 Kubernetes 最新学习指南 v3.0,需要的赶紧下载吧!

    Kubernetes 正在席卷应用开发世界,这是一个不争的事实。预计到 2022 年,全球有超过 75% 的组织将在生产环境中运行容器化应用程序。

    iMike
  • 喧嚣之后,关于Kubernetes的一点思考

    理由有很多种,我们可以说 docker 无法解决多进程调度问题,也可以说  Kubernetes 是云时代的操作系统,消除了在设计中考虑底层网络和服务器基础设施...

    用户5166556

扫码关注云+社区

领取腾讯云代金券