# 云原生监控插件
#### 插件简介
云原生监控插件（kube-prometheus-stack）通过使用Prometheus-operator和Prometheus，提供简单易用的端到端Kubernetes集群监控能力。
使用kube-prometheus-stack可将监控数据与监控中心对接，在监控中心控制台查看监控数据，配置告警等。
开源社区地址：<https://github.com/prometheus/prometheus>
#### 安装插件
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群，在左侧导航栏中选择"插件中心"，在右侧找到**云原生监控插件**，单击"安装"。
2. "数据存储配置"开启"监控数据上报至AOM服务"，并选择"指标上报的AOM实例"。 
   - **监控数据上报至AOM服务：** 将普罗数据上报至 AOM 服务。开启后，可选择对应的AOM实例。采集的基础指标免费，自定义指标将由AOM服务进行收费，详情请参见[价格详情](https://www.huaweicloud.com/pricing.html#/aom)。对接AOM需要用户具备一定权限，目前仅**华为云/华为账号** ，或者在**admin**用户组下的用户支持此操作。
   
   - **监控数据上报至第三方监控平台（开启"自定义指标采集"时支持配置）**：将普罗数据上报至第三方监控系统，需填写第三方监控系统的地址和Token，并选择是否跳过证书认证。
   
   
   
   
3. 根据需求进行"规格配置"。 
   - **普罗高可用：**高可用会在集群中将prometheus-lightweight、prometheus-operator、custom-metrics-apiserver、kube-state-metrics组件按多实例方式部署。
   
   - **采集分片数**：当Prometheus的数据量很大时，您可以通过设置该参数，将数据分片到指定数量的Prometheus实例上存储和查询。增加分片数量可以使每个分片承担的数据量更少，从而增加指标的采集吞吐上限，但也会消耗更多的资源。默认采集分片数根据集群规模自动生成，如果您需要增加分片数量，提高采集性能，需要考虑资源占用的影响，根据具体的监控场景进行权衡和调优。
   
   - **配置清单：** 您可以根据需求为各组件配置CPU配额和内存配额**。**
   
   
   
   
4. 根据需求进行"参数配置"。 
   - **自定义指标采集** ：开启自定义指标采集，Prometheus采集的监控指标将通过AOM终端节点上报。需要您提前创建AOM终端节点，详情请参见[如何创建AOM终端节点](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0002.html)。
   
   - **自动服务发现（开启"自定义指标采集"时支持配置）** ：开启后可以Annotations服务发现的形式自动采集应用指标，默认忽略kube-system和monitoring命名空间下的应用。配置自动采集Annotations的操作详情请参见[配置Pod Annotations监控自定义指标](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0373.html#cce_11_0373__zh-cn_topic_0000001243981089_section179021319175)和[配置Service Annotations监控自定义指标](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0373.html#cce_11_0373__zh-cn_topic_0000001243981089_section103284201722)。
   
   - **采集周期：**采集时间间隔，输入值必须在10到60之间。
   
   
   
   
5. 完成以上配置后，单击"安装"。 
   安装云原生监控插件后，如果您需要采集自定义指标，请参见[CCE Autopilot使用云原生监控插件监控自定义指标](https://support.huaweicloud.com/usermanual-cce-autopilot/cce_11_0373.html)。
   
   
 
#### 组件说明
安装云原生监控插件创建的Kubernetes资源，全部都创建在monitoring命名空间下。
表1云原生监控插件的组件列表 
| 容器组件                                                                                                          | 说明                                                                                                                                    | 资源类型       |
|:---|:---|:---|
| prometheusOperator （负载名称：prometheus-operator）          | 根据自定义资源（Custom Resource Definition / CRDs）来部署和管理Prometheus Server，同时监控这些自定义资源事件的变化来做相应的处理，是整个系统的控制中心。                               | Deployment  |
| prometheus-lightweight （负载名称：prometheus-lightweight） | Operator根据自定义资源Prometheus类型中定义的内容而部署Prometheus Server集群，这些自定义资源可以看作是用来管理Prometheus Server集群的StatefulSets资源。                          | StatefulSet |
| kubeStateMetrics （负载名称：kube-state-metrics）            | 将Prometheus的metrics数据格式转换成K8s API接口能识别的格式。 说明： 该组件如果存在多个Pod，只会有一个Pod暴露指标。 | Deployment  |
| adapter （负载名称：custom-metrics-apiserver）                                                                         | 将自定义指标聚合到原生的Kubernetes API Server，与"自定义指标HPA"密切相关。仅当"自定义指标HPA"被启用时，需要安装adapter组件。                                                                                | Deployment                              |
   
#### 通过Metrics API提供资源指标
容器的资源指标，如CPU、内存使用量，可通过Kubernetes的Metrics API获得。这些指标可以直接被用户访问，比如用kubectl top命令，也可以被HPA或者CustomedHPA使用，根据资源使用率使负载弹性伸缩。
插件可为Kubernetes提供Metrics API，但默认未开启，若要将其开启，需要创建以下APIService对象：
```
apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
  labels:
    app: custom-metrics-apiserver
    release: cceaddon-prometheus
  name: v1beta1.metrics.k8s.io
spec:
  group: metrics.k8s.io
  groupPriorityMinimum: 100
  insecureSkipTLSVerify: true
  service:
    name: custom-metrics-apiserver
    namespace: monitoring
    port: 443
  version: v1beta1
  versionPriority: 100
```
可以将该对象保存为文件，命名为metrics-apiservice.yaml，然后执行以下命令：
```
kubectl create -f metrics-apiservice.yaml
```
执行kubectl top pod -n monitoring命令，若显示如下，则表示Metrics API能正常访问：
```
# kubectl top pod -n monitoring
NAME                                                      CPU(cores)   MEMORY(bytes)
......
custom-metrics-apiserver-d4f556ff9-l2j2m                  38m          44Mi
......
```
![](https://support.huaweicloud.com/usermanual-cce-autopilot/public_sys-resources/notice_3.0-zh-cn.png)
卸载插件时，需要执行以下kubectl命令，同时删除APIService对象，否则残留的APIService资源将导致metrics-server插件安装失败。
```
kubectl delete APIService v1beta1.metrics.k8s.io
```
#### 版本记录
表2云原生监控插件版本记录 
| 插件版本                                 | 支持的集群版本                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 更新特性                                                                                                                                                                                                                                                                                                                                                                                                                                  | 社区版本                                                                                                |
|:---|:---|:---|:---|
| 3.12.18                             | - v1.36  - v1.35  - v1.34  - v1.32  - v1.31   | CCE Autopilot支持v1.36集群                                                                                                                                                                                                                                                                                                                                                                                                           | [2.53.2](https://github.com/prometheus/prometheus/releases/tag/v2.53.2)                            |
| 3.12.10                              | - v1.35  - v1.34  - v1.32  - v1.31                                                                                                                                         | - CCE Autopilot支持v1.35集群  - CCE Autopilot支持v1.34集群  - 支持采集业务自定义指标   | [2.53.2](https://github.com/prometheus/prometheus/releases/tag/v2.53.2)                             |
| 3.12.2 | - v1.32  - v1.31  - v1.28  - v1.27                                                                                                                               | - CCE Autopilot支持v1.32集群  - 修复部分问题                                                                                                                                                            | [2.53.2](https://github.com/prometheus/prometheus/releases/tag/v2.53.2) |
| 3.12.0                                | - v1.31  - v1.28  - v1.27                                                                                                                                                                                                                                                                    | 适配CCE Autopilot v1.31集群                                                                                                                                                                                                                                                                                                                                                                                                                 | [2.53.2](https://github.com/prometheus/prometheus/releases/tag/v2.53.2)                           |
| 3.9.6                               | - v1.28  - v1.27                                                                                                                                                                                                                                                                                                                                                                                                           | 升级Prometheus版本，移除node-exporter组件                                                                                                                                                                                                                                                                                                                                                                                                     | [2.53.2](https://github.com/prometheus/prometheus/releases/tag/v2.53.2)                           |
| 3.9.5                                | - v1.28  - v1.27                                                                                                                                                                                                                                                                                                                                                                                                     | 支持自定义指标                                                                                                                                                                                                                                                                                                                                                                                                                                | [2.37.8](https://github.com/prometheus/prometheus/releases/tag/v2.37.8)                            |
| 3.9.3                               | - v1.28  - v1.27                                                                                                                                                                                                                                                                                                                                                                                                     | 修复部分问题                                                                                                                                                                                                                                                                                                                                                                                                                                   | [2.37.8](https://github.com/prometheus/prometheus/releases/tag/v2.37.8)                           |
   
