监控Kubernetes——挑战和数据源(开篇)

栏目: 编程工具 · 发布时间: 5年前

内容简介:​ 但是,快速发展的同时也带了挑战——容器在进入编排时也带来了不小的复杂性。直到引入Kubernetes:一个开源容器编排系统,它可以自动化部署,自动扩容缩并且可以进行容器化应用管理。Kubernetes控制是控制和管理你的基础设施面板。从2014年Kubernetes在谷歌发布,到现在为止它已经进入到Cloud Native Computing Foundation(CNCF,云原生计算基金会)进行维护。顺便提一下,Google为了让Kubernetes纳入CNCF,并且让它保持自由且具有竞争力而帮忙创造
​ 我们的行业长时间都一直依赖于微服务架构去快速安全的交付软件。而微服务的出现为容器技术的出现铺平了道理,使得我们重新构思如何去构建和交付应用程序。Docker在2013年突然进入大家的视野,这对致力于基础设施现代化以及云迁移的公司来说,像 Docker 这样的 工具 对于快速、大规模交付应用程序变得尤其重要。 监控Kubernetes——挑战和数据源(开篇)

​ 但是,快速发展的同时也带了挑战——容器在进入编排时也带来了不小的复杂性。直到引入Kubernetes:一个开源容器编排系统,它可以自动化部署,自动扩容缩并且可以进行容器化应用管理。Kubernetes控制是控制和管理你的基础设施面板。从2014年Kubernetes在谷歌发布,到现在为止它已经进入到Cloud Native Computing Foundation(CNCF,云原生计算基金会)进行维护。顺便提一下,Google为了让Kubernetes纳入CNCF,并且让它保持自由且具有竞争力而帮忙创造了。如果您使用Docker来容器化您的应用的话,那么使用Kubernetes来作为容器编排是自然而然的(当然还有有其他的编排器,例如Docker Swarm和Apache Mesos,但是Kubernetes已经成为了容器编排的霸主,并且我认为在以后也不会发生任何改变)。

​ 在这系列文章的第一部分,我主要涵盖了Kubernetes监控带来的挑战和主要的监控数据源。随后,我会深入讲解Kubernetes的监控以及Docker的部署,下面带来的实战将会概述数据源。

Kubernetes监控:挑战

​ Kubernetes使得团队更容易去管理他们的容器——在自动维护所需要的状态的同时调度和供应它们。Kubernetes核心的价值是作为一个公共平台来服务,它可以将你的应用部署在任何他们可以运行的地方,无论是AWS,GCP,Azure或者是裸机上的应用。当然也必须强调一点,它提供强大的功能与自动化也带来了很多挑战,特别是在性能监控上。不管你部署的应用大小,你依然需要知道在部署中有多少可用资源,也需要了解你部署的应用和容器的健康状态。就像是微服务让我们思考了如何去构建我们的应用,Kubernetes要求我们改变传统的监控方式——容器编排的动态特征要求随后采用动态方法进行监控。

​ 下列是我所见到的挑战:

  • 在这个全新的动态特征领域,你的 应用程序不断地在移动
  • 在Kubernetes之前,您只是通过跨云平台(公有和私有,以及不同的云服务商)来分布式部署应用程序。现在您可以更简单来进行分布式部署,当然那也会有一系列新的问题。
  • 采用Kubernetes就像是将大型项目进行微服务化,意味着会有 更多、更小的内容需要监控
  • 您可能听说过这样一句话,"对待您的基础设施要像对待牛而不是对待宠物一样"。Kubernetes就像是这种牲畜方法的缩影,使其易于实现高容量和短暂的基础设施。尽管如此,持续追踪 您的Kubernetes Pods和像容器的标签和注释等标识 是一项关键任务。

Kubernetes 监控:数据源

​ 本质上,监控工具从下列四种来源采集Kubernetes的元数据:

  • 运行Kubelet的宿主机。Kubernetes的宿主机资源是有限的,所以监控这些资源是尤其重要的。有许许多多种方法来获取宿主机的信息,但是最常用的使用 Prometheus出口节点 来从Kubernetes宿主机中提取数据,并在HTTP端点上公开系统资源遥测数据(例如CPU使用量以及内存)
  • Kubernetes进程,AKA Kubelet指标。包括apiserver,kube-scheduler和kube-controller-manager(kube控制管理器)。这些可以提供给您Kubernetes节点的详细数据以及节点运行的任务。
  • Kubelet内置的cAdvisor。 这里 做了一个很好的总结,但实际上Kubelet附带了对 cAdvisor 的支持,它可以收集、集合、处理以及输出您容器的运行指标。cAdvisor(它本身也支持Docker容器)提供给您每个容器的使用情况,持续追踪资源隔离参数和历史资源使用情况。因为Kubernetes控制面板可以分配使用的内存,并利用cAdvisor进行跟踪。
  • kube-state-metrics 可以给您提供集群级别的信息——从全局的视角来告诉您Kubernetes集群发生了什么,例如您配置过的所有pods当前的状态。kube-state-metrics会权衡所有的Kubernetes服务并且收集他们当前的状态信息,例如当前有多少容器在运行、其中有多少正处于某种特殊状态,也会提供他们当前是否处于不健康的状态或是处于可用状态等。从这个 README文件 可知,kube-state-metrics监听Kubernetes API server的状况。

接下来:容器状态和使用Prometheus进行数据采集

​ 如果你在家进行监控的话,你可能已经注意使用Prometheus可以监控上述四种数据源,你也会注意到我们仅仅只是在讨论 Kubernetes监控 而没有讨论运行在Kubernetes上 的应用(这可能和你听到的关于Kubernetes监控的一切都是一致的)。在我下篇文章中,我会讲述使用Prometheus进行Kubernetes和Docker监控,讨论为什么它能够那么好的契合Kubernetes生态圈以及它的不足之处。


以上所述就是小编给大家介绍的《监控Kubernetes——挑战和数据源(开篇)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

小白学运营

小白学运营

刘异、伍斌、赵强 / 电子工业出版社 / 2015-9-1 / 49.00元

《小白学运营》是针对网络游戏行业,产品运营及数据分析工作的入门读物,主要为了帮助刚入行或有意从事游戏产品运营和数据分析的朋友。 《小白学运营》没有烦琐的理论阐述,更接地气。基础运营部分可以理解为入门新人的to do list;用户营销部分则是对用户管理的概述,从用户需求及体验出发,说明产品运营与用户管理的依附关系;数据分析实战中,侧重业务分析,着重阐述的是分析框架,以虚拟案例的方式进行陈述,......一起来看看 《小白学运营》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试