内容简介: 但是,快速发展的同时也带了挑战——容器在进入编排时也带来了不小的复杂性。直到引入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——挑战和数据源(开篇)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Big Java Late Objects
Horstmann, Cay S. / 2012-2 / 896.00元
The introductory programming course is difficult. Many students fail to succeed or have trouble in the course because they don't understand the material and do not practice programming sufficiently. ......一起来看看 《Big Java Late Objects》 这本书的介绍吧!