TikTok母公司开源下一代Kubernetes联邦工具

字节跳动推出下一代Kubernetes集群联邦系统KubeAdmiral

字节跳动(ByteDance)是TikTok等全球知名平台的母公司,最近推出了其下一代Kubernetes集群联邦系统KubeAdmiral。该系统旨在高效管理多个Kubernetes集群,其效率和效果堪比“一位经验丰富的海军上将指挥舰队”。KubeAdmiral能够扩展到在数十个联邦Kubernetes集群中运行超过1000万个Pod。

背景与需求

字节跳动在多年使用KubeFed系统的过程中,经历了云原生基础设施的显著增长。随着Kubernetes集群规模和数量的激增,以及工作负载从无状态微服务扩展到有状态服务、存储、离线和机器学习任务,字节跳动需要一个更强大且可扩展的集群联邦系统。

KubeAdmiral的核心功能

KubeAdmiral基于KubeFed系统,增强了多集群编排和调度能力,特别针对主流业务场景进行了优化。目前,KubeAdmiral在字节跳动内部管理着超过10万个微服务和1000万个Pod,分布在数十个联邦Kubernetes集群中,每天处理3万次升级和扩展操作,稳定部署率达到95-98%,显著减少了人工干预的需求。

主要特点

  1. 多集群调度能力:KubeAdmiral的调度器被称为其“大脑”,负责计算工作负载在成员集群中的理想位置。与KubeFed不同,KubeAdmiral具有更全面的调度语义,支持通过标签和污点进行更灵活、更细粒度的集群选择和评分,基于负载和亲和性对集群进行评分。
  2. 自动依赖调度:例如ConfigMap等依赖项会自动跟随其Deployment到相应的成员集群。
  3. 模块化调度框架:KubeAdmiral借鉴了kube-scheduler的设计,将调度分为四个阶段:过滤、评分、选择和副本,每个阶段由单独的插件处理,支持用户添加或移除自己的调度插件而不影响其他部分。
  4. 动态权重调度:基于实时集群资源利用率进行动态负载均衡。
  5. 容错能力:自动将不可调度的工作负载迁移到其他集群,确保临时问题如节点故障、资源短缺和亲和性问题不会影响可靠性。

技术改进

KubeAdmiral改进了KubeFed的副本重调度算法,基于实时集群利用率而非部署频率,减少了Pod的频繁变动和集群再平衡的更改。此外,KubeAdmiral完全使用原生Kubernetes API进行集群管理,而非单独的联邦API,使用户能够看到跨多个集群的部署的统一视图,帮助新用户无缝过渡到多集群架构。

开源与未来计划

KubeAdmiral已在GitHub上正式开源,并作为字节跳动内部PaaS平台的重要组成部分。未来,字节跳动计划继续优化KubeAdmiral,专注于提升有状态和任务类工作负载的编排和调度能力,改善用户体验,优化日志和指标,并探索一键从单集群迁移等功能。

字节跳动鼓励开发者和社区探索KubeAdmiral,试用并提供反馈,邀请加入KubeAdmiral社区,共同推动这一创新集群联邦系统的发展。

阅读 67
0 条评论