基于Clusternet與OCM打造新一代開放的多集群管理平臺

來源: 騰訊云原生
作者:騰訊云原生
時間:2021-08-16
17661
云計算行業(yè)正在迎來了新一輪的增長,國內(nèi)外廠商和開源社區(qū)率先行動,分別發(fā)布并開源了Open Cluster Management(OCM)項目和Clusternet項目,統(tǒng)一管理多云多集群下的Kubernetes應(yīng)用,將云原生下沉實現(xiàn)云邊端一體化。

背景

隨著5G、物聯(lián)網(wǎng)設(shè)備的爆炸性增長以及智能終端不斷增強的計算能力,帶來了前所未有的數(shù)據(jù)量,傳統(tǒng)的中心集中式計算捉襟見肘?!靶禄ā睉?zhàn)略的實施,工業(yè)互聯(lián)網(wǎng)、車聯(lián)網(wǎng)/自動駕駛、智慧交通、云游戲及VR/AR等標(biāo)桿應(yīng)用引領(lǐng)產(chǎn)業(yè)融合,企業(yè)上云常態(tài)化,催生出分布式云,混合云,邊緣云等概念。Gartner預(yù)計到2025年,超過50%的組織將在其選擇的地點使用分布式云選項,從而實現(xiàn)業(yè)務(wù)模型轉(zhuǎn)型。企業(yè)生成的75%的數(shù)據(jù)將在傳統(tǒng)數(shù)據(jù)中心或云之外的,更接近最終用戶的邊緣創(chuàng)建和處理。

云計算行業(yè)正在迎來了新一輪的增長,國內(nèi)外廠商和開源社區(qū)率先行動,分別發(fā)布并開源了Open Cluster Management(OCM)項目和Clusternet項目,統(tǒng)一管理多云多集群下的Kubernetes應(yīng)用,將云原生下沉實現(xiàn)云邊端一體化?;贠CM與Clusternet打造新一代開放的多集群管理系統(tǒng),管理從中心到邊緣,從機房到終端的“集群網(wǎng)絡(luò)”。

Clusternet

Clusternet(Cluster Internet)是騰訊開源的多集群和應(yīng)用管理軟件,無論集群是運行在公有云、私有云、混合云還是邊緣云上,Clusternet都可以讓您像在本地運行一樣管理/訪問它們,用Kubernetes API集中部署和協(xié)調(diào)多集群的應(yīng)用程序和服務(wù)。通過Addon插件方式,用戶可以一鍵安裝、運維及集成,輕松地管理數(shù)以百萬計的Kubernetes集群,就像訪問Internet一樣自由便捷。

640.png

Clusternet面向未來混合云、分布式云和邊緣計算場景設(shè)計,支持海量集群的接入和管理,靈活的集群注冊能力可以適應(yīng)各種復(fù)雜網(wǎng)絡(luò)條件下的集群管理需求,通過兼容云原生的Kubernetes API簡化用戶的管理和運維成本,加快用戶業(yè)務(wù)的云原生轉(zhuǎn)型。

Clusternet為用戶提供:

一站式管理各類Kubernetes集群

Clusternet支持Pull模式和Push模式管理集群。即使集群運行在VPC內(nèi)網(wǎng)中、邊緣或防火墻后時,Clusternet仍可建立網(wǎng)絡(luò)隧道連接管理集群。

支持跨集群的服務(wù)發(fā)現(xiàn)及服務(wù)互訪

在無專網(wǎng)通道的情況下,仍可提供跨集群的訪問路由。

完全兼容原生Kubernetes API

完全兼容Kubernetes的標(biāo)準(zhǔn)API,比如:Deployment,StatefulSet,DaemonSet,同時也包括用戶自定義的CRD等,用戶從單集群應(yīng)用升級到多集群只需做簡單的配置,無需學(xué)習(xí)復(fù)雜的多集群API。

支持部署Helm Chart、Kubernetes原生的應(yīng)用以及自定義的CRD

支持Helm chart類型應(yīng)用,包括Chart的分發(fā)、差異化配置、狀態(tài)的匯聚等,和原生Kubernetes API的能力一致。

豐富、靈活的配置管理

提供了多種類型的配置策略,用戶可靈活的搭配這些配置來實現(xiàn)復(fù)雜的業(yè)務(wù)場景,比如多集群灰度發(fā)布。

Addon能力,架構(gòu)簡單

采用了Aggregated ApiServer的方式,且不依賴額外的存儲,架構(gòu)簡單,便于部署,大大降低了運維復(fù)雜度。

便捷接入

Clusternet提供了完善的對接能力,支持kubectl plugin[1]以及client-go[2],方便業(yè)務(wù)一鍵接入,具備管理多集群的能力。

OCM(Open Cluster Management)

OCM(Open Cluster Management)是一個社區(qū)驅(qū)動的項目,專注于Kubernetes應(yīng)用的多集群和多云場景。OCM旨在簡化部署在混合環(huán)境下的多Kubernetes集群的管理工作,為Kubernetes生態(tài)圈不同管理工具拓展多集群管理能力。OCM總結(jié)了多集群管理所需的基礎(chǔ)概念,采用了hub-agent的架構(gòu),定義了多項多集群管理的原語和基礎(chǔ)組件來達到多集群管理的要求:

·通過ManagedCluster API定義被管理的集群,同時OCM會安裝名為Klusterlet的agent在每個集群里來完成集群注冊,生命周期管理等功能。

