在 Kube.NETes 環境中,多租戶是指在開發和測試等環境中,多個團隊、應用程序或用戶之間共享一個大型集群,主要是為了降低管理多個集群的成本和運營開銷。多租戶正在成為平臺團隊部署 Kubernetes 基礎設施的基本要求。
使用 Kubernetes 命名空間實現多租戶
到目前為止,實現多租戶的最流行的方法是使用 Kubernetes 命名空間。Kubernetes 命名空間提供了一種簡單的方法來劃分一組資源,例如 Pod、服務和部署,這些資源只能在該命名空間內訪問。
平臺團隊通常管理和操作集群,并具有完全集群級別的權限。它們通過創建一個或多個特定于每個團隊、應用程序、用戶的命名空間,并限制作為開發人員、DevOps 工程師和應用程序所有者的最終用戶對這些命名空間的訪問來實現多租戶。最終用戶只能執行特定于他們擁有所有權的命名空間的操作。這適用于絕大多數多租戶用例。在這里,vcluster 框架可能很有用。
使用 Vcluster 開源框架的多租戶
在某些極端情況下,限制最終用戶僅訪問命名空間不太合理,因為最終用戶需要訪問集群范圍對象(如 CRD、入口控制器、集群 API 服務器等),來進行日常開發工作。通常,參與開發自定義資源和自定義控制器以擴展 Kubernetes API、準入控制器以實現變異和驗證 Webhook ,以及其他可能需要自定義 Kubernetes 配置服務的用戶需要集群級訪問權限。虛擬集群(vcluster)是一個開源框架,旨在解決這個問題。vcluster 本質上是一個可以在物理集群中創建的虛擬集群。
默認情況下,Vcluster 在每個虛擬集群實例的主機集群命名空間中安裝 K3s 集群(可選為 k0s、k8s 和 EKS),并安裝 API 服務器、控制器管理器、存儲后端和(可選)調度程序等核心 Kubernetes 組件。最終用戶與虛擬群集 API 服務器交互并獲得對虛擬群集的完全訪問權限,但是仍保持資源隔離和安全性,因為他們僅限于主機命名空間,并且無權訪問主機群集 API 服務器。平臺團隊在主機群集中創建命名空間,為主機命名空間配置資源配額和策略,創建虛擬群集實例,并將虛擬群集移交給最終用戶。
部署 Vcluster 之前要回答的關鍵問題
雖然為一小組最終用戶部署 vcluster 相當簡單,但在進行大規模 vcluster 部署之前,平臺團隊必須要清晰的了解以下問題,并圍繞 vcluster 實施其他解決方案,才能滿足其組織的自動化、安全性、治理和合規性要求:
1、如何為每個命名空間創建主機級命名空間和資源配額,并將其映射到內部用戶、團隊?
平臺團隊仍然需要命名空間級多租戶的解決方案,因為必須先創建主機命名空間才能部署 vcluster 實例。
2、如何自動執行 vcluster 的生命周期管理以應對大規模使用?
平臺團隊需要解決諸如創建、修改、刪除虛擬集群實例、向最終用戶公開虛擬集群 API 服務器(使用入口或負載均衡器)、將虛擬集群 Kubeconfig 文件安全地分發給最終用戶以及升級虛擬集群實例 (K3), 以應對軟件更新和安全漏洞等問題。
3、如何確保每個虛擬集群中僅運行已批準和授權的群集范圍服務?是否在每個虛擬集群中部署它們?如何保證沒有漂移?
這些服務通常包括安全插件、日志記錄、監控、服務網格、入口控制器、存儲插件等。
4、如何在命名空間級別為主機命名空間創建網絡策略?
由于物理群集可能在多個 BU 和應用程序團隊之間共享,因此仍然需要此級別的網絡隔離,這需要在主機命名空間之間進行網絡隔離。
5、如何在每個虛擬集群中實施 OPA 等安全策略?是否需要在每個虛擬群集中部署這些策略?
大多數平臺團隊會根據其安全團隊的建議標準化一組安全策略,并將其部署到每個集群中,來保持安全狀況。
6、如何檢索每個虛擬集群的 Kubectl 審核日志?
對于某些組織來說,Kubectl 審計是一項關鍵要求,無論在什么樣的環境中都是如此。
7、如何處理成本分配?
由于資源由不同的開發團隊共享,因此它們可能屬于不同的成本中心,平臺團隊需要實施適當的按存儲容量使用計費策略,來進行成本分配。
8、如何讓其他開發人員工具(如ArgoCD)與vcluster一起工作?
像ArgoCD這樣的GitOps工具需要集群訪問才能部署應用程序,必須在ArgoCD中配置每個vcluster實例,以便最終用戶利用ArgoCD GitOps部署。這可能適用于其他常用工具,例如可觀測性、日志記錄和監視工具。
9、每個 vcluster 實例會產生哪些額外的資源和運營開銷?
每個虛擬集群本質上都是一個 K3s/K8s 集群,其中包含所有附加組件,例如安全插件、日志記錄插件、監控插件、入口控制器等。當部署更多虛擬集群實例時,每個 vcluster Kubernetes 資源和加載項可能會產生大量開銷。同樣,由于每個虛擬集群本質上都是一個 Kubernetes 集群,因此平臺團隊可能會產生額外的開銷來管理這些集群,來進行 Kubernetes 版本更新、補丁管理和附加組件管理。
10、vcluster 是否與實際生產環境相匹配?
對于某些組織,開發環境必須與生產環境緊密匹配。vcluster 支持其他發行版,例如 K8s 和 EKS,但平臺團隊必須檢查它是否等效于為接近生產環境的用例運行獨立集群。例如,EKS 支持許多高級功能,包括第三方 CNI、各種存儲類、自動擴展、IRSA 和附加組件,這些功能在虛擬 EKS 集群中可能不可用。
結論
對于大多數平臺團隊來說,基于命名空間的多租戶以及圍繞命名空間生命周期管理、安全性和成本控制的額外自動化,可以解決其多租戶用例。vcluster 解決了 Kubernetes 命名空間多租戶中的一個特定差距,沒有集群級別權限的最終用戶可以訪問其虛擬集群中的集群范圍對象。平臺團隊必須在內部驗證其最終用戶是否存在此類要求,根據其安全性、合規性和治理要求,進行徹底的成本效益分析,并圍繞它實施額外的自動化操作,以確保它的成功部署。
實施虛擬 Kubernetes 集群時的關鍵注意事項
網友整理
注冊時間:
網站:5 個 小程序:0 個 文章:12 篇
-
51998
網站
- 12
小程序
-
1030137
文章
-
747
會員
熱門網站
- 各百科-專業百科問答知識名網站 m.geelcn.com
- 免費軟件,綠色軟件園,手機軟件下載,熱門游戲下載中心-中當網 m.deelcn.com
- 魔扣科技 www.ylptlb.cn
- 體育新聞_國際體育資訊_全球體育賽事-中名網 www.feelcn.com/tiyu/tiyuxinwen/
- 食品安全_健康飲食_舌尖上的安全-中名網 www.feelcn.com/shenghuo/shipinanquan/
- 中合網 www.heelcn.com
- 中當網 www.deelcn.com
- 魔扣網站維護代運營 www.ylptlb.cn/tg
- 中合網-健康養生知識科普名站 m.heelcn.com
- 各百科 www.geelcn.com
最新入駐小程序
熱門文章
- 民以食為天 離線人臉識別助力打造智慧食堂 08-20
- 青桔單車發布3款新車 已進入150個城市 08-13
- 民間大神用Win7毛玻璃UI風格改造Win10:情懷滿滿 08-06
- 網站標題是否可以修改?怎么改不影響網站權重? 11-19
- 關于網站標題和正文的匹配度分析 09-29
- 從滾石、華納到環球,三個關鍵詞讀懂網易云為何成版權方最愛 08-12
- 天眼被注冊為煙草商標,中國控煙協會要求嚴查 08-13
- 深圳實現5G獨立組網全覆蓋 已累計建設5G基站超4.6萬個 08-17
- 滴滴App內嵌買車服務 已在十余城上線 08-06
- 關鍵詞的密度要結合頁面版式來調整 11-28