当容器应用越发广泛,我们又该如何监测容器?

简介: 随着容器技术蓬勃发展与落地推行,越来越多企业的业务运行于容器中。作为主流部署方式之一,容器将团队的任务和关注点分割开,开发团队只需关注应用程序逻辑和依赖项,而运维团队只需关注部署和管理,无需再为特定软件版本和应用程序特定配置等应用程序细节而提心吊胆。这意味着开发团队和运维团队可以花费更少时间进行调试上线,将更多时间用于向最终用户交付新功能。容器使企业可以更加轻松的提高应用程序可移植性和操作弹性。据 CNCF 的调研报告显示,73% 受访者正在使用容器来提高生产敏捷性并加快创新速度。

作者 | 白玙

为什么我们需要容器监测

在大规模使用容器过程中,面对高动态且需要持续监测的容器化环境,建立监测体系对于维持运行环境稳定、优化资源成本具有巨大意义。每个容器镜像可能有大量运行实例,由于新镜像和新版本的引入速度很快,故障很容易通过容器、应用程序和架构扩散。这使得在问题发生后,为了防止异常扩散,立即进行问题根因定位变得至关重要。经过大量实践,我们认为在容器使用过程中,以下组件的监测至关重要:

  • 主机服务器;
  • 容器运行时;
  • Orchestrator 控制平面;
  • 中间件依赖;
  • 在容器内运行的应用程序。

在完整的监测体系下,通过深入了解指标、日志和链路,团队不仅可以了解在集群以及在容器运行时和应用程序中发生的事情,也可以为团队进行业务决策时提供数据支持,比如何时扩展/缩减实例/任务/Pod、更改实例类型。DevOps 工程师还可以通过添加自动化告警以及相关配置,来提高故障排除以及资源管理效率,比如通过主动监测内存利用率,当资源消耗接近所设定的阈值时通知运维团队对可用 CPU 、内存资源耗尽之前添加额外节点。这其中的价值包括:

  • 及早发现问题,以避免系统中断;
  • 跨云环境分析容器健康状况;
  • 识别分配过多/不足的可用资源的集群,调整应用程序以获得更好性能;
  • 创建智能警报,提高报警精准率,避免误报;
  • 借助监测数据进行优化,获得最佳系统性能,降低运营成本。

但在实际落地过程中,运维团队会觉得以上价值相对浅显,似乎现有运维工具都能达到上述目的。但针对容器相关场景,如果无法构建相应监测体系,随着业务不断扩张,就不得不面临以下两个非常棘手的针对性问题:

1、排障时间拖长,SLA 无法满足。

开发团队与运维团队很难了解正在运行的内容及其执行情况。维护应用程序、满足 SLA 和故障排除异常困难。

2、可扩展性被拖累,无法实现弹性。

按需快速扩展应用程序或微服务实例的能力是容器化环境的重要要求。监测体系是衡量需求和用户体验的唯一可视化方法。扩展太晚,导致性能与用户体验的下降;过晚缩小规模,又会导致资源以及成本的浪费。

因此,当容器监测的问题以及价值,不断叠加且浮出水面,越来越多运维团队开始重视容器监测体系的搭建。但在实际落地容器监测这一过程中,又遇到各种各样意料之外的问题。

比如短暂存在特性带来的跟踪困难,由于容器自身存在着复杂性,容器不仅包含底层代码,还包含应用程序运行所需的所有底层服务。随着新部署投入生产,并更改代码和底层服务,容器化应用程序会频繁更新,这就增加了出错的可能。快速创建、快速销毁的特性,使得在大规模复杂系统中跟踪变化变得异常困难。

又比如,由于共享资源带来的监控困难,由于容器使用的内存和 CPU 等资源在一台或多台主机之间共享,因此很难监控物理主机上资源消耗情况,也导致很难获得容器性能或应用程序健康状况的良好指示。

最后,就是传统工具难以满足容器监测需求。传统的监测解决方案通常缺乏虚拟化环境所需的指标、跟踪和日志所需的工具,容器的健康和性能指标及工具更是如此。

