简单、有效、全面的Kubernetes监控方案

简介:近年来,Kubernetes作为众多公司云原生改造的首选容器化编排平台,越来越多的开发和运维工作都围绕Kubernetes展开,保证Kubernetes的稳定性和可用性是最基础的需求,而这其中最核心的就是如何有效地监控Kubernetes集群,保证整个集群的一个良好的可观察性。本期将为大家介绍Kubernetes的监控方案。

前言

近年来,Kubernetes作为众多公司云原生改造的首选容器化编排平台,越来越多的开发和运维工作都围绕Kubernetes展开,保证Kubernetes的稳定性和可用性是最基础的需求,而这其中最核心的就是如何有效地监控Kubernetes集群,保证整个集群的一个良好的可观察性。本期将为大家介绍Kubernetes的监控方案。

监控方案目标

目前存在多套的Kubernetes监控方案,但实际实施起来可能会遇到很多问题,例如方案部署难、监控指标不准、没有合适的大盘、不知道哪些指标需要哪些不需要、数据太多很卡等等。其实这些问题的本质上还是因为Kubernetes的架构相对标准的虚拟机/物理机的方式要复杂很多,而面对复杂系统,就需要我们去做非常多的工作,例如:

  1. 明确监控目标:K8s内部的各类系统组件:APIServer、ETCD、Scheduler、Controller Manager、Kubelet等;K8s底层,例如虚拟机、物理机的监控;K8s之上的业务/出口等
  2. 相关监控数据采集:例如部署kube-state-metrics采集K8s内资源对象的数据;通过kubelet暴露的prometheus端口拉取运行的Pod、容器指标;通过service端口采集APIServer、ETCD、Scheduler等组件的指标
  3. 后端建设:搭建数据存储、可视化、告警等后端服务
  4. 内容建设:配置监控大盘、问题排查经验、每个组件监控的黄金指标、告警模板等
  5. 方案稳定性建设:包括数据采集、存储、可视化、告警等服务的质量监控和维护

SLS全栈监控方案

SLS作为阿里可观测性数据引擎,具备可观测数据日志、指标、分布式链路追踪、事件等的一站式采集和存储。为了便于用户快速接入和监控业务系统,SLS提供了全栈监控的APP,将各类监控数据汇总到一个实例中进行统一的管理和监控。全栈监控基于SLS的监控数据采集、存储、分析、可视化、告警、AIOps等能力构建,详细功能如下:

  • 实时监控各类系统,包括主机监控、Kubernetes监控、数据库监控、中间件监控等。
  • 支持ECS、K8s一键安装,支持图形化的监控配置管理,无需登录主机配置采集监控项。
  • 运维老司机多年经验的报表总结,包括资源总览、水位监控、热点分析、详细指标等数十个报表。
  • 支持自定义的分析,支持包括PromQL、SQL92等多种分析语法。
  • 支持对接AIOps指标巡检,利用机器学习技术自动发现异常指标。
  • 支持自定义告警配置,告警通知直接对接消息中心、短信、邮件、语音(电话)、钉钉,并支持对接自定义WebHook。

Kubernetes监控最佳实践

SLS全栈监控已经内置了对于Kubernetes监控的支持,并且解决了非常多的Kubernetes监控的痛点需求,例如:

  1. 部署简单,只需要一条命令就可以部署完整的Kubernetes监控方案
  2. 使用简单,内置了多种Kubernetes以及上下游相关的监控报表,开箱即用
  3. 运维简单,所有的监控数据、报表、告警等后端都是云化,只需要按量付费即可,无需去运维监控的实例
  4. 覆盖面全,监控范围包括Kubernetes中的各种内置组件,也包括相关联的主机、中间件、数据库等监控

部署

SLS全栈监控的Kubernetes部署方式相对比较简单,只需要按照接入页面中的提示,安装AliyunLogConfig自定义资源和监控组件,两个安装步骤只需要执行两个命令即可。

  • 相关参考(1. 创建全栈监控实例;2. 创建Kubernetes监控)

使用

