在提倡數字化轉型的時代背景下,企業業務快速發展,跨區域的多云集群成為數據中心建設的基礎架構,多區域容災與多活、大規模多集群管理、跨云彈性與遷移等需求場景隨之出現,如何統一管理多云多集群下的 Kubernetes 應用,將云原生下沉實現云邊端一體化,成為了國內外技術廠商和云原生社區努力實現的目標。
為了讓開發者、用戶在多集群和混合環境下也能像在單個 Kubernetes 集群平臺上一樣,使用自己熟悉的開源項目和產品輕松開發功能,開源商業巨頭紅帽公司聯合螞蟻、阿里云共同發起并開源了 Open Cluster Management(OCM,開放集群管理)項目。
OCM 是一個由開源社區驅動的混合云多集群管理平臺,開發者可以通過 OCM 簡單開放的 API 來實現集群的注冊,工作負載分發,以及動態的資源配置路由等功能。
OCM 架構圖
OCM 總結了多集群管理所需的基礎概念,采用了 hub-agent 的架構,定義了多項多集群管理的原語和基礎組件來達到多集群管理的要求:
●通過 ManagedCluster API 定義被管理的集群,同時 OCM 會安裝名為 Klusterlet 的 agent 在每個集群里來完成集群注冊,生命周期管理等功能。
●通過 Placement API 定義如何將配置或工作負載調度到哪些集群中。調度結果會存放在 PlacementDecision API 中。其他的配置管理和應用部署工具可以通過 PlacementDecision 決定哪些集群需要進行配置和應用部署。
●通過 ManifestWork API 定義分發到某個集群的配置和資源信息。
●通過 ManagedClusterSet API 對集群進行分組,并提供用戶訪問集群的界限。
●通過 ManagedClusterAddon API 定義管理探針如何部署到多個集群中以及其如何與 hub 端的控制面進行安全可靠的通信。
通過利用 OCM 的 API 原語,簡化了開源多集群管理項目的部署和運維,拓展許多 Kubernetes 的單集群管理工具的多集群管理能力。例如:
●簡化 submariner 等多集群網絡解決方案的管理。利用 OCM 的插件管理功能將 submariner 的部署和配置集中到統一的管理平臺上。
●為應用部署工具(KubeVela, ArgoCD 等)提供豐富的多集群負責調度策略和可靠的資源分發引擎。
●拓展現有的 Kubernetes 單集群安全策略治理工具(Open Policy Agent,Falco 等)使其具有多集群安全策略治理的能力。
OCM 還通過內置的兩個管理插件分別用來進行應用部署和安全策略管理。其中應用部署插件采用了訂閱者模式,可以通過定義訂閱通道(Channel)從不同的源獲取應用部署的資源信息。
在最近更新的 0.5.0 版本中,OCM 還發布了命令行工具 clusteradm 的第一個版本。clusteradm 受 kubeadm 的啟發,主要目的是簡化 OCM 組件的安裝和集群注冊。用戶可以通過運行“clusteradm init”命令在中心集群上部署 OCM 管理組件,并使用“clusteradm join”命令在被管理集群部署 OCM 本地組件,并將集群注冊到中心集群。clusteradm 也在不斷發展,后續還會加入更多的 OCM 管理和監控子命令。
若想了解更多關于 OCM 項目與多云集群管理的技術干貨,敬請關注 12 月 9 日 - 10 日舉辦的 KubeCon + CloudNativeCon + Open Source Summit China 2021。屆時將有來自紅帽的資深云原生技術專家為大家帶來精彩的技術分享:
議題:使用 OCM clusteradm 加載集群
演講嘉賓:Mike Ng,紅帽工程師,開放集群管理(OCM)維護者
李向京,紅帽高級集群管理“Lifecycle Squad”負責人
議題簡介:Open Cluster Management (OCM) 是一個由開源社區驅動的混合云多集群管理平臺。在本次分享中,Mike Ng 和李向京將展示 OCM clusteradm 工具的演示,用于引導多集群環境,然后使用可用的 OCM API 將 Kubernetes 資源從多集群中的中樞集群部署到所需的被托管集群。
KubeCon + CloudNativeCon + Open Source Summit China 2021 由云原生計算基金會 CNCF 主辦。作為云原生領域的頂級技術盛會,歷年的 KubeCon + CloudNativeCon + Open Source Summit China 都匯聚了國內外最活躍的開源云原生社區、最先進的技術代表與行業的最佳落地實踐,推動云原生計算領域的知識更新和技術進步。本屆大會的議程安排已全面上線,更多詳情請查看大會官網。