1. 环境说明
    1.  k8s集群环境                                                                              作者:张应罗  如需转载请注明出处!

 k8s版本:v1.11.2 ,三节点,操作系统版本:ubuntu16.04

 

K8s集群部署方式:kubeadm方式部署:

  1. 安装步骤

2.1从github上将metrics-server存储库克隆到本地

git clone https://github.com/kubernetes-incubator/metrics-server

克隆完毕后,在master节点上会多出目录

进入到目录里面,可以看到很多 metrics-server的相关文件

其中一个目录是deploy是让我们部署使用,目录下的内容如下:

目前metrics-server的最新版本是v0.3.1,如果部署v0.2版本以上的进1.8+这个目录,如果是v0.2版本以下进入1.7这个目录,此次 我部署的是v0.3.1,所以进入1.8+目录

2.2正式部署

可以看到这个目录里面都是yaml文件,包含了所有需要配置的yaml文件,我们直接用命令一键部署

Kubectl apply –f /.

部署完发现报错,具体报错是因为metrics-server-depoyment里面的image

k8s.gcr.io/metrics-server-amd64:v0.3.1 的拉取策略是always,由于我的环境不能科学上网,解决办法如下:

A:从阿里云镜像仓库用docker pull 命令 把metrics-server-amd64:v0.3.1下载到本地(注意看调度到哪个node,镜像就放到哪个node上),然后用docker tag 把pull下来的镜像名称修改成k8s.gcr.io/metrics-server-amd64:v0.3.1 即可。

B:修改metrics-server-depoyment.yaml文件的镜像拉取策略为IfNotPresent

至此pod成功启动

  • 但是我们用kubec top 命令后依然报错,无任何CPU 和内存利用率显示,进入pod内部查看错误日志如下:【提示 无法解析节点的主机名,是metrics-server这个容器不能通过CoreDNS 10.96.0.10:53 解析各Node的主机名,metrics-server连节点时默认是连接节点的主机名,需要加个参数,让它连接节点的IP,同时因为10250是https端口,连接它时需要提供证书,所以加上--kubelet-insecure-tls,表示不验证客户端证书,此前的版本中使用--source=这个参数来指定不验证客户端证书。

从github上查找报错日志,得出解决方案为,在yaml文件的container里面加入command参数,

用命令查询,可以看到资源占比视图:

至此部署完毕!

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