kubernetes 之部署metrics-server v0.3.1

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”

-

  • 由于10250是https端口,链接它时须要提供证书,因此加上--kubelet-insecure-tls,表示不验证客户端证书,此前的版本中使用--source=这个参数来指定不验证客户端证书。

验证metrics-server

报错:

解决方法:是因为权限不够所形成的。在resource-reader.yaml文件添加一行

相关文章
相关标签/搜索