Kubernetes监控部署完毕后就会自动部署采集Agent并采集监控数据到云端,默认采集的监控数据有:

  1. Kubernetes系统的元数据信息,例如节点、Pod、Deployment等配置信息
  2. Kubernetes系统组件的监控数据,包括APIServer、ETCD、Kubelet等
  3. Kubernetes上运行的Deployment、StatefullSet、DaemonSet、Pod、容器指标信息
  4. 节点的基础指标,例如节点CPU、内存、网络、磁盘IO等

数据采集到云端后,SLS全栈监控会默认提供一系列的Dashboard模板,包括集群级、应用级(Deployment、StatefullSet、DaemonSet等)、Pod级各类指标,绝大部分场景的监控只需要使用内置的Dashboard大盘即可,内置大盘主要有:

仪表盘

说明

资源总览

用于实时可视化展示主机配置信息和指标信息的总体情况,包括CPU核数、磁盘总空间、CPU平均使用率、内存平均使用率等。

主机列表

用于实时可视化展示每台主机的配置信息和指标信息,包括CPU核数、内存、CPU使用率、内存使用率等。

热点分析

用于实时可视化热点机器的CPU、内存等资源使用情况,包括CPU热点指标分布、内存热点指标分布、Top CPU使用率、Top 内存使用率等。

单机指标-简

用于实时可视化展示主机的CPU、内存等资源的使用趋势,包括CPU使用率、磁盘空间使用率、内存使用率等。

单机指标-详

用于实时可视化展示主机的CPU、内存等资源处于不同状态的使用趋势,包括CPU(处于Total、System、User、IOWait状态的CPU使用趋势)、内存(处于Total、Availableused、Used状态的内存使用趋势)等。

资源总览

用于实时可视化展示Kubernetes中资源的使用情况,包括Pod、Host、Service、Deployment等。

水位监控

用于实时可视化展示Kubernetes中资源的水位情况,包括Pod运行数、CPU总数、文件系统使用量等。

运行时监控

用于实时可视化展示Kubernetes中处于运行状态的资源信息,包括Deployment运行数量、Daemonset运行数量等。

核心组件监控

用于实时可视化展示Kubernetes中核心组件的相关数据,包括ETCD对象数、ETCD请求QPS等。

Node列表

用于实时可视化展示Node的整体情况以及每个Node的配置信息和指标信息,包括Node总数、运行中的Pod总数等。

Node指标

用于实时可视化展示Node的指标信息,包括可申请Pod数量、CPU使用率等。

Pod列表

用于实时可视化展示Pod的整体情况以及每个Pod的配置信息和指标信息,包括可申请的Pod总数等。

Pod指标

用于实时可视化展示Pod的指标信息,包括Pod基本信息、容器基础信息等。

Deployment列表

用于实时可视化展示每个Deployment的配置信息和指标信息,包括Deployment所属命名空间、集群等。

Deployment指标

用于实时可视化展示Deployment的指标信息,包括CPU Limit使用率、内存Limit使用率等。

StatefulSet列表

用于实时可视化展示每个StatefulSet的配置信息和指标信息,包括StatefulSet所属命名空间、集群等。

StatefulSet指标

用于实时可视化展示StatefulSet的指标信息,包括CPU Limit使用率、内存Limit使用率等。

DaemonSet列表

用于实时可视化展示每个DaemonSet的配置信息和指标信息,包括DaemonSet所属命名空间、集群等。

DaemonSet指标

用于实时可视化展示DaemonSet的指标信息,包括CPU Limit使用率、内存Limit使用率等。

1-集群级监控实践

在K8s迭代了数十个版本后,集群本身的稳定性一般不需要关心,绝大部分情况下,都是使用的不合理影响了集群的稳定性。通常情况下,集群级别监控只需要关注集群中运行的应用数量变化以及相关的水位变化。这里最常见的是使用《资源总览》、《水位监控》和《运行时监控》。其中

  1. 资源总览中能够查看每个资源的总数以及和前一天相比的变化情况,用来监控是否有一些快速变化的资源出现
  2. 水位监控中主要显示集群中能够申请的Pod、CPU、内存资源以及当前的申请率信息,防止到达水位上限
  3. 运行时监控中主要显示集群中的Deployment、StatefullSet、Pod、Container的变化情况

2-系统组件监控实践

