KubeWharf: 云原生分布式操作系统体验部署|社区征文

KubeWharf

picture.image

在字节跳动的业务发展过程中,KubeWharf 是一套基于 Kubernetes 构建的分布式操作系统,旨在提高系统的可扩展性、功能性、稳定性、可观测性、安全性等方面,以支持多样化的云原生场景。Kubernetes作为云原生技术的代表,成为支撑业务快速发展的重要基石。

库贝码头 (github.com)


发展节点

从微服务到多种形态基础设施的统一支撑

  • Kubernetes 最初可能作为字节跳动微服务架构的底座,统一了应用的部署、管理和扩展。
  • 随着业务的拓展,Kubernetes 逐渐演化,开始支持字节跳动内部的大数据、机器学习和存储服务等多种形态的基础设施。

节点规模的显著增长

  • 字节跳动 Kubernetes 节点规模从 2018 年至今增长了10倍以上,这反映了业务规模的快速扩大和对基础设施的持续需求。

性能、资源利用率、可扩展性、可用性的挑战

  • 随着 Kubernetes 集群规模的增加,性能、资源利用率、可扩展性和可用性等方面的挑战逐渐凸显。
  • 在大规模运行的环境中,管理和维护 Kubernetes 集群可能变得更加复杂,需要更高效的分布式操作系统来应对这些挑战。

KubeWharf 的应用背景

  • KubeWharf 作为分布式操作系统,在这一背景下应运而生,旨在满足字节跳动对 Kubernetes 的更高性能、更优资源利用率、更强可扩展性和更高可用性的需求。
  • 可能通过解决现有 Kubernetes 持续增长规模时的一些挑战,为字节跳动提供更灵活、更可靠的基础设施支持。

部署上手KubeBrain

要快速上手 KubeBrain,可以按照以下步骤进行编译和启动,具体取决于选择的存储后端:

picture.image

使用 Badger 存储后端

编译和启动

 # 编译 Badger 存储后端
 make badger
 ​
 # 启动 KubeBrain,并使用 Badger 存储后端
 ./bin/kube-brain --key-prefix "/"

使用 TiKV 存储后端

部署 TiKV 集群

首先,安装 TiUP 工具。然后,使用以下命令在本地启动一个 TiKV 集群:

 tiup playground --mode tikv-slim --kv 1 --pd 1

编译和启动 KubeBrain

 # 编译 TiKV 存储后端
 make tikv
 ​
 # 启动 KubeBrain,并连接到 TiKV 集群
 ./bin/kube-brain --key-prefix "/" --pd-addr=127.0.0.1:2379 --port=3379 --peer-port=3380 --compatible-with-etcd=true

多节点共享 TiKV 集群

如果多个 KubeBrain 实例共享一个 TiKV 集群,请确保以下设置一致:

  • key-prefix 与 API Server 的 etcd-prefix 参数一致。
  • compatible-with-etcd 应设置为 true,以便所有节点都提供 API Server 中使用的所有 etcd API。

这样,就可以根据需要选择 Badger 或 TiKV 作为 KubeBrain 的存储后端,并通过简单的命令行参数进行配置。


场景分析

大规模多租户集群管理——》 KubeWharf 的多租户管理功能使其成为管理大规模 Kubernetes 集群的理想选择。通过对资源的精细控制和隔离,KubeWharf 能够有效地支持多个租户在同一集群中运行其应用程序。这种能力对于大型云服务提供商或企业内部的多团队共享集群场景尤为重要。KubeWharf 通过强大的多租户隔离机制,确保租户之间的资源不会互相干扰,从而提高整个集群的稳定性和安全性。

离线部署环境——》 KubeWharf 在离线部署环境中展现出独特优势。企业或组织在没有连续互联网连接的情况下,仍能够依赖 KubeWharf 进行应用程序的部署和管理。这对于一些对网络依赖性要求极低、需要高度保密性的应用场景非常关键,例如政府机构、金融机构等。KubeWharf 提供了离线部署的灵活性,使得用户能够在各种环境中自主管理和控制其基础设施。

存储系统的云原生化——》 KubeWharf 在存储系统的云原生化方面提供了强有力的支持。通过与 Kubernetes 紧密集成,KubeWharf 使存储系统更好地适应云原生环境,实现了高度的可扩展性和灵活性。这对于需要处理大规模数据存储和分析的场景非常重要,例如大型电商平台或数据驱动型企业。KubeWharf 的存储云原生化功能有助于提高整个系统的效率,同时降低了存储资源的管理复杂性。

机器学习云原生化——》 KubeWharf 为机器学习工作负载提供了一流的支持,使其能够在 Kubernetes 上实现云原生化部署和管理。对于需要进行大规模机器学习模型训练和推断的企业,KubeWharf 提供了高度灵活和可扩展的解决方案。其优化的性能和资源利用率使得机器学习工作负载能够更加高效地运行,同时方便用户集中管理和监控这些复杂的任务。

需求高可观测性的场景——》 KubeWharf 提供强大的监控和日志功能,使得在大规模集群环境中实现高可观测性成为可能。在对系统运行状况有严格监控要求的场景中,KubeWharf 提供了实时的性能指标和详尽的日志,有助于快速诊断和解决潜在问题。这对于确保系统的稳定性和可用性至关重要,特别是在高负载和复杂网络环境下。

需求高安全性的企业环境——》 KubeWharf 在安全性方面的设计考虑使其在企业环境中得到了广泛应用。通过实施强大的身份验证、访问控制和安全审计功能,KubeWharf 能够保障敏感数据和应用程序的安全。对于金融、医疗等领域,这种高度安全性的特性能够满足行业法规对数据保护的严格要求。

快速增长和变化的业务需求——》 KubeWharf 的优化可扩展性和灵活性使其适用于快速增长和变化的业务需求。企业可以利用 KubeWharf 快速部署、扩展和管理新的应用服务,适应市场变化。对于经常面临新业务挑战和需要灵活基础设施支持的企业,KubeWharf 提供了一个强大的工具,帮助其在竞争激烈的市场中保持敏捷性。


THE END

对大规模多租户集群的支持,通过优化可扩展性和稳定性,KubeWharf使得不同租户能够在同一集群中高效运行其工作负载。离线混部的特性使其在需要高度安全性的环境中具备优势,适用于一些无连续互联网连接的场景。KubeWharf还强调了存储和机器学习云原生化,为这两个关键领域提供了整合的解决方案。在存储方面,KubeWharf通过云原生化的方式增强了存储系统的集成性,提高了整个系统的灵活性。对于机器学习工作负载,KubeWharf提供了有效的支持,使其能够轻松在Kubernetes上进行云原生化部署和管理。

infoQ文章链接:https://xie.infoq.cn/article/6fa2107f667d563b122a9da1b

50
0
0
0
关于作者
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论