metrics-server 是一个集群范围内的资源数据集和工具,同样的,metrics-server 也只是显示数据,并不提供数据存储服务,主要关注的是资源度量 API 的实现,比如 CPU、文件描述符、内存、请求延时等指标,metric-server 收集数据给 k8s 集群内使用,如 kubectl,hpa,scheduler 等
安装metrics-server可能会遇到很多坑,下面步骤教你一步步走出深坑
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
kubectl get deploy -A
kubectl get pods -n kube-system | grep metrics
kubectl describe pod/metrics-server-847dcc659d-gvv7z -n kube-system
Back-off pulling image "k8s.gcr.io/metrics-server/metrics-server:v0.6.1" Failed to pull image "k8s.gcr.io/metrics-server/metrics-server:v0.6.1": rpc error: code = Unknown desc = Error response from daemon: Get "https://k8s.gcr.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
Docker Hubhttps://hub.docker.com/
docker pull cnbugs/metrics-server
kubectl edit deployment metrics-server -n kube-system
虽然是running,但是存活数为0
Readiness probe failed: HTTP probe failed with statuscode: 500
可见是权限验证(证书)出了问题
kubectl edit deployment metrics-server -n kube-system
添加- --kubelet-insecure-tls
kubelet 的 10250 端口使用的是 https 协议,连接需要验证 tls 证书。--kubelet-insecure-tls 不验证客户端证书。
使用kubectl top pod -A查看组件状态