Kubernetes Metrics Server
从Kubernetes 1.8开始,Kubernetes通过Metrics API提供资源使用指标,例如容器CPU和内存使用率。这些度量可以由用户直接访问(例如,通过使用kubectl top命令),或者由集群中的控制器(例如,Horizontal Pod Autoscaler)使用来进行决策,具体的组件为Metrics-Server,用来替换之前的heapster,heapster从1.11开始逐渐被废弃。
Metrics Server是集群核心资源监控数据的聚合器,您可以在CCE控制台快速安装本插件。
安装本插件后,可创建HPA策略,具体请参见创建HPA策略。
社区官方项目及文档:https://github.com/kubernetes-sigs/metrics-server。
安装插件
- 登录CCE控制台,单击集群名称进入集群。
- 单击左侧导航栏的“插件中心”,在右侧找到Kubernetes Metrics Server插件,单击“安装”。
- 在安装插件页面,根据需求选择“规格配置”。
- 选择“系统预置规格”时,您可根据需求选择“单实例”或“高可用”,系统会根据不同的预置规格配置插件的实例数及资源配额,具体配置值请以控制台显示为准。
“单实例”不具备高可用能力;“高可用”具有高可用能力,但多实例部署需占用更多的计算资源。
- 选择“自定义规格”时,您可根据需求调整插件实例数和资源配额。实例数为1时插件不具备高可用能力,当插件实例所在节点异常时可能导致插件功能无法正常使用,请谨慎选择。
- 选择“系统预置规格”时,您可根据需求选择“单实例”或“高可用”,系统会根据不同的预置规格配置插件的实例数及资源配额,具体配置值请以控制台显示为准。
- 设置插件实例的部署策略。

- 调度策略对于DaemonSet类型的插件实例不会生效。
- 设置多可用区部署或节点亲和策略时,需保证集群中存在满足调度策略的节点且拥有足够的资源,否则插件实例将无法运行。
表1 插件调度配置 参数
参数说明
多可用区部署
- 优先模式:优先将插件的Deployment实例调度到不同可用区的节点上,如集群下节点不满足多可用区,插件实例将调度到单可用区下的不同节点。
- 均分模式:插件Deployment实例均匀调度到当前集群下各可用区,增加新的可用区后建议扩容插件实例以实现跨可用区高可用部署;均分模式限制不同可用区间插件实例数相差不超过1,单个可用区资源不足会导致后续其他实例无法调度。
- 强制模式:插件Deployment实例强制调度到不同可用区的节点上,每个可用区下最多运行一个实例。如集群下节点不满足多可用区,插件实例将无法全部运行。节点故障后,插件实例存在无法迁移风险。
节点亲和
容忍策略
容忍策略与节点的污点能力配合使用,允许(不强制)插件的 Deployment 实例调度到带有与之匹配的污点的节点上,也可用于控制插件的 Deployment 实例所在的节点被标记污点后插件的 Deployment 实例的驱逐策略。
插件会对实例添加针对node.kubernetes.io/not-ready和node.kubernetes.io/unreachable污点的默认容忍策略,容忍时间窗为60s。
详情请参见设置容忍策略。
- 单击“安装”。
组件说明
容器组件 | 说明 | 资源类型 |
|---|---|---|
metrics-server | 集群核心资源监控数据的聚合器,用于收集和聚合集群中通过Metrics API提供的资源使用指标。 | Deployment |
常见问题
- Kubernetes Metrics Server插件安装失败,出现以下报错信息
create release failed: create release failed {"error":{"message":"Create release by helm failed:rendered manifests contain a resource that already exists. Unable to continue with install: APIService \"v1beta1.metrics.k8s.io\" in namespace \"\" exists and cannot be imported into the current release: invalid ownership metadata; label validation error: missing key \"app.kubernetes.io/managed-by\": must be set to \"Helm\"; annotation validation error: missing key \"meta.helm.sh/release-name\": must be set to \"cceaddon-metrics-server\"; annotation validation error: missing key \"meta.helm.sh/release-namespace\": must be set to \"kube-system\" or key \"release\" must equal \"cceaddon-metrics-server\": current value is \"cceaddon-prometheus\"","code":"SVCSTG.CCECAM.5000208"}}, 500解决方案:
出现该问题的原因是由于集群中已存在v1beta1.metrics.k8s.io的APIService,可能是由于集群中安装过云原生监控插件,并为其开启了Metrics API(详见通过Metrics API提供基础资源指标)。
您需要需要执行以下kubectl命令删除APIService对象:
kubectl delete APIService v1beta1.metrics.k8s.io
然后重新安装Kubernetes Metrics Server插件。
版本记录
插件版本 | 支持的集群版本 | 更新特性 | 社区版本 |
|---|---|---|---|
1.3.111 | v1.28 v1.29 v1.30 v1.31 v1.32 v1.33 v1.34 | 支持CCE v1.34集群 | |
1.3.104 | v1.27 v1.28 v1.29 v1.30 v1.31 v1.32 v1.33 | 支持CCE v1.33集群 | |
1.3.102 | v1.25 v1.27 v1.28 v1.29 v1.30 v1.31 v1.32 | 支持CCE v1.32集群 | |
1.3.90 | v1.25 v1.27 v1.28 v1.29 v1.30 v1.31 | 支持CCE v1.31集群 | |
1.3.68 | v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 v1.30 | 适配CCE v1.30集群 | |
1.3.60 | v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 | 适配CCE v1.29集群 | |
1.3.39 | v1.21 v1.23 v1.25 v1.27 v1.28 | 修复部分问题 | |
1.3.37 | v1.21 v1.23 v1.25 v1.27 v1.28 | 适配CCE v1.28集群 | |
1.3.12 | v1.19 v1.21 v1.23 v1.25 v1.27 | - | |
1.3.10 | v1.19 v1.21 v1.23 v1.25 v1.27 | 适配CCE v1.27集群 | |
1.3.8 | v1.19 v1.21 v1.23 v1.25 | 插件挂载节点时区 | |
1.3.6 | v1.19 v1.21 v1.23 v1.25 |
| |
1.3.3 | v1.19 v1.21 v1.23 v1.25 |
| |
1.3.2 | v1.19 v1.21 v1.23 v1.25 | 适配CCE v1.25集群 | |
1.2.1 | v1.19 v1.21 v1.23 | 适配CCE v1.23集群 | |
1.1.10 | v1.15 v1.17 v1.19 v1.21 | 适配CCE v1.21集群 | |
1.1.4 | v1.15 v1.17 v1.19 | 资源规格配置单位统一化 | |
1.1.2 | v1.15 v1.17 v1.19 | 同步至社区v0.4.4版本 | |
1.1.1 | v1.13 v1.15 v1.17 v1.19 | 支持自定义资源规格配置,最大无效实例数改为1 | |
1.1.0 | v1.13 v1.15 v1.17 v1.19 | 适配CCE v1.19集群 | |
1.0.5 | v1.13 v1.15 v1.17 | 更新至社区v0.3.7版本 |

