< 返回技术文档列表

多集群Kubernetes管理的解决方法

发布时间:2021-09-01 03:07:23⊙投诉举报

本篇内容介绍了“多集群Kubernetes管理的解决方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

随着越来越多的组织将其基础架构迁移到Kubernetes,问题不再仅仅是“如何在单个Kubernetes集群上管理所有应用程序?”现在,越来越多的集群管理员正在努力解决组织中如何管理多集群的问题。虽然Kubernetes在单个集群中支持名称空间用于软隔离,在虚拟集群中用于硬多租户,但有时可能需要运行多个集群。

运行多个群集的最常见原因包括:

  • 严格隔离:这可能是由合规性(例如,将生产/质量保证/登台集群与生产隔离)或客户需求(例如,根据客户要求运行专用服务)驱动的

  • 多区域:出于可用性,故障转移,延迟或位置(例如,数据保护法)的原因,应用程序可能需要在多个区域中运行

  • 多云:类似地,应用程序可能需要在多个云上运行以实现可用性/灾难恢复协议或避免供应商锁定

  • 可扩展性:在极少数情况下,该服务可能会超出可扩展性的Kubernetes限制(例如,GKE集群中的15万个Pod)

在一定程度上,可以通过良好的CI / CD管道来管理多个集群。例如,在带有CircleCI和ArgoCD的Kubernetes CI /  CD中,我引入了利用应用程序模式的应用程序来引导单个集群的方法。可以将其扩展到部署到不同集群的管道,以简化工作流程。

但是,真正的多集群管理解决方案需要的不仅仅是应用程序部署。有安全注意事项(例如RBAC,多群集日志记录),配置/秘密管理以及不同Kubernetes群集之间的功能奇偶校验。在本文中,我们将介绍一些流行的托管解决方案以及用于管理多个Kubernetes集群的开源项目。

Rancher

多集群Kubernetes管理的解决方法

> Image Credit: Rancher

在Google宣布Anthos和AWS推出EKS Anywhere之前,Rancher与OpenShift和Cloud  Foundry一起是少数支持企业应用的选项之一,以支持在混合和多云基础架构上运行Kubernetes。Rancher提供了一个控制平面来创建或添加现有的Kubernetes集群。

自Rancher v2.2.0起已支持多集群应用程序,并且从Rancher  v2.5开始,一个名为Fleet(基于GitOps原理的多集群应用程序部署)的较新项目现已可用。跨多个群集分布的应用程序还可以从Rancher的全局DNS中受益,从而无需使用Cloudflare等外部解决方案即可跨应用程序配置负载平衡。

多集群Kubernetes管理的解决方法

> Image Credit: Rancher

Rancher  Lab的所有项目(包括Rancher,RKE,Longhorn和K3s)都是开源的,但是如果您需要SaaS解决方案,它们还提供托管版本。

谷歌Anthos

托马斯&middot;库里安(Thomas Kurian)接管Google Cloud时,他继承了Oracle的多云战略构想,我在“为什么BigQuery  Omni是一件大事”中作了详细介绍。Google  Anthos是一个基于Kubernetes的开放平台,可以将GKE扩展到混合和多云环境,非常适合此策略。谷歌是Kubernetes的领导者,这已经不是什么秘密了。对于希望采用Kubernetes的现有GKE用户和新组织来说,Anthos是一个诱人的选择。

多集群Kubernetes管理的解决方法

> Image Credit: Google Cloud

Anthos将群集组织成可以对群集和资源(例如工作负载标识,名称空间,服务)进行逻辑管理的逻辑分组。Anthos的另一个强大功能是Anthos  Config Management,它由以下组件组成:

  • Config Sync:遵循GitOps模型,以跨多个集群(例如,名称空间,集群角色,安全策略)持续同步配置

  • 策略控制器:基于Open Policy Agent Gatekeeper项目来实施策略(例如,不合规的API请求)

  • 二进制授权:要求集群中运行的映像由受信任的机构签名

  • 层次控制器:基于“层次命名空间控制器”项目,创建共享公共父命名空间以进行继承或控制的命名空间

Microsoft Azure Arc

多集群Kubernetes管理的解决方法

> Image Credit: C# Corner

对于Microsoft Azure用户,Azure Arc提供了与Google Anthos类似的功能。Azure  Lighthouse用于控制所有Kubernetes群集之间的RBAC,以及Azure策略用于实时实施和评估策略违规。Azure  Arc还本地支持某些Azure数据服务,例如Azure SQL托管实例和Azure PostgresSQL Hyperscale。

Volterra

几周前,F5宣布了对Volterra的收购,Volterra是一家多/混合云管理初创公司,于2019年成立,由Khosla  Ventures,Mayfield,M12(Microsoft)和Samsung Ventures投资。在“分布式Kubernetes  PaaS的控制平面”中,Volterra首席执行官Ankur Singla描述了创建Volterra的动机:

  • 没有强大的Kubernetes发行版或PaaS(例如OpenShift,Cloud Foundry)为分布式集群提供一套全面的安全和运营服务,例如RBAC  /用户管理,机密/密钥管理和多集群服务网格。

  • Anthos,Azure Arc和Rancher专注于将多种服务打包和部署到分布式群集,而较少关注于运营和多租户需求。

自2019年以来,其他竞争对手已经添加了一些功能来解决这些问题,但是当时Volterra的SaaS产品套件提供了独特的解决方案,可以跨多个云和边缘平台部署,连接,保护和运行应用程序:

  • VoltConsole:用于集中管理在VoltMesh和VoltStack上运行的应用程序的门户

  • VoltStack:分布式Kubernetes平台,用于部署,保护和运行跨云和边缘运行的应用程序

  • VoltMesh:高性能网络层,用于连接运行在不同云和边缘上的应用程序

  • Volterra全球网络:应用程序到应用程序网络可提供出色的性能 > Image Credit: Volterra Blog

其他解决方案

  • Rafay托管Kubernetes平台:Rafay提供的解决方案(著名客户:Verizon)

  • VMWare Tanzu Mission Control:VMWare的中央管理解决方案

  • IBM Cloud Pak:IBM的多集群管理解决方案

  • 金钟:提供开源或云托管/企业版

  • Gopaddle:以应用程序为中心的平台到集中式集群管理支持

开源项目

  • kubefed:alpha中的官方Kubernetes SIG项目

  • 园丁:在SAP的大力支持下的多云/集群项目

  • KQueen:Mirantis的旧项目似乎不再维护

“多集群Kubernetes管理的解决方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注血鸟云网站,小编将为大家输出更多高质量的实用文章!


/template/Home/Zkeys/PC/Static