前言
近年来,Kubernetes作为众多公司云原生改造的首选容器化编排平台,越来越多的开发和运维工作都围绕Kubernetes展开,保证Kubernetes的稳定性和可用性是最基础的需求,而这其中最核心的就是如何有效地监控Kubernetes集群,保证整个集群的一个良好的可观察性。本期将为大家介绍Kubernetes的监控方案。
监控方案目标
目前存在多套的Kubernetes监控方案,但实际实施起来可能会遇到很多问题,例如方案部署难、监控指标不准、没有合适的大盘、不知道哪些指标需要哪些不需要、数据太多很卡等等。其实这些问题的本质上还是因为Kubernetes的架构相对标准的虚拟机/物理机的方式要复杂很多,而面对复杂系统,就需要我们去做非常多的工作,例如:
- 明确监控目标:K8s内部的各类系统组件:APIServer、ETCD、Scheduler、Controller Manager、Kubelet等;K8s底层,例如虚拟机、物理机的监控;K8s之上的业务/出口等
- 相关监控数据采集:例如部署kube-state-metrics采集K8s内资源对象的数据;通过kubelet暴露的prometheus端口拉取运行的Pod、容器指标;通过service端口采集APIServer、ETCD、Scheduler等组件的指标
- 后端建设:搭建数据存储、可视化、告警等后端服务
- 内容建设:配置监控大盘、问题排查经验、每个组件监控的黄金指标、告警模板等
- 方案稳定性建设:包括数据采集、存储、可视化、告警等服务的质量监控和维护
SLS全栈监控方案
SLS作为阿里可观测性数据引擎,具备可观测数据日志、指标、分布式链路追踪、事件等的一站式采集和存储。为了便于用户快速接入和监控业务系统,SLS提供了全栈监控的APP,将各类监控数据汇总到一个实例中进行统一的管理和监控。全栈监控基于SLS的监控数据采集、存储、分析、可视化、告警、AIOps等能力构建,详细功能如下:
- 实时监控各类系统,包括主机监控、Kubernetes监控、数据库监控、中间件监控等。
- 支持ECS、K8s一键安装,支持图形化的监控配置管理,无需登录主机配置采集监控项。
- 运维老司机多年经验的报表总结,包括资源总览、水位监控、热点分析、详细指标