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 聚合功能了。