kubernetes 部署metricserver

本篇适用于kubeadm部署的k8s的集群

安装环境:首先要部署好k8s的集群,版本是1.11.1,我的虚拟机部署的,一个master节点,一个node节点。笔记本性能有限

下载metrics-server的清单文件

地址:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/metrics-server  这里我踩的坑,刚开始没注意,我用的是master的清单文件,不巧的是,前几天刚刚更新过,所以在部署的时候死活pods起不起来。吐血。

在master节点新建一个文件夹  mkdir metric1.11,单独存放metrics的清单文件

for i 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/$i;done

用for循环把所有的清单文件下载下来,一共6个文件

auth-delegator.yaml  auth-reader.yaml  metrics-apiservice.yaml  metrics-server-deployment.yaml  metrics-server-service.yaml  resource-reader.yaml

说明:metrics-server用到的2个镜像,我这里用的版本是:k8s.gcr.io/metrics-server-amd64:v0.2.1   k8s.gcr.io/addon-resizer:1.8.3

其次metrics-server-deployment.yaml 需要修改一个地方:

- --source=kubernetes.summary_api:'' 原本的这样注释掉
- --source=kubernetes.summary_api:https://kubernetes.default?kubeletHttps=true&kubeletPort=10250&insecure=true 加入这行

这里的镜像的版本修改以下,原来的1.8.2

还有resource-reader.yaml文件修改的地方:

在rules的resources添加一个 - nodes/stats

好了,所有的的准备的工作完成,执行命令:kubectl apply -f .    

查看下metrics的pod好了没有

kubectl get pods -n kube-system  

出现这样说明没有问题,metrics-server部署好后,api-versions里会出现相应的metrics的api

kubectl api-versions

重点:只有出现这个metrics.k8s.io/v1beta1  才说明部署成功

metrics-server部署好了,可以使用k8s集群的kubectl top 的命令了

ps:刚刚安装好了后,要稍等一会,要收集下数据,

我们可以起一个代理看下:kubectl proxy --port=8080

curl http://localhost:8080/apis/metrics.k8s.io/v1beta1/pods   通过curl的命令来查看

一切正常我们来使用看看kubectl top 的命令看看效果

完工,部署完成!

原文地址:https://www.cnblogs.com/dingbin/p/9728458.html