极客视点
极客时间编辑部
极客时间编辑部
113245 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/05:54
登录|注册

蚂蚁集团如何在大规模K8s集群上实现高SLO?

讲述:丁婵大小:8.09M时长:05:54
你好,欢迎收听极客视点。
随着 Kubernetes 逐渐成为云计算的标准,企业中的 Kubernetes 应用正成为主流。而当集群越来越大、越来越复杂,集群可用性就会面临挑战,比如:
整体指标:集群是否健康,所有组件是否正常工作,集群中 Pod 创建的失败数量有多少等等;
追踪能力:集群中发生了什么,是否有异常,用户做了什么事情等等;
原因定位:出现异常之后,找到是哪个组件出了问题。
想要解决这些问题,比较好的一个方法就是 SLO,通过定义 SLO 来描述集群的可用性,追踪集群中 Pod 的生命周期,一旦出现失败 Pod,快速定位异常组件。最近,InfoQ 记者田晓旭采访了蚂蚁集团技术专家范康和姚菁华来分享蚂蚁集团 的 SLO 体系是如何建立的。

SLO 指标定义

如果我们要通过定义来描述集群的可用性,那么具体的描述指标就成为了需要解决的关键问题。在蚂蚁集团内部,集群可用性的关键指标以下包含五个:
集群健康度:通常使用 Healthy,Warning,Fatal 三个值来描述,其中 Warning 和 Fatal 对应告警体系,例如 P2 告警发生,那集群就是 Warning,而 P0 告警发生,那集群就是 Fatal,必须进行处理。
Pod 创建成功率:这是一个非常重要的指标,蚂蚁集团 一周的 Pod 创建量在百万级别,如果成功率波动会造成大量 Pod 失败,同时 Pod 成功率下跌也是集群异常的最直观反映;
残留 Terminating Pod 的数量:你可能会好奇为什么使用残留 Terminating Pod 的数量,而不用删除成功率?这是因为当 Pod 数量达到百万级别后,即使删除成功率达到了 99.9%,Terminating Pod 的数量也有数千,残留这么多 Pod 占用应用容量,在生产环境中是不可接受的;
服务在线率:这个指标是通过探针来衡量的,探针失败则意味着集群不可用;
故障机数量:这是一个节点维度的指标,故障机通常是指无法正确交付 Pod 的物理机,集群故障机需要做到“快速发现,快速隔离,及时修复”,否则会对集群容量造成影响。
以上指标的阈值和 SLO 性能目标都是根据业务方的增长来定义的,随着业务的不断增长,这些指标的定义也可能需要跟着做调整。

蚂蚁集团的 SLO 体系

确定好 SLO 各项关键指标的定义之后,接下来就是构建 SLO 体系。
据范康介绍,蚂蚁集团 SLO 系统主要包括两个方面,一方面用于向终端用户 / 运维人员展示当前集群各项指标状,另一方面是各个组件相互协作,分析当前集群状态,获取影响 SLO 的各项因素,为提升集群 Pod 交付成功率提供数据支持。
自顶向下看,蚂蚁集团 SLO 的分层架构包括 SLO、Trace system、Increase of SLO、Target 和 The unhealthy node。
其中,顶层组件主要面向各种指标数据, 如集群健康状态、Pod 创建、删除、升级成功率、残留 Pods 数量,不健康节点数量等指标。其中 Display Board 是指监控大盘,可能不会实时查看,为避免错过处理紧急事件的最佳时机,同时构建了 Alert 告警子系统,支持配置多种告警方式;Analysis System 通过分析指标历史数据以及采集到的节点 metrics 和 master 组件指标,给出更详细的集群运营报告;Weekly Report 子系统给出当前集群本周 Pod 创建 / 删除 / 升级的数据统计,以及失败案例原因汇总;Terminating Pods Number 给出一段时间内集群内新增的无法通过 Kubernetes 机制删除的 Pods 列表和 Pods 残留原因;Unhealthy Nodes 则给出一个周期内集群所有节点的总可用时间占比,每个节点的可用时间、运维记录、以及不能自动恢复,需要人工介入恢复的节点列表。
为了支撑上述这些功能,蚂蚁集团还开发了 Trace System,用来分析展示单个 Pod 创建 / 删除 / 升级失败的具体原因。其中包含日志和事件采集、数据分析、Pod 生命周期展示三个模块。日志和事件采集模块采集各 master 组件以及节点组件的运行日志和 Pod、node 事件,分别以 Pod/node 为索引存储日志和事件;数据分析模块分析还原出 Pod 生命周期中各阶段用时,判断 Pod 失败原因,节点不可用原因。最后,由 Report 模块向终端用户暴露接口和 UI,向终端用户展示 Pod 生命周期以及出错原因。
目前蚂蚁集团 的 SLO 实践不仅提高了集群 Pod 的交付成功率,同时通过构建 tracing 系统,分析到集群内 Pod 交付关键链路的耗时,整理失败原因,实现了数据分析 / 诊断平台。
以上就是蚂蚁集团建立 SLO 体系的经验,希望能给你带来参考价值。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
26
沉浸
阅读
分享
手机端
快捷键
回顶部