背景介绍
字节跳动业务体系主要包括微服务、推广搜服务、机器学习和大数据、存储服务,其中微服务支撑业务逻辑,推广搜服务追求极致性能,机器学习和大数据重算力,存储服务对资源稳定性要求高。公司现有500+生产集群,基础设施深度云原生化,实现大规模集群落地和敏捷化构建能力。
云原生资源管理
业务云原生化对资源管理和调度提出更高要求,需要支持GPU/FPGA/RDMA等多样化资源,以及NUMA绑定等精细化管理。K8s原生调度器不感知微拓扑,导致资源分配问题,需通过Katalyst等工具实现拓扑感知调度。
整体方案
采用QoS Resource Manager、Katalyst Agent和Scheduler实现资源管理,支持GPU-RDMA拓扑亲和、RDMA-RDMA拓扑亲和、NUMA级Pod亲和与反亲和等场景。
云原生成本优化
资源规划面临利用率波动和浪费问题,通过分时弹性混部实现资源优化,核心逻辑包括弹性伸缩和整机出让,优势在于对节点资源隔离能力要求低,使用成本低。
资源出让与回收
采用潮汐节点池管理,白天节点划分给在线推理服务,夜晚通过Binpacking出让给离线训练作业,通过Tidal Controller和HPA Controller/Training Operator实现节点类型动态转换和实例数管理。
离线资源稳定性
离线任务运行时间长,需通过业务框架弹性定制、资源分配优化和资源回收优化保证稳定性,构建弹性资源优先级实现资源回收。
作业特征与案例
视频编解码业务通过弹性资源实现快速扩缩容,GPU弹性训练通过稳定资源和弹性资源结合保证训练稳定性。
云原生开源
Katalyst是开源在离线混部机资源管理系统,核心能力包括差异化的QoS定义、智能化的资源回收和保障策略、精细化的资源管理能力、多样化的成本优化手段,字节内部实践实现资源利用率从30%到63%的提升。
开源社区
社区双周会周四19:30(北京时间),议题与会议记录在社区飞书群、GitHub仓库和Slack(kubewharf.slack.com)Channel: katalyst。