“2016 年,字节跳动启用 Kubernetes 技术栈,开始对业务进行大规模容器化改造,到 2018 年,内部部署的容器单集群已经达到了上万个节点。时至今日,字节跳动实现云原生化的应用比例已超过 95%,我们计划和开源社区合作,逐步开放规模化云原生落地的工具和最佳实践。”
字节跳动宣布正式开源 KubeWharf 项目。KubeWharf 是字节跳动基础架构团队在对 Kubernetes 进行了大规模应用和不断优化增强之后的技术结晶。这是一套以 Kubernetes 为基础构建的分布式操作系统,由一组云原生组件构成,专注于提高系统的可扩展性、功能性、稳定性、可观测性、安全性等,以支持大规模多租集群、在离线混部、存储和机器学习云原生化等场景。
KubeWharf 项目诞生于近年云原生技术蓬勃发展的背景下。Kubernetes 作为源头技术已经得到了广泛应用,但它面临的挑战也日益突出,例如面对大规模多租户场景下的资源隔离、安全管理等问题。
为了更好地支撑云原生应用的快速发展,KubeWharf 项目以 Kubernetes 作为基础,整合了一系列云原生组件,旨在构建一个功能全面、可扩展性极强的分布式操作系统。它通过集成元数据服务、服务网格、访问控制、跨集群管理等多个子项目,构建出了一个完整的开源技术生态。
KubeWharf 重视系统各项核心指标,比如可扩展性、功能全面性、稳定性、监控观测能力以及安全性等。它针对大规模多租户环境中容器化应用的挑战,内置了丰富的解决方案。例如内置的 KubeBrain 元数据系统可以支持千万级容器的高性能查询与同步。Kelemetry 组件实现了跨层级及跨集群的分布式追踪功能。
除基础设施级能力外,KubeWharf 还通过机器学习组件如 KubeZoo ,在保障系统稳定性基础上,为用户提供服务智能化能力。这将有力支撑大规模人工智能训练和推理等新业务场景。另一重要目标是支持混合云模型,允许通过标准化采集进行离线分析和存储。
KubeWharf 项目地址:https://github.com/kubewharf
以 Kubernetes 为代表的云原生技术底座支撑了字节跳动业务的快速发展。从微服务场景开始,Kubernetes 逐渐演化,统一支撑了字节内部的大数据、机器学习以及存储服务等多种形态基础设施。从 2018 年至今,字节跳动的 Kubernetes 节点的规模增长了 10 倍以上。面对这样的增速,提高 Kubernetes 分布式操作系统的性能、资源利用率、可扩展性、可用性等愈发重要,KubeWharf 就是在这样的背景下诞生。
该项目旗下共有
- 高性能元信息存储系统 KubeBrain
- kube-apiserver 七层网关 KubeGateway
- 轻量级多租户方案 KubeZoo
... ... 等等
2023 年 9 月 26 日至 9 月 28 日,KubeCon + CloudNativeCon + Open Source Summit(峰会) China 2023 时隔四年也在上海线下召开。
其中有两位演讲者分别是来自字节跳动的 He Cao 与 Wei Shao,他们介绍了字节跳动开源的细粒度资源管理与调度系统 Katalyst。
他们详细介绍了 Katalyst 的以下几个使用场景:
- 混部基于 Kubernetes 原有的三种 QoS 级别进行扩展通过 Kubelet Hook(钩) 的方式对 Kubelet 进行扩展(QoS Resource(资源) Manager)基于 PID Algorithm 的资源预测算法多维度(CPU/Memory/SSD/Network)的资源隔离机制面向 SRE 的多层级(Cluster/Node Pool/Node/Service)动态配置
- 共享 GPU 调度(GPUShare Plugin)
- 拓扑感知的调度(RDMA 的亲和性)
- 资源效率套件
其中共享 GPU 调度与拓扑感知的调度的部分将会由 He Cao 在 CNCF-hosted Co-located Events North America 2023 上进行更详细的分享(Improving(提高) GPU Utilization and Accelerating(加快) Model Training with Scheduling Framework(框架) and NRI - He Cao, ByteDance)。
Katalyst 很明显是想做成一个 All-in-One 的资源管理与调度框架,对标的应该就是阿里云先前开源的 Koordinator,不过在开源社区的治理上看上去还是有着不小的差距。 对于平台开发者而言,Katalyst 的一些设计我觉得在实现企业内部的资源管理框架的时候有很大的参考价值,包括在混部场景下基于自定义 QoS 级别对资源管理的扩展与相应的调度器的扩展等。 对于用户而言,我认为还是要根据自身的工作负载来决定要使用哪些策略才会有较好的优化效果,是否真的需要采用这种 All-in-One 的调度系统还需要 Case-by-Case 地讨论。
总体来看,KubeWharf 项目实现了资源统一管理、服务发现、配置管理、访问控制、监控与日志收集等一系列完整的功能。它旨在助推云原生架构的广泛应用,为互联网企业和开发团队提供开源而高效的分布式基础设施能力。相信随着社区积极协作,KubeWharf 定能成长为领先的云原生系统。
相关仓库:
参考文章:
https://rudeigerc.dev/posts/kubecon-china-2023/
https://www.oschina.net/news/204215/kubewharf-open-source
infoq社区文章首发: https://xie.infoq.cn/article/7a73a4f8ccdcc8aba336aab98