同样,K8s的系统组件监控,通常只需要关心其中使用部分的不合理即可,因此只需要查看其中APIServer和ETCD的部分,防止有非常多的额外资源和访问导致APIServer或ETCD请求过慢。

3-应用基础指标监控

全栈监控默认提供了Node、Pod、Deployment、DaemonSet、StatefullSet的基础指标监控,所有这些资源都包括列表的Overview指标以及详情的Detail指标,而且各个相关联的资源还支持跳转关系,例如:所有的列表支持跳转到详情的Detail指标、Node中支持关联运行的Pod指标、Deployment/DaemonSet/StatefullSet支持跳转关联Pod。

4-热点监控

热点监控主要辅助我们快速找到“离群”的机器,防止因为部分机器成为热点,导致该机器上应用响应变慢,以至于影响整个集群的性能。在找到热点机器后,还可以通过改机器的IP,跳转到对应Node的详细指标中,查看热点具体是由该节点上哪个Pod引起。

小结

本文主要关注在Kubernetes的监控方案上(如何接入可参考《全栈监控说明》),从监控的问题发现到定位其实还有很多的工作需要做,还需要更多的可观测性数据来支撑,后续我们会介绍,如何利用多种可观测数据来协助排查和定位Kubernetes中的各类问题,敬请期待。

原文链接

本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/511599.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何优雅保护 Kubernetes 中的 Secrets

来源 | 进击云原生现如今开发的大多数应用程序,或多或少都会用到一些敏感信息,用于执行某些业务逻辑。比如使用用户名密码去连接数据库,或者使用秘钥连接第三方服务。在代码中直接使用这些密码或者秘钥是最直接的方式,但同时也带来…

智能巡检告警配置实践

简介:智能异常分析的检测结果通过 SLS 告警功能输出到用户配置的通知渠道。在智能巡检场景中,单个任务往往会巡检大量的实体对象,涉及到的对象规则很多,我们通过SLS新版告警可以实现较好的对于巡检事件的管理。 智能异常分析的检…

基于链路思想的SpringBoot单元测试快速写法

简介:本文更偏向实践而非方法论,所提及的SpringBoot单元测试写法亦并非官方解,仅仅是笔者自身觉得比较方便、效率较高的一种写法。每个团队甚至团队内的每位开发可能都有自己的写法习惯和风格,只要能实现单元测试的效果&#xff0…

access数据库文件导入mysql数据库文件怎么打开,Access数据库从外部数据导入文本文件和VF数据库-dbf文件怎么打开...

亲爱的小伙伴们,我们又见面了!上一期我们学习了Access数据库从外部数据导入Excel文件,下图学生成绩表2就是我们新导入的数据:导入Excel文件今天我们来学习如何从外部数据导入文本文件和VF数据库。导入文本文件:我们点击…

数据在网络中是如何传输的

作者 | 杰哥来源 | 杰哥的IT之旅你有想过吗,在计算机网络当中,数据是怎么样保证准确的从客户端发送到服务器端的?中间涉及到了哪些理论?01 客户端各层对数据的封装 java实现客户端的代码如下:应用层会指定发送的服务器…

龙蜥利器:系统运维工具 SysAK的云上应用性能诊断 | 龙蜥技术

简介:本文从大量的性能诊断实践出发,来介绍 SysAK 在性能诊断上的方法论及相关工具。 文/张毅:系统运维SIG核心成员、SysAK 项目负责人;毛文安:系统运维 SIG 负责人。 系统运维既要业务稳定的运行,又要最大…

以智能工具辅助报考决策,夸克发布2022年高考志愿趋势报告

1、夸克App推出高考信息服务产品,发布“暖芒计划”助学活动,为乡村考生免费提供“专家志愿辅导”和“志愿助力包” 2、报告数据显示:80后加入高考家长大军、海南大学最受欢迎、计算机类专业热度最高。 2022年高考落下帷幕,志愿填报…

Apache RocketMQ + Hudi 快速构建 Lakehouse

简介:基于RocketMQ和Hudi零代码构建Lakehouse架构,以及RocketMQ Connector & RocketMQ Stream助力ETL数据分析,为大家提供快速构建Lakehouse的技术方案和低运维成本实现实时计算的解决方案。 本文目录 背景知识大数据时代的构架演进Rock…

