多集群Kubernetes管理解決方案
本文概述了流行的SaaS解決方案,包括Rancher,Google Anthos,Azure Arc和Volterra以及開源替代方案。
> Photo by Alina Grubnyak on Unsplash
隨著越來越多的組織將其基礎(chǔ)架構(gòu)遷移到Kubernetes,問題不再僅僅是“如何在單個Kubernetes集群上管理所有應(yīng)用程序?”現(xiàn)在,越來越多的集群管理員正在努力解決組織中如何管理多集群的問題。雖然Kubernetes在單個集群中支持名稱空間用于軟隔離,在虛擬集群中用于硬多租戶,但有時可能需要運行多個集群。
運行多個群集的最常見原因包括:
- 嚴格隔離:這可能是由合規(guī)性(例如,將生產(chǎn)/質(zhì)量保證/登臺集群與生產(chǎn)隔離)或客戶需求(例如,根據(jù)客戶要求運行專用服務(wù))驅(qū)動的
- 多區(qū)域:出于可用性,故障轉(zhuǎn)移,延遲或位置(例如,數(shù)據(jù)保護法)的原因,應(yīng)用程序可能需要在多個區(qū)域中運行
- 多云:類似地,應(yīng)用程序可能需要在多個云上運行以實現(xiàn)可用性/災(zāi)難恢復(fù)協(xié)議或避免供應(yīng)商鎖定
- 可擴展性:在極少數(shù)情況下,該服務(wù)可能會超出可擴展性的Kubernetes限制(例如,GKE集群中的15萬個Pod)
在一定程度上,可以通過良好的CI / CD管道來管理多個集群。例如,在帶有CircleCI和ArgoCD的Kubernetes CI / CD中,我引入了利用應(yīng)用程序模式的應(yīng)用程序來引導(dǎo)單個集群的方法。可以將其擴展到部署到不同集群的管道,以簡化工作流程。
但是,真正的多集群管理解決方案需要的不僅僅是應(yīng)用程序部署。有安全注意事項(例如RBAC,多群集日志記錄),配置/秘密管理以及不同Kubernetes群集之間的功能奇偶校驗。在本文中,我們將介紹一些流行的托管解決方案以及用于管理多個Kubernetes集群的開源項目。
Rancher
> Image Credit: Rancher
在Google宣布Anthos和AWS推出EKS Anywhere之前,Rancher與OpenShift和Cloud Foundry一起是少數(shù)支持企業(yè)應(yīng)用的選項之一,以支持在混合和多云基礎(chǔ)架構(gòu)上運行Kubernetes。Rancher提供了一個控制平面來創(chuàng)建或添加現(xiàn)有的Kubernetes集群。
自Rancher v2.2.0起已支持多集群應(yīng)用程序,并且從Rancher v2.5開始,一個名為Fleet(基于GitOps原理的多集群應(yīng)用程序部署)的較新項目現(xiàn)已可用。跨多個群集分布的應(yīng)用程序還可以從Rancher的全局DNS中受益,從而無需使用Cloudflare等外部解決方案即可跨應(yīng)用程序配置負載平衡。
> Image Credit: Rancher
Rancher Lab的所有項目(包括Rancher,RKE,Longhorn和K3s)都是開源的,但是如果您需要SaaS解決方案,它們還提供托管版本。
谷歌Anthos
托馬斯·庫里安(Thomas Kurian)接管Google Cloud時,他繼承了Oracle的多云戰(zhàn)略構(gòu)想,我在“為什么BigQuery Omni是一件大事”中作了詳細介紹。Google Anthos是一個基于Kubernetes的開放平臺,可以將GKE擴展到混合和多云環(huán)境,非常適合此策略。谷歌是Kubernetes的領(lǐng)導(dǎo)者,這已經(jīng)不是什么秘密了。對于希望采用Kubernetes的現(xiàn)有GKE用戶和新組織來說,Anthos是一個誘人的選擇。
> Image Credit: Google Cloud
Anthos將群集組織成可以對群集和資源(例如工作負載標識,名稱空間,服務(wù))進行邏輯管理的邏輯分組。Anthos的另一個強大功能是Anthos Config Management,它由以下組件組成:
- Config Sync:遵循GitOps模型,以跨多個集群(例如,名稱空間,集群角色,安全策略)持續(xù)同步配置
- 策略控制器:基于Open Policy Agent Gatekeeper項目來實施策略(例如,不合規(guī)的API請求)
- 二進制授權(quán):要求集群中運行的映像由受信任的機構(gòu)簽名
- 層次控制器:基于“層次命名空間控制器”項目,創(chuàng)建共享公共父命名空間以進行繼承或控制的命名空間
Microsoft Azure Arc
> Image Credit: C# Corner
對于Microsoft Azure用戶,Azure Arc提供了與Google Anthos類似的功能。Azure Lighthouse用于控制所有Kubernetes群集之間的RBAC,以及Azure策略用于實時實施和評估策略違規(guī)。Azure Arc還本地支持某些Azure數(shù)據(jù)服務(wù),例如Azure SQL托管實例和Azure PostgresSQL Hyperscale。
Volterra
幾周前,F(xiàn)5宣布了對Volterra的收購,Volterra是一家多/混合云管理初創(chuàng)公司,于2019年成立,由Khosla Ventures,Mayfield,M12(Microsoft)和Samsung Ventures投資。在“分布式Kubernetes PaaS的控制平面”中,Volterra首席執(zhí)行官Ankur Singla描述了創(chuàng)建Volterra的動機:
- 沒有強大的Kubernetes發(fā)行版或PaaS(例如OpenShift,Cloud Foundry)為分布式集群提供一套全面的安全和運營服務(wù),例如RBAC /用戶管理,機密/密鑰管理和多集群服務(wù)網(wǎng)格。
- Anthos,Azure Arc和Rancher專注于將多種服務(wù)打包和部署到分布式群集,而較少關(guān)注于運營和多租戶需求。
自2019年以來,其他競爭對手已經(jīng)添加了一些功能來解決這些問題,但是當(dāng)時Volterra的SaaS產(chǎn)品套件提供了獨特的解決方案,可以跨多個云和邊緣平臺部署,連接,保護和運行應(yīng)用程序:
- VoltConsole:用于集中管理在VoltMesh和VoltStack上運行的應(yīng)用程序的門戶
- VoltStack:分布式Kubernetes平臺,用于部署,保護和運行跨云和邊緣運行的應(yīng)用程序
- VoltMesh:高性能網(wǎng)絡(luò)層,用于連接運行在不同云和邊緣上的應(yīng)用程序
- Volterra全球網(wǎng)絡(luò):應(yīng)用程序到應(yīng)用程序網(wǎng)絡(luò)可提供出色的性能 > Image Credit: Volterra Blog
其他解決方案
- Rafay托管Kubernetes平臺:Rafay提供的解決方案(著名客戶:Verizon)
- VMWare Tanzu Mission Control:VMWare的中央管理解決方案
- IBM Cloud Pak:IBM的多集群管理解決方案
- 金鐘:提供開源或云托管/企業(yè)版
- Gopaddle:以應(yīng)用程序為中心的平臺到集中式集群管理支持
開源項目
- kubefed:alpha中的官方Kubernetes SIG項目
- 園丁:在SAP的大力支持下的多云/集群項目
- KQueen:Mirantis的舊項目似乎不再維護