在Kubernetes v1.12
之前的版本,资源指标监控主要是heapster
来实现,在Kubernetes v1.12
之后的版本,heapster
逐渐被废弃了,取而代之的是metrics-server
。
metrics-server
作为k8s插件部署在k8s集群内,提供资源指标监控数据。其yaml部署文件在这里。
但是这个yaml清单是没办法直接使用的,会报一些错误,下面我记录下来都会遇到哪些问题以及其解决方法。
下载yaml部署清单
mkdir metrics-server
cd metrics-server
for file in auth-delegator.yaml auth-reader.yaml metrics-apiservice.yaml metrics-server-deployment.yaml metrics-server-service.yaml resource-reader.yaml; do
wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/metrics-server/$file
done
metrics-server-deployment.yaml
文件中使用了两个镜像,镜像地址是k8s.gcr.io
,由于国内网络限制,改为阿里云的镜像地址
- registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.6
- registry.cn-hangzhou.aliyuncs.com/google_containers/addon-resizer:1.8.11
metrics-server-deployment.yaml
中metrics-server-nanny镜像的启动参数有几个变量,不能直接使用,需要修改如下:
command:
- /pod_nanny
- --config-dir=/etc/config
- --cpu=100m
- --extra-cpu=20m
- --memory=100Mi
- --extra-memory=10Mi
- --threshold=5
- --deployment=metrics-server-v0.3.6
- --container=metrics-server
- --poll-period=300000
- --estimator=exponential
# Specifies the smallest cluster (defined in number of nodes)
# resources will be scaled to.
- --minClusterSize=2
# Use kube-apiserver metrics to avoid periodically listing nodes.
- --use-metrics=true
- 阅读剩余部分 -