导读:让我们看一看在Kubernetes集群中应该监控哪些组件。
作者:Brendan Burns, Eddie Villalba, Dave Strebel, Lachlan Evenson
译者:陈亮 王磊 张扬
来源:大数据DT(ID:hzdashuju)
Kubernetes集群由控制平面和工作节点两类组件组成。控制平面包括API Server、etcd、Scheduler以及Controller Manager。工作节点则包括kubelet、Container Runtime、kube-proxy、kube-dns以及Pod。你需要监控所有这些组件以确保集群和应用程序的正常运行。
Kubernetes通过多种方式暴露这些组件的指标,让我们看看可以使用哪些不同的组件来采集集群的指标。
01 cAdvisor
Container Advisor(或者称为cAdvisor)是一个开源项目,用来采集节点上容器的资源使用情况和指标。cAdvisor内置在kubelet中,kubelet运行在集群中的每个节点上。它通过Linux cgroups(Control Group,控制组)来收集内存和CPU指标。
cgroups是Linux内核的一个功能,用来隔离诸如CPU、磁盘I/O或者网络I/O等资源。cAdvisor也会通过Linux内核内置的statfs来收集磁盘指标。你不需要关心这些技术的实现细节,但是应该理解这些指标是如何暴露的,以及你需要采集什么类型的信息。最后,你应该将cAdvisor视为所有容器指标的可信来源。