2020-10-28

Kubernetes的门户-Ingress

目前Kubernetes(K8s)已经真正地占领了容器编排市场,是默认的云无关计算抽象,越来越多的企业开始将服务构建在K8s集群上。在K8s中,组件通过Service对外暴露服务,常见的包括NodePort、LoadBalancer、Ingress等。其中Ingress主要提供HTTP层(7层)路由功能,相比TCP(4层)的负载均衡具备非常多的优势(路由规则更加灵活、支持金丝雀、蓝绿、A/B Test发布模式、SSL支持、日志、监控、支持自定义扩展等),是目前K8s中HTTP/HTTPS服务的主流暴露方式。

image.png

Ingress提供的7层负载均衡具有非常强大的能力,例如:

  • 会话保持:让相同的session ID路由到同一台后端机器,保证每个用户的会话只在一台机器上处理。
  • 基于内容的转发:能够根据HTTP协议内容进行转发,例如Host、URL甚至是PostBody等。
  • 重写请求:能够对用户的请求进行动态修改,非常适用于新老系统的兼容性改造。
  • 加密:在负载均衡上配置SSL,提供统一的证书管理,每个服务器无需单独维护证书。
  • 健康检查增强:可基于业务规则进行健康检查,而不仅仅是判断端口连通性,使健康检查更加精确。
  • 日志监控:全量7层访问日志,能够获取每个请求的结果、耗时、请求大小等信息,能够基于访问日志监控到每个服务的质量。

Ingress日志分析与监控


原始的访问日志记录了网站的每个访问请求,每个请求包括用户地址、Host、URL、状态码、耗时、请求大小等多个维度的信息,基于访问日志可以统计出不同维度下的访问qps、成功率、延迟等黄金指标,以此实现可以针对各种维度的网站质量监控。但构建一套完整的访问日志分析系统还是非常困难,这其中包括了很多过程和工作:采集、存储、分析、可视化、告警等。在实施过程中最为复杂的点在于:

  • 采集问题:如何保证日志采集的可靠性、性能消耗、延时问题;
  • 分析:在保证分析灵活性的同时能够保持快速的分析、查询速度以及较低的实施成本;
  • 自动化:尤其在业务规模比较大的情况下,如何智能的监控和分析各个服务的状态是一个迫切需要的功能。

image.png

为简化广大用户对于Ingress日志分析与监控的门槛,阿里云容器服务和日志服务将Ingress日志打通(官方文档),只需要应用一个yaml资源即可完成日志采集、分析、可视化等一整套Ingress日志方案的部署。
这套系统主要包括:

  1. 日志实时采集方式:通过Logtail实时采集Ingress产生的输出日志,并进行格式转换
  2. 存储:SLS提供负载均衡的实时队列用于日志的存储,并提供按照TTL的存储方式,可任意设置保存的日志天数。
  3. 查询/分析:基于SLS提供的SQL92语法可实现对Ingress日志各个维度的交互式分析与计算,例如统计UV变化,访问请求分布,TOP延迟等。
  4. 可视化大盘:将常见的监控、分析场景需求以图表的形式固化成大盘,用户绝大部分时间只需要查看大盘即可了解整个系统的状态。

 

再次升级-从1.0到2.0

 

image.png

Ingress日志分析与监控的方案已经发布2年左右,目前已经有上万的实例使用了该方案。在长期的使用中,我们也发现了这套方案的一些限制,为了适应新时代的DevOps节奏,我们需要对方案进行整体的升级,提供更加简单、更快速、更普惠、更智能的Ingress日志监控方案。

  1. 更简单:整个方案用户的使用更加简单,不需要去关注SLS的相关的资源,可以直接以单独Ingress监控APP的方式使用;
  2. 更快速:1.0的方案基于原始访问日志实时计算,在时间跨度较大或日志量较大的情况下查询速度较慢,使用体验较差;
  3. 更普惠:由于计算依赖原始日志,所以必须将日志长期保存,原始日志的存储量较高,会产生较高的费用;
  4. 更智能:随着K8s集群中运行服务数量的增加,传统的监控方式越来越吃力,依赖静态指标的告警规则很难监控所有的异常,因此急需更加智能的AIOps能力来解放生产力。

方案架构

image.png

