云原生监控插件
插件简介
云原生监控插件(kube-prometheus-stack)通过使用Prometheus-operator和Prometheus,提供简单易用的端到端Kubernetes集群监控能力。
使用kube-prometheus-stack可将监控数据与监控中心对接,在监控中心控制台查看监控数据,配置告警等。
安装插件
- 登录CCE控制台,单击集群名称进入集群,在左侧导航栏中选择“插件中心”,在右侧找到云原生监控插件,单击“安装”。
- “数据存储配置”开启“监控数据上报至AOM服务”,并选择“指标上报的AOM实例”。
监控数据上报至AOM服务:将普罗数据上报至 AOM 服务。开启后,可选择对应的AOM实例。采集的基础指标免费,自定义指标将由AOM服务进行收费,详情请参见价格详情。对接AOM需要用户具备一定权限,目前仅华为云/华为账号,或者在admin用户组下的用户支持此操作。
- 根据需求进行“规格配置”。
- 普罗高可用:高可用会在集群中将prometheus-lightweight、prometheus-operator、custom-metrics-apiserver、kube-state-metrics组件按多实例方式部署。
- 采集分片数:当Prometheus的数据量很大时,您可以通过设置该参数,将数据分片到指定数量的Prometheus实例上存储和查询。增加分片数量可以使每个分片承担的数据量更少,从而增加指标的采集吞吐上限,但也会消耗更多的资源。默认采集分片数根据集群规模自动生成,如果您需要增加分片数量,提高采集性能,需要考虑资源占用的影响,根据具体的监控场景进行权衡和调优。
- 配置清单:您可以根据需求为各组件配置CPU配额和内存配额。
- 根据需求进行“参数配置”。
- 采集周期:采集时间间隔,输入值必须在10到60之间。
- 完成以上配置后,单击“安装”。
组件说明
安装云原生监控插件创建的Kubernetes资源,全部都创建在monitoring命名空间下。
|
容器组件 |
说明 |
资源类型 |
|---|---|---|
|
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 ......
卸载插件时,需要执行以下kubectl命令,同时删除APIService对象,否则残留的APIService资源将导致metrics-server插件安装失败。
kubectl delete APIService v1beta1.metrics.k8s.io