在 Kubernetes 采用的早期阶段,单集群部署是常态,为管理应用程序和服务提供了简单直接的方法。随着 Kubernetes 的采用扩大,单集群模型的局限性显现出来。对 Kubernetes 集群的需求不断增加,需要转向多集群部署,并采用创新的托管控制平面架构。
译自 The raise of Hosted Control Plane in Kubernetes,作者 Adriano Pezzuto。
从单集群模型过渡到多集群方法引入了重大复杂性。编排和管理数百个 Kubernetes 集群需要可扩展、安全、高效和经济实惠的方法。然而,采用 Kubernetes 中的多集群方案之旅伴随着重大挑战:
- 操作负担: 大规模管理集群通常会导致不一致性和操作效率的下降。例如,手动升级和修补几十个集群可能会呈指数级地增加错误和团队过载。
- 基础设施开销: 每个 Kubernetes 集群传统上需要大量的基础设施投入,需要至少 3 台专用机器才能构建控制平面。在多集群设置中,这些要求会成倍增加,给资源分配和成本管理带来挑战。
- 不同环境的一致性: 在不同的部署环境(云、边缘、数据中心)之间实现统一的配置和管理需要统一协同工作流程,以确保操作过程能够统一应用。
- 安全性和隔离: 在多集群和多租户环境中,需要强大的安全性和隔离机制。在不增加硬件和软件成本的情况下维持这些机制同时不影响效率具有重大挑战,例如避免出现噪声邻居效应。
超大规模科技公司长期以来已经掌握了管理成千上万集群的复杂性,利用托管控制平面模型来管理可伸缩、高效和安全的 Kubernetes 环境。不幸的是,他们的实现仍然是封闭和专有的。
认识到超大规模公司采用这种方法的成功,CLASTIX 在 Kamaji 中实现了托管控制平面模型,这是针对 Kubernetes 的开源控制平面管理器。该项目允许大型企业和托管服务提供商利用在公有云中经过验证的技术,为更广泛的 Kubernetes 部署带来同等级别的可伸缩性、安全性和效率。
托管控制平面架构通过集中控制平面组件同时保持单个租户集群的自治性来增强 Kubernetes 集群管理。
这种设置提供了一种精简的、资源高效的方法来管理多个租户集群。
- 中央管理集群: 这个专用集群监督租户集群的关键组件,如 API 服务器、控制器管理器和调度程序。与传统设置不同,每个集群都有专用的控制平面基础设施,此架构 consolidates 了这些资源,提高了效率并降低了成本。
- 租户控制平面: 每个租户集群的控制平面组件托管在管理集群内。这种安排集中了操作和监控,而每个租户集群保持其独特的基础设施。
- 数据存储: 在管理集群内集中 etcd 集群(Kubernetes 核心数据存储组件),无论作为共享资源还是为每个租户提供专用实例,都可以优化性能和隔离性。
- 租户集群: 尽管有共享的管理集群,但该架构确保对每个租户的资源进行严格隔离,包括网络、存储和物理位置。
托管控制平面架构通过重新构建 Kubernetes 架构,解决了多集群和多租户环境中的核心可伸缩性、资源管理和安全性挑战。
在 Kubernetes 生态系统中,像 Kamaji 这样的托管控制平面解决方案代表了重大改进,与超大规模公司使用的方法高度一致,并且相比传统工具如 SUSE Rancher 或 Red Hat ACM 具有明显优势:
- Kamaji 在使用可伸缩、灵活且隔离的控制平面来管理 Kubernetes 服务方面类似于超大规模公司的模型。这种设计对于有效管理大规模的多租户环境至关重要。
- SUSE Rancher/Red Hat ACM 通常可有效进行常规的多集群管理,但在可伸缩性和灵活性方面可能无法达到超大规模公司启发解决方案的水平,特别是在大规模的多租户场景中。超大规模公司并不使用这些工具来实现他们大规模的托管 Kubernetes 服务。
尽管 SUSE Rancher 和 Red Hat ACM 等工具在管理多个 Kubernetes 集群方面仍然有效,但托管控制平面解决方案提供了一种更聪明的方法,这种方法与大规模、多租户和多集群 Kubernetes 环境的需求更加匹配。
采用托管控制平面解决方案,比如 Clastix 的 Kamaji,不仅仅是技术升级,而是一项战略业务决策,可显著影响多集群环境下 Kubernetes 运维的经济性。
- 提高生产力: 通过简化集群供应和管理,托管控制平面减少了 DevOps 在设置和维护上的时间。Clastix 的分析表明,供应时间有可能减少,这将为开发人员节省超过 60% 的努力。
- 精简化 SRE 运维: 站点可靠性工程团队受益于统一的管理方法。这减少了单独处理多个集群的复杂性,并根据 Clastix 的研究结果,运营成本降低超过 65%。
- 节省能源和设施成本: 托管控制平面的集中特性导致物理服务器更少,能耗更低,电力和基础设施费用减少超过 50%。
- 折旧成本节省: 服务器数量的减少也意味着硬件折旧费用的大幅节省,通常超过 90%。
托管控制平面解决方案为可扩展高效的 Kubernetes 管理提供了一条途径,无需像多集群通常需要的那样承担成本的比例增加。
以下是托管控制平面架构如何增强 Kubernetes 的说明:
- 快速集群置备: 置备新集群变得就像部署工作器节点一样简单,大大缩短了设置时间。例如,在 Kamaji 中,一个租户控制平面只需要 10 秒就可以置备。整个集群只需要几分钟,这取决于底层基础设施。
- 高效的集群生命周期管理: 控制平面以工作负载的形式在管理集群中进行管理。Kubernetes 的原生自动化和自我修复功能提供了自动更新、证书更新、扩展、漂移检测和立即调谐。
- 版本管理: 该架构允许不同版本的 Kubernetes 无缝共存。这种灵活性使跨多个租户的应用程序可以在没有相互依赖或冲突的情况下最佳运行。
- 明确的操作边界: 托管控制平面架构在管理和工作负载操作之间建立了明确的边界。这种分离使不同团队之间的协调更加直接。
- 减少人为错误: 通过抽象控制平面管理并降低其复杂性,置备和操作中的人为错误可能性降低。这导致集群环境更稳定可靠。
- 自动化和自动驾驶: 托管控制平面模型通过将控制平面作为应用程序进行管理,实现了例行任务的高级自动化和自我修复的自动驾驶,减少了手动监控。
- 增强的安全性和合规性: 在此模型中,租户集群的网络分段得以加强。该架构方便为每个租户定制安全控制。这对于在不影响其他租户的情况下遵守特定租户的法规要求尤其有益。
通过这些技术优势,像 Kamaji 这样的托管控制平面解决方案精简了 Kubernetes 管理,使大规模集群更具成本效益、部署速度更快、更具伸缩性,重定义了 Kubernetes 中的多租户界限。
当 ReeVo、Fastweb 和 Netsons 踏上 Kubernetes 之旅时,他们着手构建可扩展的托管 Kubernetes 服务。但是,他们面临着标准面向企业的解决方案可伸缩性有限的挑战,这些解决方案作为托管服务提供商的需求过于复杂且成本高昂。
转而采用 Kamaji,他们找到了理想的解决方案。Kamaji 独特的托管控制平面架构提供了急需的可伸缩性、成本效益和运营简单性,使他们能够克服行业障碍,有效满足客户要求。
他们战略性地选择 Kamaji 标志着在提供创新、以客户为中心的托管 Kubernetes 服务方面取得了重大进步,这是一个可供选择的超大规模平台。
采用托管控制平面模型的旅程正在继续。随着这项技术的成熟和对新挑战和要求的适应,未来将带来更多增强。
Kamaji 在包括 OpenStack、vSphere、Equinix 和 KubeVirt 在内的各种基础设施上的普遍可用性只是一个开始。
随着 Kubernetes 在云原生领域继续成为基础技术,托管控制平面模型将对组织如何部署、管理和扩展其 Kubernetes 环境至关重要。像 Kamaji 这样的解决方案是对 Kubernetes 基础设施未来的有效和战略性投资。随着这项技术的发展,它将为云原生生态系统中的运营卓越、创新和增长打开新的大门。
通过探索 Kamaji 项目来体验托管控制平面技术。与社区互动,为项目做出贡献,并在云原生空间保持领先地位。访问 Kamaji 文档或联系 CLASTIX,将您的 Kubernetes 多集群和多租户基础设施提升到一个新水平。