为了达到高性能、低成本、快速、智能等要求,SLS和阿里云容器服务团队联合对Ingress日志监控方案进行了一次架构升级,正式发布了2.0版本的Ingress日志中心,日志中心包括以下几个部分:

  1. 原始访问日志存储:当Ingress Controller产生访问请求后,会实时将请求的访问日志推送到用户自身的Logstore中,整个过程的延迟一般在3-5秒即可完成,SLS的Logstore具备高可靠、实时索引、自动扩容等功能,保证日志的可靠性和可扩展性。
  2. 预聚和:由于原始访问日志量巨大,基于原始日志计算指标性能开销较大,因此SLS专门推出了基于访问日志的指标预聚和能力,能够将上百万甚至上亿的访问日志实时聚合成指标类型的时序数据,数据量会降低1-2个数量级,后续的分析与监控可直接基于时序数据进行,大大提高效率。
  3. 智能巡检:对于预聚和后的Metrics(指标数据),SLS提供了机器学习的自动巡检功能,帮助用户自动去检测各个Ingress的各个维度的指标异常,将异常信息实时展现在时序的图表中,结合实时告警能力进行自动的告警配置。此外后续还会支持异常打标,基于用户反馈的信息进行更加精确的检测。


通过以上3层数据链路,实现了从原始访问日志到预聚和的指标最后再到机器学习的异常事件整个数据的流转,对于用户来说,告警和监控只需要基于指标和智能巡检的结果进行,而涉及到具体服务的问题分析可以再回到原始的访问日志并基于SLS提供的各种SQL统计方式进行自定义的排查和分析。

 

实时预聚和

image.png

Ingress的访问日志数量和用户访问成正比,在原始访问日志上实时计算指标的开销较大,一般不适合长时间的指标分析,并且原始日志存储的成本较高,一般不会将日志存储较长时间,但我们还是希望指标数据能够尽可能长的存储,这样可以在分析的时候查看更长时间的数据。为此SLS专门为Ingress访问日志定制了一套全托管指标实时预聚合的功能,能够实时将Ingress的访问日志聚合成指标并存储在SLS的时序库中,这样所有的监控数据查询工作都可以基于聚合后的时序数据进行,大大提升监控数据的查询效率。

 

丰富可视化

Ingress访问日志分析的一个重要工作是可视化系统的搭建,我们需要针对不同场景创建不同的报表以便满足各个方面的需求,例如:

  1. 整体大盘:包括网站当前的访问UV/PV、整体延迟、成功率等,这个是老板们和SRE需要看的数据,需要保证数据时效性和刷新的速度
  2. 监控大盘:能够把监控需要关注的各种数据(延迟(平均、P99/P9999等)、流量、成功率、错误码、TOP类统计)等显示在一张报表上,并且能够支持各种维度的过滤,方便定位到问题的实例。
  3. 访问大盘:显示和用户相关的访问信息,例如PV/UV、访问的地域分布、设备分布等,一般情况技术Leader会关注,另外部分的运营同学可能也会需要这部分数据。
  4. 异常大盘:显示异常巡检的指标信息,能够把异常的指标显示在报表上,方便查看。
  5. 后端流量分析:快速分析后端的流量、QPS、延迟、错误率等分布信息,能够快速查找到“调皮”的机器。

image.png

 

智能巡检

在时序监控场景中,用户往往先确定监控对象,并通过其历史数据,结合业务经验,得到不同组的阈值参数,通过各种手段(同比、环比、连续触发几次等)进行监控,往往一个监控对象要设计4~5条监控规则,并配置不同的参数。还有更大的问题,各个参数阈值无法快速的复用到不同的类似观测对象中,当观测对象的规模达到数千,甚至上万后,传统的配置效率底下,无法满足在大规则时序指标数据下的监控需求。流式算法具有天然的优势可以解决上面的问题,用户只需要发起一个机器学习服务,模型自动拉取数据,实时训练,实时反馈(通俗地说:“来一个点,学习一个点,检测一个点”),在极大的降低成本的同时,实现对每一条线的单独建模,单独分析,单独模型参数保存,实现时序异常检测的“千线千面”。

image.png

智能HPA

image.png

 

基于业务访问量的HPA

HPA(Horizontal Pod Autoscaler)是Kubernetes提供的一个标准组件,用于POD的横向自动扩缩容,例如:当Pod CPU、内存等指标上升到一定程度时会自动扩容,当这些指标下去后会自动缩容。这样能够保证在用户体验不变的情况下集群整体的资源使用都能处于一个较低的位置。


