乐趣区

关于kubernetes:从单集群到多集群Kubernetes-在多云混合云环境的演进

Kubernetes 作为一项核心技术已成为古代应用程序架构的根底,越来越多的企业应用 Kubernetes 作为容器编排零碎。

上面的数据来自 2020 CNCF Survey 的原始数据,能够看到应用 Kubernete 的企业占比达到了 80%。

Kubernetes 的风行次要有以下几个起因:

  • 自动化:Kubernetes 实现了容器的部署、扩大、负载平衡、故障复原、滚动更新等操作的自动化,极大地简化了应用程序的治理和保护工作。这种自动化也晋升了应用程序的弹性和可用性。
  • 可移植性:Kubernetes 基于容器的架构模型,使得利用无需从新编码或更新配置就能够在任何云平台、物理机或者虚拟机中运行。
  • 生态系统:Kubernetes 作为一个胜利地开源我的项目,领有弱小的社区反对和生态系统,使其能够取得更好的翻新、优化和安全性保障。从社区中,咱们能够找到各种插件和工具,为开发者提供了丰盛的抉择和扩展性。

从单 Kubernetes 集群到多 Kubernetes 集群

初露端倪

企业中的应用程序通常比较复杂,须要不同的环境来进行开发、测试和生产部署。为了防止应用程序之间的烦扰和穿插,通常须要在不同的 Kubernetes 集群中别离部署和管理应用程序。

在同一个数据中心不同的环境部署独立的 Kubernetes 集群之后不同环境下的集群规模、治理形式、可靠性和安全性各有不同,从开发、测试到生产,老本的投入也逐渐地晋升,来保障更好的性能、更高的可靠性和安全性。

这也是多 Kubernetes 集群的一种模式(留神这里说的是 多 Kubernetes 集群)。

迅猛发展

随着对云计算接受程度一直进步、企业规模的持续增长,越来越多的企业开始思考采纳或者曾经采纳多云和混合云的架构。多云和混合云的驱动因素很多,总结之后分成了两类:被动因素和被动因素。

被动因素

  • 防止厂商锁定:防止厂商锁定:企业通过采纳多云混合云策略,能够防止适度依赖繁多云服务提供商,从而加重由厂商锁定带来的危险。
  • 晋升性能、升高提早:企业依据业务需要,将服务部署在地理位置更靠近用户的数据中心。
  • 更大范畴的伸缩性:在不同的云服务提供商之间实现资源的弹性伸缩,从而提供更大范畴的伸缩性以满足业务需要。
  • 晋升可靠性:在不同的云服务提供商和公有数据中心之间进行利用部署之后,即便某个云服务提供商呈现故障,企业的利用仍可持续运行。
  • 老本因素:能够选择性地应用各个云服务提供商提供的服务,以便在老本和性能之间找到最佳均衡。

被动因素

  • 数据中心能力限度:数据中心基础设施的规模、性能无奈满足需要。
  • 上云、下云的过渡期:在上云或下云的过程中,存在着私有云和公有云共存的景象,过渡期可能会被拉长。
  • 繁多云笼罩区域无限:只管云服务提供商一直扩大其寰球数据中心的覆盖范围,但依然可能存在繁多云服务提供商无奈满足企业在特定地区的部署需要的状况。
  • 业务隔离:在某些状况下,企业须要对不同业务进行隔离,以升高危险和进步安全性。将利用部署到不同的数据中心,来确保敏感数据和要害利用的平安。
  • 合规和数据隔离:不同国家和地区可能有不同的法规要求,这些要求可能会限度企业在特定云服务提供商上存储和解决数据。

多云混合云策略的引入,相应地,Kubernetes 集群的数量也变得越来越多。尽管集群的数量在减少,然而实质与单集群无异:每个 Kubernetes 集群有本人的管制立体(api-server、控制器)和一组工作节点,能够独立进行应用程序的部署和治理(这就是为何后面称之为多 Kubernetes 集群)。在“多集群”环境下,每个集群是独立的,当须要治理的时候,采纳的是“一个一个治理”的形式。

挑战多多

多 Kubernetes 集群能够在不同的云平台、不同的数据中心、不同的网络环境和不同的物理基础设施中部署,以满足不同的应用程序和业务需要。但随着集群数量的减少,也面临着诸多挑战:

  • 集群治理复杂性减少:不同的 Kubernetes 集群部署在不同的云服务商平台上,领有不同的网络架构和安全策略。随着数量的减少,集群治理的复杂性也会相应减少。这包含资源分配、访问控制、网络管理、集群降级和保护等方面。
  • 利用治理成本增加:企业须要在多个 Kubernetes 集群上部署和管理应用程序。
  • 跨集群网络和服务通信:Kubernetes 人造的网络隔离个性,又因为部署在不同网络架构的云平台上,须要解决跨集群网络和服务通信的问题。这包含跨平台网络互联、跨集群服务发现和路由等问题。

从多 Kubernetes 集群到 Kubernetes 多集群

为了应答下面的种种挑战,呈现了另一个概念 Kubernetes 多集群。Kubernetes 多集群和多 Kubernetes 集群是两个不同的概念,为了便于辨别咱们也能够将其称为 Kubernetes 联邦。

Kubernetes 联邦是将多个 Kubernetes 集群连贯在一起,以便协同工作和实现跨集群资源和利用的对立治理、跨地区和跨云的故障切换、依据理论需要动态分配资源降低成本、晋升业务的灵活性和扩展性。

尽管对于如何连贯多个 Kubernetes 集群没有官网的解决方案,然而得益于弱小的社区和生态,已有不少开源和商业化的解决方案。

集群治理复杂性

应用集中式的多集群治理平台,在一个对立的界面中治理多云混合云中的 Kubernetes 集群,提供集群创立、配置、监控和故障排查的性能,使集群治理变得更加简略和高效,同时进步集群的可靠性和可用性。

在工具方面有 KubeSphere、Rancher 以及泛滥私有云的计划 Google Anthos、Azure Arc、Red Hat Advanced Cluster Management(ACM)、AliCloud ACK 等等。

利用治理

应用自动化的多集群利用编排和治理平台,解决多集群、多云环境下应用程序的疾速部署、扩大和治理问题,保障应用程序的可靠性。

除了后面提到多集群治理平台提供了利用治理能力以外,还有如 Kubernetes Federation(前者 22 年 8 月已存档)、Karmada 等开源多集群利用治理平台。

跨集群网络和服务通信

升高多集群环境中的网络复杂性。应用服务网格技术,治理跨多个集群的服务流量、安全性和可观测性,实现跨集群的服务发现和通信;或者采纳跨集群的网络解决方案实现网络互通。

服务网格技术有 Istio、Linkerd、Flomesh 等,网络解决方案有 Submariner。

总结

在多云、混合云成为趋势的当下,Kubernetes 多集群也一直地被提及并逐步成为重要的解决方案。Kubernetes 多集群的探讨已不再局限于集群和利用的治理,还引入了跨集群的服务通信。

多集群能够为企业提供更灵便、更牢靠的利用部署和治理能力,使企业可能更好地利用混合多云环境中的资源,升高经营老本,进步利用的可靠性。除此以外,还能够助力企业更疾速地进行利用迁徙。

退出移动版