Metrics-server简介git
Metrics-server是用来替换heapster获取集群上资源指标数据的,heapster从1.11开始逐渐被废弃了。github
在使用heapster时,获取资源指标是由heapster自已获取的,heapster有自已的获取路径,没有经过apiserver,后来k8s引入了资源指标API(Metrics API),因而资源指标的数据就从k8s的api中的直接获取,没必要再经过其它途径。
metrics-server: 它也是一种API Server,提供了核心的Metrics API,就像k8s组件kube-apiserver提供了不少API群组同样,但它不是k8s组成部分,而是托管运行在k8s之上的Pod。为了让用户无缝的使用metrics-server当中的API,还须要把这类自定义的API,经过聚合器聚合到核心API组里,
而后能够把此API看成是核心API的一部分,经过kubectl api-versions可直接查看。
metrics-server收集指标数据的方式是从各节点上kubelet提供的Summary API 即10250端口收集数据,收集Node和Pod核心资源指标数据,主要是内存和cpu方面的使用状况,并将收集的信息存储在内存中,因此当经过kubectl top不能查看资源数据的历史状况,其它资源指标数据则经过prometheus采集了。api
k8s中不少组件是依赖于资源指标API的功能 ,好比kubectl top 、hpa,若是没有一个资源指标API接口,这些组件是无法运行的。早期是依赖heapster。app
https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/metrics-server spa
下载六个文件并建立3d
for file in auth-delegator.yaml auth-reader.yaml metrics-apiservice.yaml metrics-server-deployment.yaml metrics-server-service.yaml resource-reader.yaml do wget https://raw.githubusercontent.com/kubernetes/kubernetes/release-1.11/cluster/addons/metrics-server/$file done
直接运行kubectl apply -f .日志
pod会启动失败须要修改参数code
将参数修改成你想要的,示例server
再执行kubectl apply -f .blog
能够查看到pod正常运行了
查看container的运行日志:kubectl logs -f metrics-server-v0.3.1-67f6877c59-5jshb -c metrics-server -n kube-system
或有显示报错:
解决方法:
提示 没法解析节点的主机名,是metrics-server这个容器不能经过CoreDNS 10.96.0.10:53 解析各Node的主机名,metrics-server连节点时默认是链接节点的主机名,须要加个参数,让它链接节点的IP:
“--kubelet-preferred-address-types=InternalIP”
-
验证metrics-server
报错:
解决方法:是因为权限不够所形成的。在resource-reader.yaml文件添加一行