一、Metrics Server简介
在以前,都是使用 heapster 进行CUP、内存资源的监控。不过官方目前已经停止维护,并引导大家使用Metrics。
Heapster 的 GitHub 中提到:
Metrics Server 是Kubernetes集群资源使用情况的聚合器,Kubernetes中有些组件依赖资源指标API(metric API)的功能 ,如kubectl top 、hpa。如果没有资源指标API接口,这些组件无法运行。自kubernetes 1.8开始,资源使用指标通过 Metrics API 在 Kubernetes 中获取,从kubernetes1.11开始Heapster被废弃不再使用,metrics-server 替代了heapster。
二、安装Metrics Server
使用Helm安装
添加仓库并更新:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
先创建一个namespace,以免默认添加到default:
kubectl create ns metrics
helm install metrics bitnami/metrics-server -n metrics
部署完,会在控制台中打印:
NAME: metrics
LAST DEPLOYED: Sat Oct 31 20:15:42 2020
NAMESPACE: metrics
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
** Please be patient while the chart is being deployed **
The metric server has been deployed.
########################################################################################
### ERROR: The metrics.k8s.io/v1beta1 API service is not enabled in the cluster ###
########################################################################################
You have disabled the API service creation for this release. As the Kubernetes version in the cluster
does not have metrics.k8s.io/v1beta1, the metrics API will not work with this release unless:
Option A:
You complete your metrics-server release by running:
helm upgrade metrics bitnami/metrics-server \
--set apiService.create=true
Option B:
You configure the metrics API service outside of this Helm chart
可以看到很明显的提示,需要进行以下设置:
helm upgrade metrics bitnami/metrics-server --set apiService.create=true -n metrics
更新完后,打印出以下内容就说明成功了:
Release "metrics" has been upgraded. Happy Helming!
NAME: metrics
LAST DEPLOYED: Sat Oct 31 20:18:30 2020
NAMESPACE: metrics
STATUS: deployed
REVISION: 2
TEST SUITE: None
NOTES:
** Please be patient while the chart is being deployed **
The metric server has been deployed.
In a few minutes you should be able to list metrics using the following
command:
kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes"
查看所有的API列表,发现多了个 metrics.k8s.io/v1beta1
:
$ kubectl api-versions
...
metrics.k8s.io/v1beta1
使用YAML安装(仅供了解)
另一种部署方式,通过YAML部署:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml
三、查看Metrics Server
打开Kubernetes Dashboard,可以看到指定空间CPU和内存信息消耗:
Pods视图也能看到每个Pod的资源消耗: