Kubernetes的Metrics API和Metrics Server

从 v1.8 开始,资源使用情况的度量(如容器的 CPU 和内存使用)可以通过 Metrics API 获取。注意:

Metrics API 只可以查询当前的度量数据,并不保存历史数据
Metrics API URI 为 /apis/metrics.k8s.io/,在 k8s.io/metrics 维护
必须部署 metrics-server 才能使用该 API,metrics-server 通过调用 Kubelet Summary API 获取数据

下面记录了一下Kubernetes1.13安装metrics-server及填坑,这里我使用了yaml的方式安装

将metrics-server克隆到目标机器(可操作kubectl命令的机器)

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

安装

验证安装是否成功,如下显示证明安装成功,接口已经通了

使用kubectl top 查看节点信息

上述命令发现无法使用,下面开始排错

通过日志发现两个问题:
1,coredns无法解析node1这个节点,导致metrics-server无法获取节点信息
2,10250是个https端口,需要证书认证

编辑metrics-server-deployment.yaml,增加如下参数
command:
– /metrics-server
– –kubelet-insecure-tls #表示不验证客户端证书
– –kubelet-preferred-address-types=InternalIP #表示直接请求IP

再次使用kubectl top node查看

如上述操作执行后,coredns依旧会报错,下面提供两种解决办法

编辑coredns的ConfigMap文件

方法一:增加hosts信息

方法二:获取外部dns信息

 

此条目发表在kubernetes分类目录。将固定链接加入收藏夹。