当前位置: 首页 > 科技观察

多集群Kubernetes管理解决方案

时间:2023-03-14 12:15:43 科技观察

本文概述了流行的SaaS解决方案,包括Rancher、GoogleAnthos、AzureArc和Volterra以及开源替代方案。>照片由AlinaGrubnyak在Unsplash上拍摄随着越来越多的组织将其基础架构迁移到Kubernetes,问题不再仅仅是“我如何在单个Kubernetes集群上管理所有应用程序?”现在,越来越多的集群管理人员正在努力解决如何管理其组织中的多个集群的问题。虽然Kubernetes支持单个集群中的软隔离和虚拟集群中的硬多租户的名称空间,但有时可能需要运行多个集群。运行多个集群的最常见原因包括:严格隔离:这可能是由合规性(例如,将生产/QA/暂存集群与生产隔离)或客户需求(例如,根据客户要求运行专用服务)驱动的出于可用性、故障转移、延迟或位置(例如,数据保护法)的原因,应用程序可能需要在多个区域运行。多云:类似地,应用程序可能需要在多个云上运行以实现可用性/灾难恢复协议或避免供应商锁定可扩展性:在极少数情况下,服务可能会超过Kubernetes的可扩展性限制(例如GKE集群中的150,000个pod)在某种程度上,这可以通过良好的CI/CD管道来管理多个集群来实现。例如,在带有CircleCI和ArgoCD的KubernetesCI/CD中,我介绍了使用应用程序模式来引导单个集群。这可以扩展到部署到不同集群的管道,以简化工作流程。然而,真正的多集群管理解决方案需要的不仅仅是应用程序部署。存在安全考虑(例如RBAC、多集群日志记录)、配置/机密管理以及不同Kubernetes集群之间的功能奇偶校验。在本文中,我们将了解一些流行的托管解决方案以及用于管理多个Kubernetes集群的开源项目。Rancher>图片来源:在Google宣布Anthos和AWS推出EKSAnywhere之前,Rancher是为数不多的企业就绪选项之一,与OpenShift和CloudFoundry一起支持在混合云和多云基础设施上运行Kubernetes。Rancher提供了一个控制平面来创建或添加到现有的Kubernetes集群。从Rancherv2.2.0开始支持多集群应用程序,从Rancherv2.5开始,现在可以使用一个名为Fleet(基于GitOps原则的多集群应用程序部署)的新项目。分布在多个集群中的应用程序也可以受益于Rancher的全球DNS,从而可以在不使用Cloudflare等外部解决方案的情况下配置跨应用程序的负载平衡。>图片来源:RancherLab的所有项目(包括Rancher、RKE、Longhorn和K3s)都是开源的,但如果您需要SaaS解决方案,它们也提供托管版本。当GoogleAnthosThomasKurian接管GoogleCloud时,他继承了Oracle的多云战略愿景,我在“为什么BigQueryOmni是一件大事”中详细介绍了这一点。GoogleAnthos是一个基于Kubernetes的开放平台,可将GKE扩展到混合云和多云环境,非常适合这一战略。众所周知,谷歌是Kubernetes的领导者。对于现有GKE用户和希望采用Kubernetes的新组织来说,Anthos是一个很有吸引力的选择。>图片来源:GoogleCloudAnthos将集群组织成逻辑分组,允许对集群和资源(例如工作负载身份、命名空间、服务)进行逻辑管理。Anthos的另一个强大功能是AnthosConfigManagement,它由以下组件组成:ConfigSync:遵循GitOps模型,持续跨多个集群同步配置策略(例如命名空间、集群角色、安全策略)Controller:基于OpenPolicyAgentGatekeeper项目执行策略(例如不合规的API请求)BinaryAuthorization:要求运行在集群中的图像由受信任的授权机构签名HierarchicalController:基于“HierarchicalNamespaceController”项目,创建一个共享的公共Namespaces用于继承或命名空间的控制MicrosoftAzureArc>图片来源:C#角对于MicrosoftAzure用户,AzureArc提供与GoogleAnthos类似的功能。AzureLighthouse用于跨所有Kubernetes集群控制RBAC,AzurePolicy用于实时执行和评估策略违规行为。AzureArc还原生支持某些Azure数据服务,例如AzureSQL托管实例和AzurePostgresSQLHyperscale。Volterra几周前,F5宣布收购Volterra,这是一家成立于2019年的多/混合云管理初创公司,投资方包括KhoslaVentures、Mayfield、M12(微软)和SamsungVentures。在《TheControlPlaneofDistributedKubernetesPaaS》中,VolterraCEOAnkurSingla描述了创建Volterra的动机:没有强大的Kubernetes发行版或PaaS(例如OpenShift、CloudFoundry)为分布式集群和运营服务(如RBAC)提供一套全面的安全性/用户管理、秘密/密钥管理和多集群服务网格。Anthos、AzureArc和Rancher专注于将多个服务打包和部署到分布式集群,较少关注操作和多租户需求。自2019年以来,其他竞争对手增加了解决这些问题的功能,但当时Volterra的SaaS产品套件提供了一个独特的解决方案,用于跨多个云和边缘平台部署、连接、保护和运行应用程序:VoltConsole:用于集中管理应用程序的门户在VoltMesh和VoltStack上运行VoltStack:分布式Kubernetes平台,用于部署、保护和运行跨云和边缘运行的应用程序VoltMesh:用于在不同云和边缘上连接运行应用程序的高性能网络层Volterra全球网络:应用程序到应用程序网络提供出色的性能>图片图片来源:Volterra博客其他解决方案RafayManagedKubernetesPlatform:由Rafay(知名客户:Verizon)提供的解决方案VMWareTanzuMissionControl:VMWare的中央管理解决方案IBMCloudPak:IBM的多集群管理解决方案Admiralty:可用于开源或云托管/企业版nsGopaddle:以应用程序为中心的平台集中管理集群支持开源项目kubefed:OfficialKubernetesSIGprojectgardenerinalpha:Multi-cloud/clusterprojectKQueenwithstronglysupportfromSAP:Mirantis的旧项目似乎不再维护