快手大规模在离线混部平台的容器实践之路

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1.
2. 快手大规模在离线混部平台的容器实践之路 张伟 系统运营部 2021-04-27
3. 个人介绍 张伟 • • 快手系统运营部 2018年6月加入快手,目前主要负责容器云有状 态服务容器化、集群调度、在离线混部等项目的 研发 曾在百度基础架构、金山云从事云计算方向架构 研发
4. ontents 1 快手混部系统简介 2 整体架构与关键技术 3 近期重点与未来规划
5. 面临的挑战 快速发展的业务:给资源供给带来了挑战 应用数量众多 类型多种多样 升级变更频繁 IDC数量众多 主 机 服 务 资源潮汐化 峰值资源短缺 在离线分离 资源交付压力 快速增长的业务与资源成本控制间的矛盾日益突出
6. 如何解决资源困境? 混合计算 :解决在离线资源共享需求,提升整体资源利用率 离线+非实时作业 在线服务 资源利用率高 实时性要求较低 利用率指标 资源利用率较低 时延敏感 全天持续需求 大小块资源较可利用 资源需求点 “潮汐”特征明显 需要足够buffer 资源套餐固定 某在线业务三天使用率示意图 具备容错特性 允许重试 稳定性要求 时延、饱和度、错误率 重试成本高,用户侧有感 • • • • 流量波峰波谷 SLO保障冗余 用户估计误差 突发增长需求
7. 明确建设目标 CRI+CSI+动态资源 IaaS资源 在线集群 IaaS资源 离线集群 目标 • 打破在离线资源隔阂 • 有效转化空闲算力给离线任务 IaaS资源 IaaS资源 在离线混部集群架构 关键点: • 在线服务可用性下降0% • 峰均值利用率提升5% • 日均值利用率提升10%+ • 规模达到10W量级 • 离线挖掘量超百万核
8. 混部平台定位 长服务 批量计算 大数据 基于云原生支撑各业务 在线机房资源 离线机房资源 …
9. 快手在离线混部系统简介 基于容器+kubernetes管理在离线混部集群 提供多优先级离线算力,弹性支撑离线作业 • 预算分帐 • 需求梳理 • 关键技术预研 • 小规模落地 • 隔离能力建设 • 资源调度重点优化 • 覆盖数十集群 • 对接大数据放量 • 离线业务峰值百万核 • 隔离技术补强 • 大数据任务接入 2019 2020 2021
10. Part Part Two 整体架构与关键技术
11. 整体框架 离线应用与作业 通 用 业 务 短 任 务 转码类 高容错应用 辅助系统 资源贡献接入 离线资源监控 定时任务 Spark MapReduce 在离线容器编排 离线作业编排 应用编排 Job编排 动态超售 服务画像 大数据引擎MR/SPark 跨集群调度 负载调度 弹性扩缩容 Operator定制 离线训练对接中 自动化运维 资源成本分帐 大 数 据 质检、报表等 统一资源层(容器+存储) 容器 增强隔离 容器网络 KATA 分布式 存储 rbd/nbd cephfs HDFS 机房带宽监测 帐单管理 集群管理层 在线容器集群 主机部署服务器纳管 基础服务混用集群 备机池及测试机 公有云主机 备机及测试机 资源审计 公司统一基础设施 业务存量物理机 容器集群物理机
12. 集群管理层框架 在离线跨集群编排 集群A masters … 自动化接入 集群N masters 资源采集规则 预留资源 集 群 A 集 群 B 单节点 内结构 混部资源采集 低退避 离线资源 离线实例管理 外部引擎托管 在线资源 实例资源控制 退避事件汇聚 Metric采集 多容器集群 Falcon • 资源模型 • … 多级资源上报 普通离 线资源 • 生效时段 Prometheus 离线质 量分析
13. 统一资源层: 在离线资源单机同存 预留 安全阈值1 空闲 在 线 申 请 Buffer 多优先级离线资源 在线 资源 占用 预测 • 低退避型 —— 高优、稳定性提升 • 普通型 —— 资源量大 上限 + 预测 在线 使用 单机资源面向在线和离线任务定义多级不同资源类型 资源抽取效率: • 全时段生效 • 秒级发现空闲资源 • 百毫秒量级快速退避保障 在线业务 • 整机峰值利用率到50% • CPU日均贡献可超10pp 适用范围 • 常时运行状态类业务
14. 统一资源层: 主机“在线”- “离线”转换 预留 整 机 独 占 类 场 景 空闲 Buffer 预留 空 闲 时 段 自 动 缩 容 离线 资源 峰 值 时 段 自 动 扩 容 预留 空闲 HPA HPA 实时检测空闲 在线 使用 预留 Buffer 空闲 在线 实例 运行 离线作业退避 在线 实例 启动 资源抽取效率: • 实时检测整机空闲状态 • 在离线业务时分复用主机 • CPU峰值值可达80% • 大套餐离线作业 适用范围: • 备机池、buffer池、核心 业务集群
15. 统一资源层:隔离能力建设 • • • • 数十毫秒量级采集周期 动态调整Cgroup的 cfs_quota_us 独占核与共享核管理 敏感业务与离线任务运行于不 同CPU队列 压力状态离线任务按顺退避 • • • • • 无需采集,设置上限 设置单机离线进程限制 设置单容器实例进程限制 • • • 数十毫量级秒采集周期 非压缩资源 历史数据预测稳定值 用户态检测实时退避 提升离线任务oom_score, 冲突时OS优先干掉离线任务 • • • • 数十毫秒采集周期 Sysload(1m/5m/10m) 结合可用cpu核数设置 比例约束 快速退避优化 帐户级FD整体约束 容器内外帐户映射 帐户权限、配额管理 网卡流量 • • • 整机系统负载 Pid及FD • • • 离线帐户 内存 CPU 离线任务TC限速 流量上限监测 调度层优化分布 磁盘空间及Inode • • • • • • 数十秒级采集周期 实时监控容量及Inode使用 超阈值清理离线任务及数据 重IO接入分布式块存储(转换为网络IO) XFS的目录限额(进行中) 内核 IO throttle限制(进行中)
16. 统一资源层:隔离能力建设 Kubelet+ 混部单机组件 离线容器实例 离线容器实例 cpu 离线容器实例 mem 离线容器实例 io network 共享/独占核 cpi指标观测 L3 Cache隔离 Nbd卸载IO &限速 进程网络限速 cpu throttoled 优先级退避 pagecache回收 策略定制 GC联动 提升超售比 专线带宽监测
17. 统一资源层:资源动态调整 在线容器 • OOM Score调整 多优先级大框限制 实时软硬限调整 网络限速 账户级硬限 YarnNM接入 • • • • Kubelet组件 静态分配上限 离线容器 • • • • • 单节点资源视图 离线大框嵌套 实时可用与预测资源联动 Nbd块设备限速接入 存储压力透传 混部资源实时计算 离线作业 在线服务 高优离线 YarnRM 离线优先级 • normal • stable 在线容器 在线优先级 • besteffort • Burstable • gurantee 高优离线 低优离线 Offline Cgroup OnlineCgroup Metric采集 资源动态调整 Metric采集 分布式存储集群 在线容器 在线容器
18. 统一资源层:兜底退避机制 状态机维护: 基于混部规则和在离线作业实时数据,生成控制状态 离线稳定运行 退避机制: 1. 轻压力:提供接口透传整机状态及预测数据,离线进程执 行GC、暂停子任务等策略 低优混部 压力状态 高优混部 压力状态 2. 重压力:按优先级KILL离线实例,强制释放资源 3. 惩罚系数:指数级退避等待,规避振荡 压力状态严控: 1. 毫秒级阻断新离线容器启动 2. 秒级更新混部资源上报,调度侧规避 3. 平台异步清理被快速阻断的离线实例记录 循环检测
19. 编排调度:跨集群调度 多集群+实时负载调度模块 调度决策 资源感知 集群1 集群2 集群3 8核16GB 可开100个 8核16GB 可开200个 8核16GB 可开300个
20. 离线任务发布:流程示例 启动服务 l 设置服务类型及元数据 l 选择混部资源套餐 运行中 弹性扩缩容设定 l 平台自动清理退避后实例 l 设置最大、最小实例数 l 跨集群探测可用空闲资源 l 设置扩缩容步长 l 设置驱动指标
21. 离线任务发布:如何设置资源 显式指定 资源类型
22. 离线任务发布:效果展示 可用资源量 单服务混部资源使用量汇聚展示 单物理机混部资源使用监控 实际使用资源量
23. Part Three 近期重点与未来规划
24. 近期重点与未来规划 隔离能力增强 多生态兼容建设 场景拓展 l 轻量级虚拟化保障内核级隔离 l 更多计算平台API兼容建设 l GPU/ASIC场景支持 l 单机侧应用指标采集与预测 l 离线任务调度增强(提升任务 l 覆盖率提升 l 精细管控:干扰识别与避让 吞吐) l 超大集群能力提升
25. 总结 l 系统发展简介 —— 为什么做、发展简史 l 整体框架与实现细节 —— 技术方案介绍、 如何实现、达到什么效果 l 近期重点与后续规划 —— 中长期规划
26.

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-15 12:28
浙ICP备14020137号-1 $Map of visitor$