概述了流行的SaaS解決方案,包括Rancher,Google Anthos,Azure Arc和Volterra以及開源替代方案。
> Photo by Alina Grubnyak on Unsplash
隨著越來越多的組織將其基礎架構遷移到Kubernetes,問題不再僅僅是“如何在單個Kubernetes叢集上管理所有應用程式?”現在,越來越多的叢集管理員正在努力解決組織中如何管理多叢集的問題。雖然Kubernetes在單個叢集中支援名稱空間用於軟隔離,在虛擬叢集中用於硬多租戶,但有時可能需要執行多個叢集。
執行多個群集的最常見原因包括:
嚴格隔離:這可能是由合規性(例如,將生產/質量保證/登臺叢集與生產隔離)或客戶需求(例如,根據客戶要求執行專用服務)驅動的多區域:出於可用性,故障轉移,延遲或位置(例如,資料保護法)的原因,應用程式可能需要在多個區域中執行多雲:類似地,應用程式可能需要在多個雲上執行以實現可用性/災難恢復協議或避免供應商鎖定可擴充套件性:在極少數情況下,該服務可能會超出可擴充套件性的Kubernetes限制(例如,GKE叢集中的15萬個Pod)在一定程度上,可以透過良好的CI / CD管道來管理多個叢集。例如,在帶有CircleCI和ArgoCD的Kubernetes CI / CD中,我引入了利用應用程式模式的應用程式來引導單個叢集的方法。可以將其擴充套件到部署到不同叢集的管道,以簡化工作流程。
但是,真正的多叢集管理解決方案需要的不僅僅是應用程式部署。有安全注意事項(例如RBAC,多群集日誌記錄),配置/秘密管理以及不同Kubernetes群集之間的功能奇偶校驗。在本文中,我們將介紹一些流行的託管解決方案以及用於管理多個Kubernetes叢集的開源專案。
Rancher> 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等外部解決方案即可跨應用程式配置負載平衡。
> Image Credit: Rancher
Rancher Lab的所有專案(包括Rancher,RKE,Longhorn和K3s)都是開源的,但是如果您需要SaaS解決方案,它們還提供託管版本。
谷歌Anthos托馬斯·庫裡安(Thomas Kurian)接管Google Cloud時,他繼承了Oracle的多雲戰略構想,我在“為什麼BigQuery Omni是一件大事”中作了詳細介紹。Google Anthos是一個基於Kubernetes的開放平臺,可以將GKE擴充套件到混合和多雲環境,非常適合此策略。谷歌是Kubernetes的領導者,這已經不是什麼秘密了。對於希望採用Kubernetes的現有GKE使用者和新組織來說,Anthos是一個誘人的選擇。
> Image Credit: Google Cloud
Anthos將群集組織成可以對群集和資源(例如工作負載標識,名稱空間,服務)進行邏輯管理的邏輯分組。Anthos的另一個強大功能是Anthos Config Management,它由以下元件組成:
Config Sync:遵循GitOps模型,以跨多個叢集(例如,名稱空間,叢集角色,安全策略)持續同步配置策略控制器:基於Open Policy Agent Gatekeeper專案來實施策略(例如,不合規的API請求)二進位制授權:要求叢集中執行的映像由受信任的機構簽名層次控制器:基於“層次名稱空間控制器”專案,建立共享公共父名稱空間以進行繼承或控制的名稱空間Microsoft Azure Arc> 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的舊專案似乎不再維護如果我錯過了市場上的任何其他解決方案,請發表評論,我將進行相應的更新。