因此,结合以上的价值、问题、难点,我们在建立容器监测体系时,需要从以下几个维度进行考量与设计:

  • 无侵入性:监测SDK或者探针集成到业务代码是否存在侵入性,影响业务稳定下;
  • 整体性:是否可以观测整个应用程序在业务和技术平台方面的表现;
  • 多源性:是否可以从不同数据源获取相关指标和日志集进行汇总显示、分析和警报;
  • 便捷性:是否可以关联事件和日志,发现异常并主被动地排除故障并降低损失,相关告警策略配置是否便捷。

在明确业务需求以及设计监测体系过程中,有非常多开源工具供运维团队选择,但运维团队还需要评估可能存在的业务与项目风险。这其中包括:

  • 存在影响业务稳定性的未知风险,监测服务是否可以做到“无痕”。监测过程本身是否影响系统正常运作。
  • 开源或自研的人力/时间投入难以预计,关联组件或资源需要自行配置或搭建,缺乏相应支持与服务,随着业务不断变化,是否可能耗费更多人力及时间成本。且面对大规模场景下性能问题,开源或企业自有团队是否可以快速应对。

阿里云 Kubernetes 监测:让容器集群监测更直观、更简单

因此,基于上述洞察考量与大量实践经验,阿里云推出 Kubernetes 监测服务。阿里云 Kubernetes 监测是一套针对 Kubernetes 集群开发的一站式可观测性产品。基于 Kubernetes 集群下的指标、应用链路、日志和事件,阿里云 Kubernetes 监测旨在为 IT 开发运维人员提供整体的可观测性方案。阿里云 Kubernetes 监测具备以下六大特性:

  • 代码无侵入:通过旁路技术,无需代码埋点,即可获取到网络性能数据。
  • 多语言支持:通过内核层进行网络协议解析,支持任意语言及框架。
  • 低耗高性能:基于 eBPF 技术,以极低消耗获取网络性能数据。
  • 资源自动拓扑:通过网络拓扑,资源拓扑展示相关资源的关联情况。
  • 数据多维展现:支持可观测的各种类型数据(监测指标、链路、日志和事件)。
  • 打造关联闭环:完整关联架构层、应用层、容器运行层、容器管控层、基础资源层相关可观测数据。

与此同时,相对于与开源容器监测,阿里云 Kubernetes 监测具备更加贴近业务场景的差异化价值:

  • 数据量无上:指标、链路、日志等数据独立存储,借助云存储能力确保低成本大容量存储。
  • 资源高效关联交互:通过监测网络请求,完整构建网络拓扑,便于查看服务依赖状态,提升运维效率。除了网络拓扑之外,3D 拓扑功能支持同时查看网络拓扑和资源拓扑,提升问题定位速度。
  • 多样化数据组合:指标、链路、日志等数据可视化展示并自由组合,挖掘运维优化点。
  • 构建完整监测体系:与应用实时监测服务的其他子产品,共同构建完整监测体系。应用监测关注应用语言运行时、应用框架与业务代码;Kubernetes 监测关注容器化应用的容器运行时、容器管控层与系统调用,两个监测均服务于应用,关注应用的不同层次,两个产品互为补充。Prometheus 是指标采集,存储,查询的基础设施,应用监测与 Kubernetes 监测的指标类数据均依赖 Prometheus。

容器文章.jpg

基于以上产品特性与差异化价值,我们应用在以下场景:

  • 通过 Kubernetes 监测的系统默认或者自定义巡检规则,发现节点,服务与工作负载的异常。Kubernetes 监测从性能、资源、管控三个维度对节点、服务与工作负载进行异常巡检,将分析结果直观地通过正常、警告、严重等状态配合特定颜色进行展示,帮助运维人员直观感知用户节点,服务与工作负载运行状态。

容器文章1.jpg

  • 使用 Kubernetes 监测定位服务与工作负载响应失败根因,Kubernetes 监测通过分析网络协议对失败请求进行明细存储,利用失败请求指标关联的失败请求明细定位失败原因。
  • 使用 Kubernetes 监测定位服务与工作负载响应慢根因,Kubernetes 监测通过抓取网络链路关键路径的指标,查看 DNS 解析性能,TCP 重传率,网络包 rtt 等指标。利用网络链路关键路径的指标定位响应慢的原因,进而优化相关服务。

