《2019年美团集群调度系统HULK技术演进.pdf》由会员分享,可在线阅读,更多相关《2019年美团集群调度系统HULK技术演进.pdf(25页珍藏版)》请在三个皮匠报告上搜索。
1、美团集群调度系统HULK技术演进美团点评基础架构部目录 HULK架构演进 调度系统痛点、解法 弹性伸缩痛点、解法 经验总结缘起:容器实践:统一运行环境,提升交付效率。弹性调度:提升业务的资源利用率。命名由来:漫威里面的HULK在发怒的时候会变成绿巨人,这点和我们容器的“弹性伸缩”比较Match。HULK项目HULK的演进HULK 1.0基于OpenStack演进打通CMDB、服务治理、发布平台、监控平台等,验证容器的可行性HULK 2.0基于Kubernets演进打磨弹性策略、调度系统建设容器运营平台基础系统软件加强自研内核,提升安全隔离线上9000+应用,70000+容器HULK2.0架构图
2、服务治理发布平台测试部署OPS容器弹性服务画像镜像管理DockerHULK agent容器运行时监控管理平台安全容器编排目录 HULK架构演进 调度系统痛点、解法 弹性伸缩痛点、解法 经验总结调度系统-业务扩缩容异常痛点:运维成本高解法:1.全链路监控2.建设可视化平台Hulk-Portal扩缩容组件策略配置中心K8s 组件Container-init进程Ip分配服务12345日志中心日志中心ESPortal管理平台成效:1.问题排查提效:多人联合花大半个小时到单人分钟级搞定2.系统瓶颈可视化调度系统-业务定制化需求痛点:更改核心链路代码,灵活性不够解法:建设一体化配置平台容器系统参数容器环境
3、变量基本策略扩展策略(如指定宿主机、N+1容灾需求)分组策略实例定制化调度规则定制化基本策略扩展策略分组策略Manifest组装容器运营平台成效:迈向自动化配置,解放运维人员。调度系统-调度器策略Predicates(预选)node1node2node3node4node5nodeNscore1score2score5scoreNPodFitsResourcesPodToleratesNodeTaintsPodFitsHostPortsHostName。Priorities(打分)node1node2node5nodeNnode1node2node5nodeNLeastRequestedBal
4、ancedResourcesAllocationSelectorSpreadImageLocality。调度系统-调度器性能问题痛点:3000台集群规模,一次Pod调度耗时5s左右(k8s1.6版本)Cond1Cond2Cond3Cond4Cond5Cond6Cond1Cond2Cond3Cond4Cond5Cond6结束预选失败中断机制成效:生产环境验证,提升性能40%。(PR 56926,社区1.10版本作为默认调度策略)解法:预选失败中断机制调度系统-调度器性能问题node1node2node3node4node5node1000node1node3node100node789。预选出N
5、个Node痛点:BestFit代价高解法:局部最优成效:大大减少调度时间,同时对调度结果未产生较大影响。(和社区合作共同完成,PR 66733/67555,社区1.12版本作为默认调度策略)调度系统-kubelet的自决策问题痛点:1.容器重启/迁移问题:1.1.容器和系统盘的信息丢失。1.2.容器的IP也变更了。2.驱逐策略问题:Kubelet会自动杀死一些违例容器,但是有可能这个业务是非常核心的业务。解法:1.容器重启/迁移1.1.新增Reuse策略,保留原生重启策略(Rebuild)。1.2.自研CNI插件,基于Pod标识申请和复用IP。2.限制原生的驱逐策略调度系统-调度决策难题痛点:
6、资源最大化和SLA保障解法:服务画像,供能于调度前决策、调度后决策。成效:40+基础标签,N+聚合标签,其中不少标签已经成为调度决策的重要因素。目录 HULK架构演进 调度系统痛点、解法 弹性伸缩痛点、解法 经验总结弹性伸缩平台架构图服务治理平台应用监控平台系统监控平台数据源层数据聚合服务服务画像流量预测服务数据应用层在线策略服务弹性治理服务策略层容器运营平台(管理员侧)弹性伸缩管理平台(用户侧)发布系统SOA系统展示层弹性伸缩痛点多策略决策不一致线上代码多版本扩缩不幂等资源保障问题端到端时效问题实例隔离弹性伸缩痛