柔性产线的数字孪生加速器:Unity发布UMT工具包

数字化浪潮不仅深度改变了日常生活的样貌,也在不断改造工厂的运行机制,生产线的日趋智能化,几乎重构了我们对生产效率的想象。工业4.0带来的变革,既在真实世界与虚拟世界之间建立了高效链接,也改写了人与机器的关系&am…

混合云应用双活容灾实践

简介:本文会通过一个业务 Demo 案例,介绍混合云容灾建设的难点,以及如何基于 MSHA 来快速搭建应用双活架构并具备分钟级业务恢复能力。 作者:远跖 前言 越来越多的企业在数字化转型和上云进程中选择混合云的形态(云…

操作系统是如何保护自己的? CPU与保护模式

作者 | 陆小凤 在回答这个问题之前,你可能会首先想:为什么操作系统需要保护自己呢? 操作系统其实就是一个大管家,负责给应用程序搭建舞台,好让程序们过好自己的一生,但偏偏有不听话的程序可能想抢操作系统的…

如何快速调度 PTS 的百万并发能力

简介:压测是通过模拟用户行为对业务系统发起请求,测算出系统的承载能力,并对系统做一次全面的体检,压测后可根据压测表现优化系统瓶颈,防止出现线上故障。 作者:灵苒 在实际的业务场景中,压测…

架构师说低代码:走出半生,归来仍是“毒瘤”!

当今世界正在经历数字化与智能化的发展蜕变,其中软件开发技术作为推动数字化转型的必要支撑,成为企业变革的重要推手。云原生作为产业数字化的关键技术之一,催生出低代码等软件开发模式,让开发逐渐走向低门槛、迭代快、可扩展。今…

网关流控利器:结合 AHAS 实现 Ingress/Nginx 流量控制

简介:微服务的稳定性一直是开发者非常关注的话题。随着业务从单体架构向分布式架构演进以及部署方式的变化,服务之间的依赖关系变得越来越复杂,业务系统也面临着巨大的高可用挑战。 作者:涂鸦 微服务的稳定性一直是开发者非常关…

云钉一体加速,阿里云计算巢与钉钉深度融合、共建应用新生态

简介:云合计划再升级,“云钉一体”战略按下加速键。 1月13日,阿里云宣布云合计划再升级,计算巢与钉钉深度融合互通,实现一键上云、一键上钉钉,助力软件厂商更快地完成技术升级,更好地专注于自身…

DevStream 进入 CNCF 沙箱,探索云原生时代的高效 DevOps 实践

2022 年 6 月 15 日,云原生计算基金会 (CNCF) 宣布 DevStream 正式成为 CNCF 沙箱(Sandbox)项目。 DevStream 是一个开源的 DevOps 工具链管理器,可以通过一个简单的配置文件,将软件研发生命周期中各环节的 DevOps 工…

阿里云何万青:南坡VS北坡,阿里云高性能计算行业实践

简介:北坡模式:借助于云上大计算性能突破来提供HPC服务,切入的重点更加聚焦于云服务。 随着数字化转型的深入,行业应用对算力提出更高要求。为满足不同行业灵活的业务形态与计算需求,以云计算技术为服务模式创新的技术…

双引擎驱动Quick BI十亿数据0.3秒分析,首屏展示时间缩短30%

简介:在规划中,Quick BI制定了产品竞争力建设的三大方向,包括Quick(快)能力、移动端能力和集成能力。针对其中的产品“报表查看打开慢”“报表开发数据同步慢”等性问题开展专项战役——Quick战役,以实现展…

Quick BI产品核心功能大图(六)开放集成

简介:企业想要拥有领先的数据分析能力,自研往往需要投入巨大的人力和财力。 Quick BI作为唯一一个连续两年入选Gartner魔力象限的中国BI产品,具备强大的全链路开放集成能力,可以轻松的与企业原有系统匹配融合,帮助企业…

低复杂度 - 服务网格的下一站

作者 | Addo Zhang来源 | 云原生指北译者:作为一个曾经在新造车公司的基础架构团队任职,为支持公司的“互联网基因”和“数字化转型”落地了云原生基础设施平台,并在尝试采用服务网格未成的我来说,看到这篇文章深有感触。尤其是文…