简介
- Metrics Server 是一个可扩展的、高效的容器资源度量源,用于 Kubernetes 内置的自动伸缩管道。
- Metrics Server 从 Kubelets 收集资源指标,并通过 Metrics API 在 Kubernetes apiserver 中公开它们,供 Horizontal Pod Autoscaler 和 Vertical Pod Autoscaler 使用。kubectl top 还可以访问 Metrics API,从而更容易调试自动伸缩管道。
- Metrics Server 并非用于非自动伸缩目的。例如,不要使用它将指标转发到监视解决方案,或者作为监视解决方案指标的来源。
适用于大多数集群的单一部署。
快速自动缩放,每 15 秒收集一次指标。
资源效率,集群中的每个节点使用 1m CPU 和 2 MB 内存。
可扩展支持多达 5,000 个节点集群。
安装
- 阿里云国内镜像:
- registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server
- 下载yaml文件
wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.5.1/components.yaml
- 编辑yaml
vim components.yaml
#在 134 行添加- --kubelet-insecure-tls,不验证 node 节点 kubelet 的 CA
#image: 后的地址改为:registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server:v0.5.1
spec:
containers:
- args:
- --cert-dir=/tmp
- --secure-port=443
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-use-node-status-port
- --metric-resolution=15s
image: registry.lab.example.com/metrics-server/metrics-server:v0.5.1
- 执行yaml
kubectl apply -f components.yaml
- 验证
student@client:~$ kubectl get pods -n kube-system|grep metric
metrics-server-5d584f5997-tm6cg 1/1 Running 0 20m
如插件一直 0/1状态 ,查看yaml 是否添加 - --kubelet-insecure-tls
使用
kubectl top nodes
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
k8s-master 199m 9% 1031Mi 55%
k8s-node1 90m 4% 835Mi 44%
k8s-node2 79m 3% 840Mi 44%
kubectl top pods -A
NAMESPACE NAME CPU(cores) MEMORY(bytes)
kube-system calico-kube-controllers-6b9fbfff44-kgfrl 2m 22Mi
kube-system calico-node-5nrbp 35m 125Mi
kube-system calico-node-kqrn7 41m 82Mi
kube-system calico-node-qkblj 41m 82Mi
kube-system coredns-7f6cbbb7b8-846fw 2m 15Mi
kube-system coredns-7f6cbbb7b8-ph2z2 2m 17Mi
kube-system etcd-k8s-master.lab.example.com 16m 49Mi
kube-system kube-apiserver-k8s-master.lab.example.com 52m 314Mi
kube-system kube-controller-manager-k8s-master.lab.example.com 20m 53Mi
kube-system kube-proxy-8vzrx 1m 10Mi
kube-system kube-proxy-r2dgv 1m 11Mi
kube-system kube-proxy-rwdtd 1m 19Mi
kube-system kube-scheduler-k8s-master.lab.example.com 3m 21Mi
kube-system metrics-server-5d584f5997-tm6cg 3m 16Mi
kubernetes-dashboard dashboard-metrics-scraper-c45b7869d-4vqjc 1m 5Mi
kubernetes-dashboard kubernetes-dashboard-576cb95f94-7cmcd 1m 13Mi