开发者学堂课程【5分钟玩转阿里云容器服务:如何在 ACK 中使用 ARMS Prometheu s】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1038/detail/16107
如何在 ACK 中使用 ARMS Prometheus
内容介绍:
一.ARMS Prometneus
二.Prometheus 监控
一.ARMS Prometneus
容器服务可观测体系中 Mtrics 部分主要介绍 Prometheus 监控。
Prometheus 是继 K8s 之后 CNCF 第二个毕业项目,
Prometheus + Grafana 的组合解决方案,目前已经成为云原生时代指标监控的事实标准。
2Metric 指标作为云原生可观测体系的3大支柱之一,拥有非常广泛的应用场景,包括在用户上云或业务变更前,进行压测时的容量水位评估,应用日常业务稳定性保障,应用性能调优的水位对比,以及经常会遇到的异常情况下的故障排查等。
阿里云容器服 ACK 无缝集成了阿里云,ARMS Prometneus 云产品能力,实现开箱即用的 Prometheus 监控数据采集与无缝集成的大盘展示。
首先我们可以在购买集群时组件配置步骤中,通过勾选开启 Prometheus 监控服务,即可在集群创建完成后获得 ARM Prometheus 监控能力,已经创建完成的集群可以通过在 ACK 集群控制台,左侧运维管理 - Prometheus 监控 - Tab 页进行开启。
开启阿里云 Prometheus 后,集群中会安装
ack-arms-prometheus 组件,可在 ACK 控制台运维管理、日志与监控分类下,看到 ack-arms-prometheus 组件安装情况
开启阿里云 Prometheus 后,集群中会创建预置的 ACK 集群监控大盘,覆盖常用的 ACK 集群指标监控场景。
二.Prometheus 监控
1、监控概览
监控概览分类下可通过大盘全局快速的看到此集群的整体集群水位情况,包括集群的内存、CPU 及文件系统的使用水位,以及具体使用情况,大盘包括网络压力的负载,及更细致的实时水位情况
ACK Pro 集群支持 control plane 核心组件的监控大盘,包括 API Server、CCM、ETCD、KCM 以及 K8s Scheduler 等关键核心组件的大盘,该大盘在大集群重保的场景下,有非常重要的作用。
如 API Server 大盘,展示 API Server 的 QPS、读写成功率及访问 API Server,不同资源、不同操作的具体 RT 与请求的水位情况,当用户使用应用频繁的访问集群 API Server 等其他核心组件时, API Server 大盘可以提供 集群水位负载情况的保障,进行集群重保,节点监控,提供此集群宿主机节点的详细节点监控情况。
2、节点监控
节点监控包括节点的黄金指标 CPU memory 以及更细致的情况,如当前使用的文件句柄统计,及磁盘、空间,网络 IO 及磁盘 IO,甚至包括4层的网络,实时请求的监控情况
3、应用监控
应用监控是 ACK 场景上最常用的监控大盘,包括 K8s 概念,守护进程集(Daemonsets),无状态应用、Deployments、容器副本(Pod)等应用视角。
在 Pod 监控大盘中,我们可以通过筛选,查看指定的 Pod,其中包括此 Pod 的监控水位、内存、CPU,以及内存、CPU 的 request 和 limit 的实时情况,同时也包括此 Pod 实时 CPU Throttle (CPU 限流)。包括 CPU 的限流 Rate、CPU Throttle,当 CPU 限流 Rate 高的情况下,该 Pod 将会被 CPU 限流,影响 Pod 的使用性能,此大盘可以进行业务的运维重保以及性能调优。
ACK 的 Prometheus 大盘,还默认集成了网络监控、存储监控等,常用的大盘网络监控包括 CoreDNS ,集群的 Ingress 实时流量,存储监控可以查看,CSI 挂载的外部磁盘的实时存储情况
GPU 监控,可以实时的展示此集群中 GPU 节点的 GPU 使用率,集群内存以及计算的实时使用率等情况,通过 ACK Prometheus 监控右上角跳转至 ARMS Prometheus 控制台,能够更细致的管理 Prometheus 云服务,此处可以通过服务发现页面查看当前集群中采集的指标的统计。
ARMS Prometheus 支持兼容开源的 Prometheus 采集配置方式,包括默认的服务发现,只需要在 Pod 中打上 annotations 即可上报 Pod 的 Prometheus 监控数据。Service Monitor 及 Pod Monitor 可通过下发 CRD 至集群中的方式,快速配置 ACK 集群中的 Prometheus 采集,自定义服务发现,可以兼容社区版开源 Prometheus.yaml 采集配置。
Prometheus 也支持白屏化的报警配置,通过 ARMS Prometheus 页面中的告警规则配置可以白屏化的进行,K8s 集群的 Prometheus 指标配置,此处可以选择常用的 K8s 报警规则配置项,同时用户也可通过自定义 PromQL 通过开源的 PromQL 标准进行报警规则的配置。