# 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://support.huaweicloud.com/usermanual-cce/cce_10_0208.html)。
社区官方项目及文档：<https://github.com/kubernetes-sigs/metrics-server>。
#### 安装插件
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
2. 单击左侧导航栏的"插件中心"，在右侧找到**Kubernetes Metrics Server**插件，单击"安装"。
3. 在安装插件页面，根据需求选择"规格配置"。 
   - 选择"系统预置规格"时，您可根据需求选择"单实例"或"高可用"，系统会根据不同的预置规格配置插件的实例数及资源配额，具体配置值请以控制台显示为准。 "单实例"不具备高可用能力；"高可用"具有高可用能力，但多实例部署需占用更多的计算资源。
     
   
   - 选择"自定义规格"时，您可根据需求调整插件实例数和资源配额。实例数为1时插件不具备高可用能力，当插件实例所在节点异常时可能导致插件功能无法正常使用，请谨慎选择。
   
   
   
   
4. 设置插件实例的部署策略。 
   ![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
   - 调度策略对于DaemonSet类型的插件实例不会生效。
   
   - 设置多可用区部署或节点亲和策略时，需保证集群中存在满足调度策略的节点且拥有足够的资源，否则插件实例将无法运行。
    
   表1插件调度配置 
   | 参数   | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   |:---|:---|
   | 多可用区部署 | - 优先模式：优先将插件的Deployment实例调度到不同可用区的节点上，如集群下节点不满足多可用区，插件实例将调度到单可用区下的不同节点。  - 均分模式：插件Deployment实例均匀调度到当前集群下各可用区，增加新的可用区后建议扩容插件实例以实现跨可用区高可用部署；均分模式限制不同可用区间插件实例数相差不超过1，单个可用区资源不足会导致后续其他实例无法调度。  - 强制模式：插件Deployment实例强制调度到不同可用区的节点上，每个可用区下最多运行一个实例。如集群下节点不满足多可用区，插件实例将无法全部运行。节点故障后，插件实例存在无法迁移风险。                                                                                                    |
   | 节点亲和 | - 不配置：插件实例不指定节点亲和调度。  - 指定节点调度：指定插件实例部署的节点。若不指定，将根据集群默认调度策略进行随机调度。  - 指定节点池调度：指定插件实例部署的节点池。若不指定，将根据集群默认调度策略进行随机调度。  - 自定义亲和策略：填写期望插件部署的节点标签实现更灵活的调度策略，若不填写将根据集群默认调度策略进行随机调度。 同时设置多条自定义亲和策略时，需要保证集群中存在同时满足所有亲和策略的节点，否则插件实例将无法运行。    |
   | 容忍策略  | 容忍策略与节点的污点能力配合使用，允许（不强制）插件的 Deployment 实例调度到带有与之匹配的污点的节点上，也可用于控制插件的 Deployment 实例所在的节点被标记污点后插件的 Deployment 实例的驱逐策略。 插件会对实例添加针对**node.kubernetes.io/not-ready** 和**node.kubernetes.io/unreachable**污点的默认容忍策略，容忍时间窗为60s。 详情请参见[设置容忍策略](https://support.huaweicloud.com/usermanual-cce/cce_10_0728.html)。                                                                                                                                                                                                                                                                |
      
   
   
5. 单击"安装"。
 
#### 组件说明
表2metrics-server组件 
| 容器组件         | 说明                                                | 资源类型      |
|:---|:---|:---|
| 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提供基础资源指标](https://support.huaweicloud.com/usermanual-cce/cce_10_0406.html#cce_10_0406__section17830202915211)）。
  您需要执行以下kubectl命令删除APIService对象：
  ```
  kubectl delete APIService v1beta1.metrics.k8s.io
  ```
  然后重新安装Kubernetes Metrics Server插件。
  
 
#### 版本记录
表3Kubernetes Metrics Server插件版本记录 
| 插件版本     | 支持的集群版本                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 更新特性                                                                                                                                                                                                                                                                                                 | 社区版本                                                                              |
|:---|:---|:---|:---|
| 1.3.138  | v1.29 v1.30 v1.31 v1.32 v1.33 v1.34 v1.35 v1.36       | 更新至社区v0.8.1版本                                                                                                                                                                                                                                                                                          | [0.8.1](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.8.1)  |
| 1.3.133 | v1.29 v1.30 v1.31 v1.32 v1.33 v1.34 v1.35 v1.36 | 支持CCE v1.36集群                                                                                                                                                                                                                                                                                        | [0.8.0](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.8.0)     |
| 1.3.132   | v1.29 v1.30 v1.31 v1.32 v1.33 v1.34 v1.35                                                                          | 修复部分问题                                                                                                                                                                                                                                                                                               | [0.8.0](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.8.0)      |
| 1.3.117  | v1.29 v1.30 v1.31 v1.32 v1.33 v1.34 v1.35                                                                   | - 支持CCE v1.35集群  - 更新至社区v0.8.0版本                     | [0.8.0](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.8.0)    |
| 1.3.111   | v1.28 v1.29 v1.30 v1.31 v1.32 v1.33 v1.34                                                                            | 支持CCE v1.34集群                                                                                                                                                                                                                                                                                        | [0.6.2](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.6.2)   |
| 1.3.104  | v1.25 v1.27 v1.28 v1.29 v1.30 v1.31 v1.32 v1.33        | 支持CCE v1.33集群                                                                                                                                                                                                                                                                                          | [0.6.2](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.6.2)    |
| 1.3.102   | v1.25 v1.27 v1.28 v1.29 v1.30 v1.31 v1.32                                                                          | 支持CCE v1.32集群                                                                                                                                                                                                                                                                                          | [0.6.2](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.6.2)    |
| 1.3.90  | v1.25 v1.27 v1.28 v1.29 v1.30 v1.31                                                                                                                                         | 支持CCE v1.31集群                                                                                                                                                                                                                                                                                          | [0.6.2](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.6.2)    |
| 1.3.68  | v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 v1.30                                                                        | 适配CCE v1.30集群                                                                                                                                                                                                                                                                                        | [0.6.2](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.6.2)  |
| 1.3.60  | v1.21 v1.23 v1.25 v1.27 v1.28 v1.29                                                                                                                                  | 适配CCE v1.29集群                                                                                                                                                                                                                                                                                         | [0.6.2](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.6.2)   |
| 1.3.39   | v1.21 v1.23 v1.25 v1.27 v1.28                                                                                                                                                                                                    | 修复部分问题                                                                                                                                                                                                                                                                                               | [0.6.2](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.6.2)   |
| 1.3.37  | v1.21 v1.23 v1.25 v1.27 v1.28                                                                                                                                                                                                    | 适配CCE v1.28集群                                                                                                                                                                                                                                                                                        | [0.6.2](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.6.2)   |
| 1.3.12  | v1.19 v1.21 v1.23 v1.25 v1.27                                                                                                                                                                                                      | -                                                                                                                                                                                                                                                                                                     | [0.6.2](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.6.2) |
| 1.3.10  | v1.19 v1.21 v1.23 v1.25 v1.27                                                                                                                                                                                                     | 适配CCE v1.27集群                                                                                                                                                                                                                                                                                        | [0.6.2](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.6.2)    |
| 1.3.8    | v1.19 v1.21 v1.23 v1.25                                                                                                                                                                                                                                                                       | 插件挂载节点时区                                                                                                                                                                                                                                                                                             | [0.6.2](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.6.2)      |
| 1.3.6   | v1.19 v1.21 v1.23 v1.25                                                                                                                                                                                                                                                                        | - 支持插件实例AZ反亲和配置  - 默认污点容忍时长修改为60s                   | [0.6.2](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.6.2)   |
| 1.3.3    | v1.19 v1.21 v1.23 v1.25                                                                                                                                                                                                                                                                     | - 适配CCE v1.25集群  - CronHPA调整Deployment实例数，新增skip场景   | [0.6.2](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.6.2)  |
| 1.3.2    | v1.19 v1.21 v1.23 v1.25                                                                                                                                                                                                                                                                      | 适配CCE v1.25集群                                                                                                                                                                                                                                                                                         | [0.6.2](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.6.2)      |
| 1.2.1     | v1.19 v1.21 v1.23                                                                                                                                                                                                                                                                                                                                        | 适配CCE v1.23集群                                                                                                                                                                                                                                                                                       | [0.4.4](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.4.4)   |
| 1.1.10   | v1.15 v1.17 v1.19 v1.21                                                                                                                                                                                                                                                                        | 适配CCE v1.21集群                                                                                                                                                                                                                                                                                         | [0.4.4](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.4.4)    |
| 1.1.4   | v1.15 v1.17 v1.19                                                                                                                                                                                                                                                                                                                                              | 资源规格配置单位统一化                                                                                                                                                                                                                                                                                           | [0.4.4](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.4.4)   |
| 1.1.2      | v1.15 v1.17 v1.19                                                                                                                                                                                                                                                                                                                                         | 同步至社区v0.4.4版本                                                                                                                                                                                                                                                                                           | [0.4.4](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.4.4)   |
| 1.1.1    | v1.13 v1.15 v1.17 v1.19                                                                                                                                                                                                                                                                 | 支持自定义资源规格配置，最大无效实例数改为1                                                                                                                                                                                                                                                                                | [0.3.7](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.3.7)   |
| 1.1.0    | v1.13 v1.15 v1.17 v1.19                                                                                                                                                                                                                                                                     | 适配CCE v1.19集群                                                                                                                                                                                                                                                                                          | [0.3.7](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.3.7)    |
| 1.0.5       | v1.13 v1.15 v1.17                                                                                                                                                                                                                                                                                                                                         | 更新至社区v0.3.7版本                                                                                                                                                                                                                                                                                         | [0.3.7](https://github.com/kubernetes-sigs/metrics-server/releases/tag/v0.3.7)   |
   