默认的HPA只能针对集群的一些标准指标(CPU、内存、网络等)进行扩容,这种扩容方式相对静态,而且反应不出业务的情况。因此我们对HPA进行了一些扩展,支持按照Ingress访问QPS进行扩容。即可以设置某个Service下的Pod限定能够处理的QPS,当QPS上升到一定高度时会自动扩容一些Pod/节点,当QPS下降时会自动缩容一些Pod/节点。

 

基于业务量预测的HPA

HPA的预测原理是判断某些指标的值进行扩缩容,而指标的值相对来说都有10-30秒左右的延迟,并且还有几次的double check时间,因此从压力上升到扩容的时间基本上在2-3分钟左右,如果Pod启动还需要预热的话可能要更久,这段期间用户的访问请求很可能会出现高延迟或错误的情况。


因此最好的方式是我们能够提前知道未来几分钟的访问请求量,当我们发现未来访问请求会很高的时候,提前把Pod扩容出来并进行预热,这样可以在请求真正提升时Pod的资源已经提前分配好。为此我们结合SLS与阿里云达摩院联合研发的多模型预测算法,实时预测Ingress上每个服务的访问请求,并把这些预测的指标提供给HPA做动态扩容,能够在请求量即将超过阈值的时候提前扩出Pod/节点,保证用户访问一直流畅。

 

总结

Ingress访问日志中心提供了访问日志分析、秒级监控指标分析、实时告警等功能,并提供基于AIOps的自动异常巡检功能。基于这些功能我们可以快速构建出一套企业级的监控系统,能够以非常小的工作量实现公司所有访问入口的统一监控。

 

 

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

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

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

相关文章

centos 查找nginx_Linux下查看Nginx安装目录、版本号信息及当前运行的配置文件

Linux环境下,怎么确定Nginx是以那个config文件启动的?输入命令行: ps -ef | grep nginx摁回车,将出现如下图片:master process 后面的就是 nginx的目录。怎么查看服务器上安装的nginx版本号,主要是通过ngi…

530并行日:用超算更省心

科技兴,则民族兴;科技强,则国家强。 从“神舟”飞天、“蛟龙”入海、“天眼”遥看宇宙,到“嫦娥”奔月、“天问”探火、“量子”惊叹世界,这些世人瞩目的科技成就背后,是一代又一代的中国科技工作者前赴后继…

Flink SQL 1.11 on Zeppelin 平台化实践

简介: 鉴于有很多企业都无法配备专门的团队来解决 Flink SQL 平台化的问题,那么到底有没有一个开源的、开箱即用的、功能相对完善的组件呢?答案就是本文的主角——Apache Zeppelin。 作者:LittleMagic 大数据领域 SQL 化开发的风…

控件设置相对位置_惊人的Divi转换控件!

Divi的变换控件释放了许多新的设计可能你可以使用一系列新设计选项来执行惊人的设计,而到目前为止,只有在诸如Photoshop之类的图形设计程序中才可以这样操作。Divi引入了一项全新功能,该功能允许在Divi Builder中进行惊人的徒手设计&#xff…

第三代英特尔至强可扩展处理器,英特尔数据中心的“芯法宝”

作者 | 宋 慧 出品 | CSDN云计算 头图 | 付费下载于东方IC 距离英特尔发布第三代至强可扩展处理器Ice Lake的全系列产品,已经过去一个多月了。全新一代的至强处理器除了核数增加、性能提升与架构升级以外,还首次将SGX英特尔软件防护扩展技术&#xff08…

谈谈我对零售云在云原生总结与思考

简介: 云原生是零售云的最重要的技术底座,云原生是什么,会走向哪里,在零售2B交付的场景上该如何应用,怎么能够结合帮助建设零售云系列产品体系,值得我们的思考和探索,也将有效指导我们接下来几年…

oracle查看编码

select * from nls_database_parameters where parameter NLS_CHARACTERSET;

类选择器遍历赋值_利用反射实现配置表数据到类对象数据的转换

在游戏开发中,配置表是不可少的。通常我们将一个类,做成一个配置表,将配置表每列的索引都和类的字段名严格对应起来。先实例化一个类的对象,然后通过反射来遍历类中的字段,通过field.SetValue()给类的对象赋值。但是配…

人工智能如何提升大数据存储与管理效率?

