Rancher开源Fleet:业界首个海量K8S集群管理项目
2020年4月3日,业界应用最为广泛的Kubernetes管理平台创建者Rancher Labs(以下简称Rancher)宣布推出全新开源项目Fleet,致力于为用户提供海量Kubernetes集群的集中管理体验。
Rancher是业界最早实现多云多集群管理的企业级Kubernetes管理平台。早在2016年的Rancher 1.0版本,Rancher就已经提供了用于管理多个集群的中央控制平面。作为Kubernetes多集群管理的先驱,我们已经亲眼看到了用户如何不断增加所管理集群的数量。
2019年,Rancher推出了一系列轻量级Kubernetes开源项目,包括轻量级的Kubernetes发行版K3s、基于Kubernetes的应用程序部署引擎Rio、业界首个Kubernetes操作系统K3OS。这些项目获得了大量用户的关注,并收获了一致的好评。随着这些项目的成功,用户开始将成千上万的独立Kubernetes集群部署到分支机构、零售商店、石油钻井平台和风力发电厂等边缘位置。
Rancher联合创始人及总架构师Darren Shepherd创建并主导了Fleet项目,他表示:“用户对于在不久的将来管理成千上万甚至是数百万的集群具有极大的兴趣。我们坚信Kubernetes有望成为在多云及异构IT环境中无处不在的企业计算平台,大规模管理Kubernetes集群的需求将持续不断地增长。”
Fleet:从“宠物”到“牛群”
满足持续增长的集群规模管理需求
随着Kubernetes集群规模的需求不断增长,用户需要一个可以实现多集群管理的全新体系架构,Fleet展示了多集群管理的未来发展形态。过去,用户将Kubernetes集群当作“宠物”,Fleet的横空出世,将帮助用户从管理“宠物”过渡至管理“牛群”,从而实现海量集群的集中管理。
为了扩大所管理的集群数量,用户无法将过多的注意力和精力集中在管理每一个独立的集群上。正如Kubernetes帮助用户将焦点从单个计算节点转移开来一样,Fleet借鉴了这一思路,帮助用户将焦点从单个集群转移开来。
“根据Kubernetes部署Pod的模型,我们定义了Bundles,并通过Selector将Bundles关联到集群上。但我们不能完全复制Kubernetes Pod部署模型。”Darren Shepherd解释道:“跨集群部署这一想法的独特之处在于,每个集群需要对资源进行不同的配置。”
Fleet提供了一种内置机制,可以使用诸如Helm和Kustomize等行业标准工具为每个目标集群定制Bundles。一旦用户在集群之间部署了Bundles,Fleet就会主动监视资源是否已就绪,以及是否被更改过。
在K3s和Rancher上构建
Fleet的可扩展性来自于Rancher Labs为Rancher和K3s的扩展所进行的大量工作和经验累积。虽然K3s的目标是较小的部署,但是K3s的存储技术使Kubernetes可以管理比使用etcd时更大的数据集。除此之外,K3s也为减少Kubernetes控制器中不必要的通信进行了优化。
日前,Rancher正式发布了Rancher 2.4,其GA版本支持2000个集群和10万个节点。随着Rancher 2.4产品架构的增强,Rancher将在后续版本中提供支持100万个集群的途径。“我们有信心新一代架构将使我们可以管理数百万个集群。我们将继续验证这个架构,并继续进行规模测试,我们也会与社区分享我们的发现。”Darren Shepherd补充道。
“对比起应用程序,我们更倾向于将Fleet部署的单元称为Bundles。”Darren Shepherd强调:“我们不仅可以管理应用程序部署。更为关键的是,我们可以管理所有可以被描述为Kubernetes资源的东西。”
这一趋势与当前的Kubernetes发展趋势不谋而合。随着业界涌现出越来越多的Kubernetes原生工具,这大大扩展了Fleet可以管理的范围。
目前,除了应用程序部署之外,Fleet的主要用例是管理安全工具和安全策略。诸如OPA和Falco等工具,它们都支持原生Kubernetes API,因此Fleet可以确保你的所有集群的一致性和安全性。
不止于此,我们也一直努力增强我们的K3s、K3OS和系统升级控制器(System Update Controller)。这些工具可以使我们用Kubernetes资源文件来管理集群底层和操作系统。
舰队管理:新场景催生新需求
自K3s面世以来,越来越多的用户将其推广及应用到分布的场景中,Rancher研发团队收到了无数K3s社区用户对于海量集群管理的需求。最终,Rancher决定将这一项目命名为Fleet,因为这一单词极佳地体现出了许多用户所描述的用例的精髓。
另一方面,那些在容器领域深耕了数年的用户可能会发现,Fleet同时也是另一个早期容器领域项目的名字。它是由CoreOS团队在早期构建的容器编排系统,目前已经停止维护,不再更新。
“我一直是它的忠实粉丝,将这一项目命名为Fleet也包含了我的私心。”Darren Shepherd解释道:“所以我希望重新使用Fleet这一名字,这是对这个非常出色的容器领域早期项目的致敬。同时,对于推动Kubernetes集群管理的演进,我们感到十分兴奋及万分期待。”
一切开源,立即体验
Fleet依旧秉承Rancher 100%开源的理念,现已发布Alpha版本之前的原型软件Fleet 0.1,您可以在Github上了解及下载体验。
Github地址:https://github.com/rancher/fleet
关于Rancher Labs
Rancher Labs由CloudStack之父梁胜创建。旗舰产品Rancher是一个开源的企业级Kubernetes管理平台,实现了Kubernetes集群在混合云+本地数据中心的集中部署与管理。Rancher一向因操作体验的直观、极简备受用户青睐,被Forrester评为2018年全球容器管理平台领导厂商,被Gartner评为2017年全球最酷的云基础设施供应商。
目前Rancher在全球拥有超过三亿的核心镜像下载量,并拥有包括中国人寿、华为、中国平安、兴业银行、民生银行、平安证券、海航科技、厦门航空、上汽集团、海尔、米其林、丰田、本田、中船重工、中联重科、迪斯尼、IBM、Cisco、Nvidia、辉瑞制药、西门子、CCTV、中国联通等全球著名企业在内的共40000家企业客户。
推荐阅读