1、下载对应包

wget https://github.com/kubernetes-sigs/metrics-server/archive/v0.3.6.tar.gz

2、解压对应安装包

tar -zxvf v0.3.6.tar.gz

 

 

3、进入到yaml目录

 

4、修改:metrics-server-deployment.yaml 下面部分文件。

 

 

5、应用一下: kubectl  apply -f .          然后等那么几分钟采集到数据了就可以了。刚刚开始就查看会报错。要等等。

可以通过一下命令确认metrics-server已经启动完成了。

如果启动报错,要注意以下问题。

### 1、 Kubernetes API Aggregation

在 Kubernetes 1.7 版本引入了聚合层,允许第三方应用程序通过将自己注册到kube-apiserver上,仍然通过 API Server 的 HTTP URL 对新的 API 进行访问和操作。为了实现这个机制,Kubernetes 在 kube-apiserver 服务中引入了一个 API 聚合层(API Aggregation Layer),用于将扩展 API 的访问请求转发到用户服务的功能。

![](https://k8s-1252881505.cos.ap-beijing.myqcloud.com/k8s-2/aggergation.png)

当你访问 apis/metrics.k8s.io/v1beta1 的时候,实际上访问到的是一个叫作 kube-aggregator 的代理。而 kube-apiserver,正是这个代理的一个后端;而 Metrics Server,则是另一个后端 。通过这种方式,我们就可以很方便地扩展 Kubernetes 的 API 了。

如果你使用kubeadm部署的,默认已开启。如果你使用二进制方式部署的话,需要在kube-APIServer中添加启动参数,增加以下配置:

```
# vi /opt/kubernetes/cfg/kube-apiserver.conf
...
--requestheader-client-ca-file=/opt/kubernetes/ssl/ca.pem \
--proxy-client-cert-file=/opt/kubernetes/ssl/server.pem \
--proxy-client-key-file=/opt/kubernetes/ssl/server-key.pem \
--requestheader-allowed-names=kubernetes \
--requestheader-extra-headers-prefix=X-Remote-Extra- \
--requestheader-group-headers=X-Remote-Group \
--requestheader-username-headers=X-Remote-User \
--enable-aggregator-routing=true \
...
```

在设置完成重启 kube-apiserver 服务,就启用 API 聚合功能了。