·通過Placement API定義如何將配置或工作負載調(diào)度到哪些集群中。調(diào)度結(jié)果會存放在PlacementDecision API中。其他的配置管理和應(yīng)用部署工具可以通過PlacementDecision決定哪些集群需要進行配置和應(yīng)用部署。

·通過ManifestWork API定義分發(fā)到某個集群的配置和資源信息。

·通過ManagedClusterSet API對集群進行分組,并提供用戶訪問集群的界限。

·通過ManagedClusterAddon API定義管理探針如何部署到多個集群中以及其如何與hub端的控制面進行安全可靠的通信。

·通過利用OCM的API原語,簡化了開源多集群管理項目的部署和運維,拓展許多Kubernetes的單集群管理工具的多集群管理能力。例如:

·簡化submariner等多集群網(wǎng)絡(luò)解決方案的管理。利用OCM的插件管理功能將submariner的部署和配置集中到統(tǒng)一的管理平臺上。

·為應(yīng)用部署工具(KubeVela,ArgoCD等)提供豐富的多集群負責(zé)調(diào)度策略和可靠的資源分發(fā)引擎。

·拓展現(xiàn)有的Kubernetes單集群安全策略治理工具(Open Policy Agent,F(xiàn)alco等)使其具有多集群安全策略治理的能力。

640 (1).png

OCM還通過內(nèi)置的兩個管理插件分別用來進行應(yīng)用部署和安全策略管理。其中應(yīng)用部署插件采用了訂閱者模式,可以通過定義訂閱通道(Channel)從不同的源獲取應(yīng)用部署的資源信息。

Clusternet與OCM結(jié)合迸發(fā)更強大能力

通過上文介紹可以看出,Clusternet有著強大的集群接入和管理能力,支持各種復(fù)雜場景下的海量集群注冊和管理,滿足對未來混合云、分布式云和邊緣計算的平臺管理需求。同時,OCM有著成熟的多集群應(yīng)用管理能力,通過多項多集群管理的原語和基礎(chǔ)組件,實現(xiàn)各種Kubernetes項目和應(yīng)用的多集群發(fā)布和管理。二者結(jié)合實現(xiàn)優(yōu)勢互補,強強聯(lián)合,提供更為強大的多集群和應(yīng)用治理能力。

如何將OCM與Clusternet的能力相結(jié)合,來自Redhat的社區(qū)開發(fā)者(github:skeeey[3])實現(xiàn)了clusternet-addon[4],基于OCM的Addon-Framework[5],展示了OCM可以借助于Clusternet提供的強大集群管理能力,實現(xiàn)通過RBAC對子集群進行訪問、通過Push模式分發(fā)應(yīng)用到多個子集群中等。OCM社區(qū)將與Clusternet社區(qū)緊密合作,將與Clusternet項目的集成作為一個子項目持續(xù)推進。

640.webp.jpg

感興趣的同學(xué)可以查看clusternet-addon[6]了解更多信息,或持續(xù)關(guān)注OCM和Clusternet項目社區(qū)獲取最新的動態(tài)。

參與社區(qū)

OCM與Clusternet項目是Red Hat紅帽軟件,Tencent騰訊云與合作伙伴開源的重要項目,二者的結(jié)合展現(xiàn)了下一代開放的多集群管理平臺的強大能力和無與倫比的擴展性,為未來各種新技術(shù)、新業(yè)態(tài)和新服務(wù)提供了堅實的平臺基礎(chǔ)和無限的可能性。

Clusternet項目已發(fā)布v0.3.0版本,支持多集群和應(yīng)用管理的多種特性,隨著Clusternet的不斷迭代,未來將為用戶提供更加完備和強大的能力。

OCM項目和kubernetes生態(tài)系統(tǒng)緊密結(jié)合,實現(xiàn)了kubernetes sig-multicluster的多個設(shè)計方案,包括KEP-2149 Cluster ID[7]

和KEP-1645 Multi-Cluster Services API中關(guān)于clusterset的概念[8]。也在和其他開發(fā)者在社區(qū)共同推動Work API[9])的開發(fā)。

OCM與Clusternet項目仍在快速的開發(fā)迭代,歡迎行業(yè)公司和社區(qū)開發(fā)者們共同參與,交流學(xué)習(xí),共建未來更加開放,充滿無限可能的云世界。

鏈接

-OCM項目地址:https://github.com/open-cluster-management-io

-OCM官網(wǎng)地址:https://open-cluster-management.io

-Clusternet項目地址:https://github.com/clusternet/clusternet

參考資料

[1]kubectl plugin:【https://github.com/clusternet/kubectl-clusternet】

[2]client-go:【https://github.com/clusternet/clusternet/blob/main/examples/clientgo/READEME.md】

[3]skeeey:【https://github.com/skeeey】

[4]clusternet-addon:【https://github.com/skeeey/clusternet-addon】

[5]Addon-Framework:【https://github.com/open-cluster-management/addon-framework】

[6]clusternet-addon:【https://github.com/skeeey/clusternet-addon】

[7]KEP-2149 Cluster ID:【https://github.com/kubernetes/enhancements/tree/master/keps/sig-multicluster/2149-clusterid】

[8]clusterset的概念:【https://github.com/kubernetes/enhancements/tree/master/keps/sig-multicluster/1645-multi-cluster-services-api】

[9]Work API:【https://github.com/kubernetes-sigs/work-api】

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于騰訊云原生,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
個人VIP