容器文章2.jpg

  • 使用 Kubernetes 监测探索应用架构,发现预期外的网络流量。Kubernetes 监测支持查看全局流量构建起来的拓扑大图,支持配置静态端口标识特定服务。利用拓扑图直观强大的交互进行应用架构探索,验证流量是否符合预期,架构形态是否合理。

容器文章3.jpg

容器文章4.jpg

  • 使用 Kubernetes 监测发现节点资源使用不均匀的问题,提前进行节点资源调配,降低业务运行风险。

容器文章5.jpg

目前,Kubernetes 监测已经开启全面公测,公测期间免费使用。让 Kubernetes 监测帮你摆脱机械重复的运维工作~

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

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

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

相关文章

内含福利|CSDN携手字节跳动:云原生Meetup北京站报名热烈启动,1月8日见!

伴随云原生技术的成熟与落地,越来越多框架、中间件等开源项目相继涌现,帮助开发者和企业有效解决业务问题。2022年1月8日,CSDN携手字节跳动基础架构,将在北京举办第四场云原生线下Meetup。在这里,您可以与众多开源技术…

Flink CDC 2.0 正式发布,详解核心改进

简介: 本文由社区志愿者陈政羽整理,内容来源自阿里巴巴高级开发工程师徐榜江 (雪尽) 7 月 10 日在北京站 Flink Meetup 分享的《详解 Flink-CDC》。深入讲解了最新发布的 Flink CDC 2.0.0 版本带来的核心特性,包括:全量数据的并发…

unity三维地图的经纬度如何在二维地图上表示_接入C++版本recastnavigation寻路库到Unity/服务端中...

前言因为Unity版本的更新迭代,老版本的A*插件在新版本Unity已经无法正常使用,包括一些运行时代码也已经过时,重新接入要花费很多时间,干脆接入一个新的寻路方案吧。这里选择的是久负盛名的https://github.com/recastnavigation/re…

Dataphin功能:集成——如何将业务系统的数据抽取汇聚到数据中台

简介: 数据集成是简单高效的数据同步平台,致力于提供具有强大的数据预处理能力、丰富的异构数据源之间数据高速稳定的同步能力,为数据中台的建设打好坚实的数据基座。 数据中台是当下大数据领域最前沿的数据建设体系, 它并不是从零开始, 无中…

5G专网,路在何方?

作者 | 蜉蝣采采来源 | 无线深海话说你平常打电话、刷视频、玩游戏的4G和5G,一般也被叫做“公网”。这个“公”字的含义正是公开,公用的意思。也就是说,这个网络,不但你能用,你隔壁的张三也能用,张三的老乡…

如何开发 Node.js Native Add-on?

