KubeWharf 是一套以 Kubernetes 为基础构建的分布式操作系统,由一组云原生组件构成,专注于提高系统的可扩展性、功能性、稳定性、可观测性、安全性等,以支持大规模多租集群、在离线混部、存储和机器学习云原生化等场景。
KubeWharf 展现了一个完整的云原生体系,本文围绕其中 KubeZoo 和 KubeAdmiral 两个点展开,分别介绍多租户方案和调度器,这是云原生部分的两个核心点。
Kubernetes 简述
Kubernetes,也就是所谓的 K8s,它是一个开源的容器编排平台,它提供了一种方便管理和部署容器化应用程序的方式。乍一听起来,可能有些难以理解,我这里大致总结一下它的要点,大家就能构建起对K8s的概念。
- 应用于多个平台的架构设计:Kubernetes 集群架构通常包括一个 Master 节点和多个 Node 节点,一个节点可以看成是一台物理机或虚拟机,是。
- 针对于容器化应用的部署:Kubernetes 用于管理云平台中多个主机上的容器化的应用,其目标是让部署容器化的应用简单并且高效。
- 基于REST API的系统:提供了一套简单易用的API来管理应用程序容器的生命周期,包括启动、停止、重启和自动扩展等操作。
简而言之,Kubernetes 是一个为容器化的应用提供了跨多台主机集群的自动化部署、管理和扩展能力的一个开源管理系统。开发人员可以专注于应用程序的构建与迭代,而无需过多关注底层基础设施细节,同时运维团队也能利用 Kubernetes 的自动化能力提高资源利用率并确保服务稳定运行,是现代云原生应用程序开发和部署的必备工具之一。
KubeZoo
Kubernetes 官方定义了三种多租户模型,为何 KubeZoo 会选择提出一种新的多租户方案那,我认为有两点。
- Cluster/Control plane 隔离方案会引入过多的额外开销
- 每个租户独立集群都需要建立控制组件,降低了整体资源的利用率
- 大量的租户的控制也会带来额外的运维负担
- 大量小租户场景:小租户对于资源的需求量往往比较小,大量的小租户会带来巨大的运维管理成本
KubeZoo 是轻量级的 Kubernetes 多租户项目,基于协议转换的核心理念在一个物理的 K8S 控制面上虚拟多个控制面,具备轻量级、兼容原生 API 、无侵入等特点。下面是它的架构思路。
KubeZoo 增强了原集群的多租户能力,降低了资源和运维成本,生命周期响应更迅速,是一种轻量级的多租户解决方案。
与现有方案相比,KubeZoo有以下优势:
- 租户隔离性:租户的请求会经过 KubeZoo 的预处理,租户间互相不干扰,具备较高等级的隔离性。
- 集群创建效率:无需为每个租户创建独立的控制面,可以实现租户集群的秒级创建,随建随用
- 资源利用率: KubeZoo 方案共享后端集群,资源利用高;后端集群是共享的,只需维护一个后端集群,也有效降低了运维成本。
官方提供的详细对比
适用场景
KubeZoo 在租户体验、集群的资源和效率之间达到有机平衡,尤其是在大量小租户共享资源池情形下,优势更大。因此 KubeZoo 这种轻量级的解决方案更多适用于当代K8s的所需。
KubeAdmiral
Admiral 本意是舰队司令的意思,结合 Kubernetes ,寓意更合理的调控Kubernetes 多集群编排调度。基于 Kubernetes Federation v2 迭代演进而来,旨在提供云原生多云多集群的管理和应用分发能力。
为什么会需要调度那?调度的核心作用便是对有限的资源进行分配,以实现最大化资源的利用率或者降低系统的尾延迟。通俗来讲,就是资源是有限的,这是事实,但是我们要尽可能发挥资源的可能性。KubeAdmiral面对的便是资源的需求和供给不平衡问题而提出的一种优质解决方案,下面是它的具体架构。
KubeAdmiral 支持 Kubernetes 原生 API,提供了丰富的、可扩展的调度框架,并对调度算法、分发过程进行了细致的打磨,是一种非常卓越的调度算法。
- 丰富的多集群调度能力: 在原有KubeFed的基础上,KubeAdmiral 丰富了原调度语义,可以通过PropagationPolicy 进行配置;集群的选择更灵活,可以通过标签、污点等方式;同时引入依赖跟随调度,提供作业类资源等调度能力。
- 调度能力可扩展: 调度逻辑抽象为 Filter, Score, Select 和 Replica 四个步骤,各个步骤分别由独立插件实现,插件间互不干扰,全局编排通过调度器来实现,构建了一个可拓展的调度框架
- 应用调度失败自动迁移: 在应用资源的下发过程中,可能会出现节点下线、资源不足等情况从而导致的单集群调度失败之后,KubeAdmiral 提供失败自动迁移的功能,可以避免下发失败导致可用实例降低问题。
总结
经过一系列的学习和分析,可以发现 KubeWharf 出发点很好,搭建了一套完备的云原生体系,对推动云原生以及K8s的发展有着举足轻重的意义。
infoq: https://xie.infoq.cn/article/fdf3d90fa36fe5ba3ca9d4b2b