Metrics-Server

简介

从 Kubernetes 1.8 开始,资源使用指标(如容器 CPU 和内存使用率)通过 Metrics API 在 Kubernetes 中获取, metrics-server 替代了heapster。Metrics Server 实现了Resource Metrics API,Metrics Server 是集群范围资源使用数据的聚合器。

Metrics Server 从每个节点上的 Kubelet 公开的 Summary API 中采集指标信息。

参考文档: https://github.com/kubernetes-incubator/metrics-server

安装metrics-server

这里可以clone官方的repohttps://github.com/kubernetes-incubator/metrics-server.git

  • metrics-server默认会从kubelet的基于http通信的10255端口获取指标数据,但出于安全考虑,kubernetes 1.11版本的kubeadm在初始化群集时会关闭kubelet的10255端口,导致无法获取数据。

  • 官方仓库中的清单文件metrics-server-deployment.yaml中未明确主程序metrics-server传递参数指定指标数据的获取接口,它通常应该是kubernetes.summary_api

修改镜像以及参数metrics-server-deployment.yaml

image: registry.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.3
args:
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP
  • --kubelet-insecure-tls CA 证书并没有把各个节点的 IP 签上去,所以这里 metrics-server 通过 IP 去请求时,提示签的证书没有对应的 IP(错误:x509: cannot validate certificate for xx.xx.xx.xx because it doesn’t contain any IP SANs),使用该参数跳过验证

  • kubelet-preferred-address-types 使用ip方式,解决xxx: no such host

我这里都已经修改好了可以直接使用即可

kubectl apply -f deploy/metrics-server/deploy/1.8+/

查看pod是否为Running状态

kubectl get pod -n kube-system

资源监控

文章:carry:https://carey.akhack.com/2019/05/28/kubernetes%E7%9B%91%E6%8E%A7metrics%E5%AE%89%E8%A3%85/

Last updated