简介: 来一起为 Node.js 的 add-on 生态做贡献吧~ 作者 | 吴成忠(昭朗)这篇文章是由 Chengzhong Wu (legendecas),Gabriel Schulhof (gabrielschulhof) ,Jim Schlight (jimschlight),Kevin Eady,Michael Dawson (mhdaw…

xxl子任务_XXL-JOB v2.1.2 发布,分布式任务调度平台

v2.1.2 Release Notes1、方法任务支持:由原来基于JobHandler类任务开发方式,优化为支持基于方法的任务开发方式;因此,可以支持单个类中开发多个任务方法,进行类复用XxlJob("demoJobHandler")public ReturnT …

程序员如何在业余时间提升自己?

简介: 在自省过程中,我们经常会问自己这么几个问题,这段时间我尝试了什么新事物、有了什么变化、得到什么成果。 近年来,出现越来越多“自主学习”、“业余提升" 的相关话题。 我们经常收到一些同学提问:程序员…

云原生演进趋势下传统数据库升级实践

简介: 在数字化背景下,我们有许多思考。数据库跟以前那有什么不一样呢?什么是所谓的云原生数据库呢?作为使用数据库的开发者,对数据库的需求有什么变化?如今使用数据库我们一般会提什么样的诉求&#xff1f…

不小心把桌面进程结束了怎么办_微信不小心把天聊死怎么办?试试这3招,分分钟结束“尬聊”...

微信不小心把天“聊死”怎么办?试试这3招,分分钟结束“尬聊”!我现在坐的各位小伙伴们应该都会有以下这种经历吧,那就是你明明和一个人好好的在聊天,但突然不小心把天聊死了,其实遇到这种情况下小伙伴千万不…

openGauss汇聚创新力量,共同打造最具创新力的数据库开源社区

[中国,北京,2021年12月28日] 今天,以“汇聚数据库创新力量 逐梦数字时代星辰大海”为主题的openGauss summit 2021在北京线上线下同步举办。大会现场,openGauss开源社区理事会和技术委员会升级,openGauss社区分委会正式…

测试功能范围_软件测试难学吗?

一、想要零基础学好软件测试,当然需要对测试有一个良好的认知。你可以大致的浏览一下标题,先看这些标题从理解上看有没有难度。然后在根据自己的情况来判断软件测试是否难学。1、什么是软件测试?软件测试(英语:Software Testing)&#xff0c…

阿里巴巴代码平台架构的演进之路

简介: 这事儿和伽利略有关。 代码平台的发展之路 相信很多做后端服务的同学在看到单机、读写分离、分片这些字眼一定不会觉得陌生。没错,代码服务在发展的开始阶段面临的问题和其他web服务大体一致,所以使用的解决方案也大体一致。 单机服务…

从工具到平台|默安科技研发安全一体化管理平台正式发布

作者|默安科技 数字化转型浪潮下,软件研发安全的重要性毋庸置疑。 据第三方权威调查,接近92%的已知安全漏洞发生在软件应用程序中,且应用中每1000行代码至少出现一个业务逻辑缺陷。 在近年来如火如荼的攻防演练中,应用程序成为…

如何避免 Go 命令行执行产生“孤儿”进程?

简介: 在 Go 程序当中,如果我们要执行命令时,通常会使用 exec.Command ,也比较好用,通常状况下,可以达到我们的目的,如果我们逻辑当中,需要终止这个进程,则可以快速使用 …

杭州南江机器人现在是否量产_传亚马逊正开发家庭机器人,高约1米可移动

点击右上角关注我,成为科技圈最靓的仔!智东西(公众号:zhidxcom)编 | 王颖 导语:据外媒报道,亚马逊计划今年推出一款可移动家庭机器人,高度约为1米,可通过语音控制。智东西7月15日消息&#xff0…

OpenYurt 联手 eKuiper,解决 IoT 场景下边缘流数据处理难题

简介: 云计算的出现促使物联网实现爆炸式增长。在设备规模和业务复杂度不断攀升的趋势之下,边缘计算因其能够将计算能力更靠近网络边缘和设备,从而带来云性能成本的降低,也在这波浪潮之下得到快速发展。 作者 | OpenYurt 社区 云…

OS2ATC 2021:开源协作,和而不同

12月26日由中科院软件所主办,清华大学、北京大学以及鉴释科技承办的第九届开源操作系统年度技术会议(OS2ATC)正式拉开序幕,百余位重量嘉宾莅临现场,围绕大会主题“开源协作,和而不同”共同探讨操作系统开源…

ChaosBlade:从混沌工程实验工具到混沌工程平台

简介: ChaosBlade 是阿里巴巴 2019 年开源的混沌工程项目,已加入到 CNCF Sandbox 中。起初包含面向多环境、多语言的混沌工程实验工具 chaosblade,到现在发展到面向多集群、多环境、多语言的混沌工程平台 chaosblade-box,平台支持…

揭秘阿里云 RTS SDK 是如何实现直播降低延迟和卡顿

简介: RTS NetSDK是未来直播和通信一体化SDK的基石。在RTS NetSDK之上,加一个Multimedia Framework,以及QoS消息处理,就可以构成一个一体化SDK。这对于已经有自己的Framework的客户来说是个好消息,不需要为直播和通信分…