
K8S数据采集组件metrics-server安装
metrics-server 是一个集群范围内的资源数据集和工具,同样的,metrics-server 也只是显示数据,并不提供数据存储服务,主要关注的是资源度量 API 的实现,比如 CPU、文件描述符、内存、请求延时等指标,metric-server 收集数据给 k8s 集群内使用,如 kubectl,hpa,scheduler 等。......
概述
metrics-server 是一个集群范围内的资源数据集和工具,同样的,metrics-server 也只是显示数据,并不提供数据存储服务,主要关注的是资源度量 API 的实现,比如 CPU、文件描述符、内存、请求延时等指标,metric-server 收集数据给 k8s 集群内使用,如 kubectl,hpa,scheduler 等
安装metrics-server可能会遇到很多坑,下面步骤教你一步步走出深坑
一、安装metrics-server
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
二、通过Deployment工作负载安装,查看安装状态
1、这里很清楚看到metrics并没有reday,继续通过查看pod信息确定是哪里问题
kubectl get deploy -A
2、出现ErrImagePull 基本判定是镜像问题,进入到pod继续查看信息
kubectl get pods -n kube-system | grep metrics
3、通过describe event可以确定是镜像拉取失败
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镜像源
1、登录dockerhub搜索metrics-server:v0.6.1
Docker Hubhttps://hub.docker.com/
2、到服务器docker pull
docker pull cnbugs/metrics-server
四、更改服务器deployment
1、通过edit deployment找到image位置改成上面下载的镜像
kubectl edit deployment metrics-server -n kube-system
2、再次查看metrics-server状态,发现还是有问题
虽然是running,但是存活数为0
3、再次通过describe event查看问题
Readiness probe failed: HTTP probe failed with statuscode: 500
可见是权限验证(证书)出了问题
4、通过edit编辑
kubectl edit deployment metrics-server -n kube-system
添加- --kubelet-insecure-tls
kubelet 的 10250 端口使用的是 https 协议,连接需要验证 tls 证书。--kubelet-insecure-tls 不验证客户端证书。
5、再次查看deployment中的metrics-server和pod都已经正常
五、测试
使用kubectl top pod -A查看组件状态
更多推荐










所有评论(0)