简介: 通过使用AI数据存储,供应商和企业可以将存储管理提升到一个新的水平。而且,存储管理员可以找到他们目前正在努力管理的指标的解决方案。 随着大数据的大量来源以及企业可用数据量的增加,存储容量规划已成为存储管理员的问题…

wildfly10 (JBoss)如何部署SSL证书

文章目录1. 证书下载2. 证书配置2. 效果验证项目用的wildfly-10.1.0.Final。需要用到SSL证书,把部署过程记录下来,以供参考。1. 证书下载 本文的证书申请都来自阿里云。 1.首先把你的域名做好解析。 2.从阿里云上下载申请的SSL证书,类型选择…

奇点云集聚数据中台优势,加速企业数智化升级

作者 | 寇雪芹 出品 | CSDN云计算 头图 | 下载于视觉中国 近日,以“应云而生 原力觉醒”为主题的 StartDT Day 数据技术大会在杭州举办。会上,奇点云发布了最新的数据技术战略“跨平台、云原生、自主可控”、云原生数据中台 DataSimba R3.0、消费者数字…

2020-10-29

简介: 世上没有免费的午餐,微服务技术让 IT 系统变得更敏捷、更健壮、更高性能的同时,也带来了架构复杂度的提升。对于开发者而言,要想更好的驾驭微服务架构,需要解决持续集成、服务发现、应用通信、配置管理、流量防护…

状态码202_至少 10 个 HTTP 状态码

HTTP状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码。HTTP状态码 HTTP状态码总的分为五类:1开头:信息状态码2开头:成功状态码3开头:重定向状态码4开头…

玩转 IntelliJ IDEA 2020

文章目录一、基础软件集成配置系列1. 常用快捷键2. IDEA 配置JDK项目应用 JDK3. IDEA 配置 Maven4. IDEA 配置 TOMCAT5. IDEA配置 Git6. IDEA配置的导入导出7. IDEA控制台输出乱码8. IDEA注释模板9. IDEA xml模板10. IDEA 高效开发11. SpringBoot 集成 MyBatisPlus 模板12. Spr…

CSDN 独家对话阿里云贾扬清、华先胜等大咖,剧透阿里云原生技术密码

新一轮科技革命和产业变革正重塑全球发展格局,以云计算为代表的新一代信息技术相互渗透,成为数字经济智能和创新发展新引擎。过去 12 年,人们对云计算的讨论从原来的“为什么上云”,到“为什么不上云”,再到如今探索“…

持续定义Saas模式云数据仓库+实时搜索

简介: 本文由阿里云计算平台事业部 MaxCompute 产品经理孟硕为大家带来《持续定义Saas模式云数据仓库实时搜索》的相关分享。以下是视频内容精华整理,主要包括以下三个部分:1.Why:概述与价值;2.What:应用场…

弹窗进度条_QQ 大更新!语音进度条来了,还有这 5 个新变化

4 月 13 日,QQ 迎来了 8.0.0 for iOS 的更新。在其 App Store 的更新描述中可以看到,本次更新不仅升级了 QQ 的界面、优化了多人语音和转发消息的体验,语音消息还支持暂停和进度拖动了。知晓君第一时间对新版本 QQ 进行了一番体验&#xff0c…

接入阿里巴巴商业操作系统,麦当劳中国双11发力数字化

简介: 此次麦当劳中国与阿里巴巴的深度合作,对于双方和整个餐饮行业都具有重要意义。 早上8点出门前,你可以打开支付宝搜索麦当劳,点击“优惠预点”订餐,在你去办公室途中,热腾腾的麦当劳早餐就为你准备好…

Jepsen:分布式系统最早的混沌框架

来源 | 混沌工程实践作者 | 罗冈庭头图 | 下载于ICphotoJepsen测试框架的工作模式和混沌工程的思想是一脉相承的。Jepsen测试框架可以在分布式系统上注入众多混沌事件,例如引入网络问题、杀死节点和生成随机负载等等,然后通过执行预先定义的测试操作&…

Linux 命令操作手册

文章目录一、Boot项目前后台二、进程三、防火墙四、查看系统版本五、权限赋予六、远程同步文件七、目录八、文件九、解/压缩十 、大文件分割方案十一、查看文件中关键词出现的次数十二、添加/删除/修改/查看用户和用户组十三、寻找文件十四、清空文件内容十五、磁盘占用删除包含…