内容简介: 但是,快速发展的同时也带了挑战——容器在进入编排时也带来了不小的复杂性。直到引入Kubernetes:一个开源容器编排系统,它可以自动化部署,自动扩容缩并且可以进行容器化应用管理。Kubernetes控制是控制和管理你的基础设施面板。从2014年Kubernetes在谷歌发布,到现在为止它已经进入到Cloud Native Computing Foundation(CNCF,云原生计算基金会)进行维护。顺便提一下,Google为了让Kubernetes纳入CNCF,并且让它保持自由且具有竞争力而帮忙创造
但是,快速发展的同时也带了挑战——容器在进入编排时也带来了不小的复杂性。直到引入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——挑战和数据源(开篇)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。