云計算發展史,就是虛擬化技術的發展史。近20年來云計算與互聯網相互促進高速發展,中心云技術成為全社會通用的基礎設施。隨著物聯網、人工智能等技術的不斷發展,尤其是產業互聯網發展落地,中心云計算開始相形見絀,分散式邊緣計算在當下被重新寄予厚望。如果中心云計算是由技術創新驅動的,那么邊緣計算一定是業務價值驅動的。
那到底什么是邊緣計算?邊緣計算有哪些分類?邊緣計算與中心云的關系是什么?本文將抽絲剝繭,深入淺出,詳細闡述對邊緣計算與云原生的理解與思考。
一邊緣計算的理解與思考
1邊緣計算的定義
邊緣計算當前沒有準確定義,從IT云計算領域視角,邊緣計算被看作中心云計算的拓展。邊緣計算產業聯盟對邊緣計算的定義:“在靠近物或數據源頭的網絡邊緣側,融合網絡、計算、存儲、應用核心能力的開放平臺,就近提供邊緣智能服務,滿足行業數字化在敏捷連接、實時業務、數據優化、應用智能、安全與隱私保護等方面的關鍵需求”。從CT電信領域視角,邊緣計算最初也被稱為移動邊緣計算(MEC)。歐洲電信標準協會(ETSI)對MEC的定義:“移動邊緣計算在移動網絡的邊緣、無線接入網(RAN)的內部以及移動用戶的近處提供了一個IT服務環境以及云計算能力”。
邊緣計算的定義各有側重,但核心思想基本一致——邊緣計算是基于云計算核心技術,構建在邊緣基礎設施之上的新型分布式計算形式,在邊緣端靠近最終用戶提供計算能力,是一種靠近數據源的現場云計算。
中心云計算憑借其強大的數據中心,為業務應用提供大規模池化,彈性擴展的計算、存儲、網絡等基礎設施服務,更適用于非實時、長周期數據、業務決策場景;邊緣計算則聚焦在實時性、短周期數據、本地決策等業務場景,比如當下熱門的音視頻直播、IoT、產業互聯網、虛擬現實甚至元宇宙等,將工作負載下沉至離終端設備或者靠近最終用戶的地方,以此實現更低的網絡延遲,提升用戶的使用體驗。
2“章魚式”邊緣計算
邊緣是相對中心式計算的邊緣分散式計算。邊緣計算的核心目標是快速決策,將中心云的計算能力拓展至“最后一公里”。因此它不能獨立于中心云,而是在云-邊-端的整體架構之下,有中心式管控決策,也有分散式邊緣自主決策,即章魚式邊緣計算。
如上圖漫畫中所示,章魚全身神經元中心式腦部占40%,其余60%在分散式腿部,形成1個大腦總控協調+N個小腦分散執行的結構。1個大腦擅長全局調度,進行非實時、長周期的大數據處理與分析;N個小腦側重局部、小規模數據處理,適用于現場級、實時、短周期的智能分析與快速決策。
章魚式邊緣計算采用中心云+邊緣計算的分布式云邊一體化架構,海量終端采集到數據后,在邊緣完成小規模局部數據的實時決策處理,而復雜大規模的全局性決策處理則匯總至中心云深入分析處理。
3邊緣計算的位置
邊緣計算位于中心云及終端之間,將云計算能力由中心下沉到邊緣,通過云邊協同的架構解決特定的業務需求,能最大程度降低傳輸時延,這也是邊緣計算的核心價值。但中心云與終端之間的網絡傳輸路徑經由接入網(距離30公里,延遲5到10毫秒),匯聚網,城際網(距離50到100公里,延遲15到30毫秒)到骨干網(距離200公里,延遲50毫秒),最后才到數據中心(假定數據中心IDC都在骨干網),耗時數據是正常網絡擁塞的撥測統計值,即業務側感知的實際延遲數據,雖不是非常精確,但足夠輔助架構決策。
云計算能力由中心逐步下沉到邊緣,節點數量增多,覆蓋范圍縮小,運維服務成本快速增加。根據國內網絡(國內有多張骨干網,分別是電信CHINANET與CN2,聯通CNCNET以及移動CMNET)現狀,骨干網節點,城際網節點,匯聚網節點,接入網節點,以及數以萬計的業務現場計算節點都可以安置邊緣計算,因此范圍太廣難以形成統一標準。因此我們說中心云計算由技術定義,邊緣計算由網絡與業務需求定義。
邊緣計算生態參與者眾多,云廠商、設備廠商、運營商三大關鍵服務商方以及一些新型AI服務商等,都是從各自現有優勢延伸,拓展更多客戶及市場空間。設備商借助物聯網逐漸構建單一功能的專業云;云廠商從中心化的公有云開始下沉,走向分布式區域云,區域云之間通過云聯網打通,形成一個覆蓋更大的云。運營商在互聯網時代被公有云及繁榮的移動應用完全屏蔽只能充當管道,但在邊緣計算時代,業務及網絡定義邊緣計算,運營商重新回歸焦點,不可替代。
4邊緣計算的類型
(1)網絡定義的邊緣計算:
通過優化終端與云中心網絡路徑,將中心云能力逐漸下沉至靠近終端,實現業務就近接入訪問。從中心到邊緣依次分為區域云/中心云,邊緣云/邊緣計算,邊緣計算/本地計算三大類型:
區域云/中心云:將中心云計算的服務在骨干網拓展延伸,將中心化云能力拓展至區域,實現區域全覆蓋,解決在骨干網上耗時,將網絡延遲優化至30ms左右,但邏輯上仍是中心云服務。
邊緣云/邊緣計算:將中心云計算的服務沿著運營商的網絡節點延伸,構建中小規模云服務或類云服務能力,將網絡延遲優化至15ms左右,比如多接入邊緣計算(MEC)、CDN。
邊緣計算/本地計算:主要是接近終端的現場設備及服務能力,將終端部分邏輯剝離出來,實現邊緣自主的智能服務,由云端控制邊緣的資源調度、應用管理與業務編排等能力,將網絡延遲優化至5ms左右,比如多功能一體機、智能路由器等。
總的來說,基于網絡定義的邊緣計算,更多是面向消費互聯業務及新型2C業務,將云中心的能力及數據提前下沉至邊緣,除了經典的CDN,視頻語音業務外,還有今年大火的元宇宙等。
當前大部分面向消費互聯業務都是通過安置在骨干網的中心云計算能力支持,時延在30ms到50ms,遠小于本身云端后端業務處理的延遲;算力下沉至邊緣的初衷,主要是實現中心云海量請求壓力分散,用戶體驗優化等,對業務都屬于錦上添花,而非雪中送炭。
這里說一下運營商網絡,中心云計算技術,是將數據中心內部網絡全部虛擬化,即云內網絡,衍生出VPC,負載均衡等諸多產品;數據中心外部幾乎完全屏蔽運營商網絡,只提供彈性公網IP及互聯網出口帶寬服務,中心云計算與運營商網絡沒有融合;但從中心云計算演進到邊緣計算,是強依賴網絡將中心云與邊緣鏈接起來,如果中心云是大腦,邊緣計算是智能觸角,那么網絡就是神經,就是動脈血管,但實際上整體網絡規劃與建設發生在云計算發展之前,并不是專門服務云計算的,所以中心云計算與運營商網需要融合,即云網融合,云網融合最終目標是實現云能力的網絡化調度編排,網絡能力的云化快速定義。希望借助新型業務需求和云技術創新,驅動運營商網絡架構深刻變革升級開放。
當前,網絡的能力極大限制了云計算的發展,在邊緣計算及物聯網建設過程中尤為明顯;云網融合與算力網絡依然還是運營商的獨家游戲,新一代5G顛覆性技術變革,引爆整個領域的顛覆性巨變,也只解決了海量設備接入及設備低延遲接入的問題,后端整體配套及解決方案明顯跟不上。就當前情況來看,依然還是5G找業務的尷尬局面,未來5G在實體產業領域(港口,碼頭,礦山等)領域,相比消費者領域,相信會帶來更大變革與價值。
(2)業務定義的邊緣計算:
除了面向消費者的互聯網邊緣場景,邊緣計算更多的是面向實體產業及智慧化社會衍生的場景。
對于實體產業場景來說,由于歷史原因,在邊緣及現場存在大量異構的基礎設施資源;通過業務需求驅動邊緣計算平臺的建設,不僅要整合利用現有基礎設施資源,還要將中心云計算技術及能力下沉至邊緣及現場,實現大量存量業務運營管控上云,海量數據統一入湖,以此支持整個企業的數字化轉型。
對于智慧化社會衍生場景來說,越是新型的業務,對網絡時延敏感越高,數據量越大,結構化數據逐漸轉化成非結構化數據,需要人工智能,神經網絡等高等智能化技術支持。
當前對網絡時延敏感的新型業務場景,都是通過云端總控管理,設備現場實時計算這種分布式架構策略,以此減弱對網絡的強依賴。面向業務將邊緣計算分為智能設備/專業云及產業邊緣/行業云兩種類型:
智能設備/專業云:基于云計算能力之上,圍繞智能設備提供整體化,有競爭力的解決方案,包含智能設備、云端的服務以及端到云之間的邊緣側服務,比如視頻監控云、G7貨運物聯等;
產業邊緣/行業云:也基于云計算能力之上,圍繞行業應用及場景,提供套件產品及解決方案,比如物流云、航天云等。
總的來說,基于業務定義的邊緣計算,更多是面向智能設備及實體產業,對智能設備,從AVG,密集式存儲,機械手臂等單一功能的智能設備,到無人機,無人駕駛車等超復雜的智能設備,云計算能力不僅支撐設備控制管理應用的運行,同時借助中心云計算能力拓展至邊緣側,解決這種產品上云,無法集中化標準化管理難題;對產業邊緣,通過云計算技術,結合行業場景的抽象總結,構建行業通用的產品及解決方案,隨著整個產業互聯網加速建設,是邊緣計算未來發展的重點方向。
5小結
對于規模較大的企業,云邊場景非常復雜,中心云計算平臺與邊緣計算平臺建設,不僅應對業務需求,還要面臨諸多基礎設施問題:在中心云計算面臨多云使用多云互通問題;在邊緣網絡鏈路面臨多運營商的骨干網,多云運營商網絡及多云的云網融合問題;在端側接入網面臨多運營商5G網絡的共享的問題等,很多問題只能通過治理的手段應對,無法從技術平臺層面徹底解決。
總的來說,邊緣計算范圍大,場景泛,目前整個行業缺少經典的案例及標準。因此推動邊緣計算落地,一定是面向真實的業務場景及需求整體規劃,面向價值逐步建設。
二Kubernetes從中心走向邊緣
Kubernetes遵循以應用為中心的技術架構與思想,以一套技術體系支持任意負載,運行于任意基礎設施之上;向下屏蔽基礎設施差異,實現底層基礎資源統一調度及編排;向上通過容器鏡像標準化應用,實現應用負載自動化部署;向外突破中心云計算的邊界,將云計算能力無縫拓展至邊緣及現場,快速構建云邊一體基礎設施。
將云原生技術從中心拓展到邊緣,不僅實現了云邊基礎設施技術架構大一統,業務也實現了云邊自由編排部署。相對于Kubernetes在中心云的革命性創新,在邊緣場景雖優勢明顯,但缺點也很致命,因為邊緣側存在資源有限、網絡受限不穩定等特殊情況,需要根據不同業務場景,選擇不同Kubernetes邊緣方案。
1 Kubernetes架構及邊緣化的挑戰
Kubernetes是典型的分布式架構,Master控制節點是集群“大腦”,負責管理節點,調度Pod以及控制集群運行狀態。Node工作節點,負責運行容器(Container),監控/上報運行狀態。邊緣計算場景存在以下比較明顯的挑戰:
狀態強一致且集中式存儲架構,屬于中心云計算的大成產品,基于大規模的池化資源的編排調度實現業務持續服務。
Master管控節點與Worker工作節點通過List-Watch機制,實現狀態任務實時同步,但是流量較大,Worker工作節點完全依賴Master節點持久化數據,無自治能力。
Kubelet承載太多邏輯處理,各種容器運行時各種實現的兼容,還有Device Plugin硬件設備驅動,運行占用資源高達700M;對資源有限的邊緣節點負擔太重,尤其是低配的邊緣設備。
邊緣計算涉及的范圍大、場景復雜,尚無統一標準;Kubernetes開源社區的主線版本并無邊緣場景的適配計劃。
2 Kubernetes邊緣化運行方案
針對中心云計算及邊緣計算這種云邊分布式架構,需要將Kubernetes適配成適合邊緣分布式部署的架構,通過多集群管理實現統一管理,實現中心云管理邊緣運行,整體分為三種方案:
集群Cluster:將Kubernetes標準集群下沉至邊緣,優點是無需Kubernetes做定制化研發,同時可以支持Kubernetes多版本,支持業務真正實現云邊架構一致;缺點是管理資源占用多。方案比較適合區域云/中心云、邊緣計算/本地計算以及規模較大的產業邊緣場景。
單節點Single Node:將Kubernetes精簡,部署在單節點設備之上,優點與集群Cluster方案一致,缺點是Kubernetes能力不完整,資源的占用會增加設備的成本,對業務應用無法保證云邊一致的架構部署運行,沒有解決實際問題。
邊緣節點Remote Node:基于Kubernetes二次開發增強擴展,將Kubernetes解耦適配成云邊分布式架構的場景,中心化部署Master管理節點,分散式部署Worker管理節點。
此外,一致性是邊緣計算的痛點,在邊緣增加一個Cache即可實現斷網特殊情況的邊緣自治,同時可以保證正常網絡情況的數據一致;還有就是Kubelet比較重的問題,隨著Kubernetes放棄Docker已經開始精簡;同時硬件更新迭代較快,相比少量硬件成本,保持Kubernetes原生及通用性為大。其實更希望Kubernetes社區本身提供適配邊緣化方案,同時考慮為Kubelet增加緩存機制。
3 Kubernetes邊緣容器快速發展
Kubernetes已成為容器編排和調度的事實標準,針對邊緣計算場景,目前國內各個公有云廠商都開源了各自基于Kubernetes的邊緣計算云原生項目,比如阿里云向CNCF貢獻的OpenYurt,采用邊緣節點Remote Node方案,是業界首個開源的非侵入式邊緣計算云原生平臺,秉承“Extending your native Kubernetes to Edge”的非侵入式設計理念,擁有可實現邊緣計算全場景覆蓋的能力。華為、騰訊、百度等,也都開源了自己的邊緣容器平臺。
邊緣容器的快速發展帶動了領域的創新,但一定程度上也導致構建邊緣計算平臺時難以抉擇。從技術架構來看,幾個邊緣容器產品總的架構思路主要是將Kubernetes解耦成適合云邊、弱網絡及資源稀缺的邊緣計算場景,本質上無太大差異;從產品功能來看也是如此,基本上都涵蓋云邊協同、邊緣自治、單元化部署功能等。
4如何構建云邊一體化云原生平臺
現階段,圍繞Kubernetes容器平臺,構建云邊一體化云原生基礎設施平臺能力是邊緣計算平臺的最佳選擇,通過云端統一的容器多集群管理,實現分散式集群統一管理,同時標準化Kubernetes集群規格配置:
標準集群(大規模):支持超過400個節點的大規模集群,配置為ETCD+Master 3臺8c16G,Prometheus+Ingress 5臺8C16G,N*Work節點;主要是業務規模較大的云原生應用運行場景;
標準集群(中等規模):支持超過100個節點以內的集群,ETCD+Master+Prometheus 3臺8c16G,N*Work節點;主要是業務規模中等的場景;
邊緣原生容器集群:在云端部署集群管理節點,將邊緣節點單獨部署業務現場,支持運行單業務場景的應用,比如IoT物理設備接入協議解析應用,視頻監控分析AI算法模型等業務場景。
按照業務場景需求選擇最優容器集群方案,其中邊緣容器集群方案,與其他集群方案差別較大,其他集群依然保持中心云集群服務一致,基礎資源集中并且池化,所有應用共享整個集群資源;而邊緣容器集群Master管理節點集中部署,共享使用;Worker節點都是分散在業務現場,按需自助增加,自運維且獨占使用。
當前邊緣容器領域短時間內很難有大一統的開源產品,因此現階段建議通過標準的Kubernetes API來集成邊緣原生容器集群,這種兼容所有邊緣容器的中庸方案,如果非要擇其一,建議是OpenYurt,非侵入式設計,整體技術架構及實現更加優雅。
三OpenYurt:智能邊緣計算平臺開源實踐
OpenYurt以上游開源項目Kubernetes為基礎,針對邊緣場景適配的發行版。是業界首個依托云原生技術體系、“零”侵入實現的智能邊緣計算平臺。具備全方位的“云、邊、端一體化”能力,能夠快速實現海量邊緣計算業務和異構算力的高效交付、運維及管理。
1設計原則
OpenYurt采用當前業界主流的“中心管控、邊緣運行”的云邊分布式協同技術架構,始終貫徹“Extending your native Kubernetes to Edge”理念,同時遵守以下設計原則:
“云邊一體化”原則:保證與中心云一致的用戶體驗及產品能力的基礎上,通過云邊管控通道將云原生能力下沉至邊緣,實現海量的智能邊緣節點及業務應用,基礎架構提升至業界領的云原生架構的重大突破。
“零侵入”原則:確保面向用戶開放的API與原生Kubernetes完全一致。通過節點網絡流量代理方式(proxy node network traffic),對Worker工作節點應用生命周期管理新增一層封裝抽象,實現分散式工作節點資源及應用統一管理及調度。同時遵循“UpStream First”開源法則;
“低負載”原則:在保障平臺功能特性及可靠性的基礎上,兼顧平臺的通用性,嚴格限制所有組件的資源,遵循最小化,最簡化的設計理念,以此實現最大化覆蓋邊緣設備及場景。
“一棧式”原則:OpenYurt不僅實現了邊緣運行及管理的增強功能,還提供了配套的運維管理工具,實現將原生Kubernetes與支持邊緣計算能力的Kubernetes集群的相互一鍵高效轉換;
2功能特性
OpenYurt基于Kubernetes強大的容器編排、調度能力,針對邊緣資源有限,網絡受限不穩定等情況適配增強;將中心云原生能力拓展至分散式邊緣節點,實現面向邊緣業務就近低延遲服務;同時打通反向安全控制運維鏈路,提供便捷高效的,云端集中式邊緣設備及應用的統一運維管理能力。其核心功能特性如下:
邊緣節點自治:在邊緣計算場景,云邊管控網絡無法保證持續穩定,通過增強適配解決原生Worker工作節點無狀態數據,強依賴Master管控節點數據且狀態強一致機制,這些在邊緣場景不適配的問題。從而實現在云邊網絡不暢的情況下,邊緣工作負載不被驅逐,業務持續正常服務;即使斷網時邊緣節點重啟,業務依然能恢復正常;即邊緣節點臨時自治能力。
協同運維通道:在邊緣計算場景,云邊網絡不在同一網絡平面,邊緣節點也不會暴露在公網之上,中心管控無法與邊緣節點建立有效的網絡鏈路通道,導致所有原生的Kubernetes運維APIs(logs/exec/metrics)失效。適配增強Kubernetes能力,在邊緣點初始化時,在中心管控與邊緣節點之間建立反向通道,承接原生的Kubernetes運維APIs(logs/exec/metrics)流量,實現中心化統一運維;
邊緣單元化負載:在邊緣計算場景,面向業務一般都是“集中式管控,分散式運行”這種云邊協同分布式架構;對于管理端,需要將相同的業務同時部署到不同地域節點;對于邊緣端,Worker工作節是一般是分散在廣域空間,并且具有較強的地域性,跨地域的節點之間網絡不互通、資源不共享、資源異構等明顯的隔離屬性。適配增強Kubernetes能力,基于資源,應用及流量三層實現對邊緣負載進行單元化管理調度。
通過OpenYurt開源社區引入更多的參與方共建,聯合研發方式提供更多的可選的專業功能,OpenYurt特性正在逐步完善,并擴大覆蓋能力:
邊緣設備管理:在邊緣計算場景,端側設備才是平臺真正的服務對象;基于云原生理念,抽象非侵入、可擴展的設備管理標準模型,無縫融合Kubernetes工作負載模型與IoT設備管理模型,實現平臺賦能業務的最后一公里。目前,通過標準模型完成EdgeX Foundry開源項目的集成,極大的提升了邊緣設備的管理效率。
本地資源管理:在邊緣計算場景,將邊緣節點上已有的塊設備或者持久化內存設備,初始化成云原生便捷使用的容器存儲,支持兩種本地存儲設備:(一)基于塊設備或者是持久化內存設備創建的LVM;(二)基于塊設備或者是持久化內存設備創建的QuotaPath。
3 OpenYurt設計架構及原理
(1)設計架構
原生Kubernetes是一個中心式的分布式架構,Master控制節點負責管理調度及控制集群運行狀態;Worker工作節點負責運行容器(Container)及監控/上報運行狀態;
OpenYurt以原生Kubernetes為基礎,針對邊緣場景將中,心式分布式架構(Cloud Master,Cloud Worker)解耦適配為中心化管控分散式邊緣運行(Cloud Master,Edge Worker),形成一個中心式大腦,多個分散式小腦的章魚式云邊協同分布式架構,其主要核心點是:
將元數據集中式且強一致的狀態存儲,分散至邊緣節點,并且調整原生Kubernetes調度機制,實現自治節點狀態異常不觸發重新調度,以此實現邊緣節點臨時自治能力;
保證Kubernetes能力完整一致,同時兼容現有的云原生生態體系的同時,盡最大肯能將云原生體系下沉至邊緣;
將中心大規模資源池化,多應用委托調度共享資源的模式,適配為面向地域小規模甚至單節點資源,實現邊緣場景下,更精細化的單元化工作負載編排管理;
面向邊緣實際業務場景需求,通過開放式社區,無縫集成設備管理、邊緣AI、流式數據等,面向邊緣實際業務場景的開箱的通用平臺能力,賦能更多的邊緣應用場景。
(2)實現原理
OpenYurt踐行云原生架構理念,面向邊緣計算場景實現云邊協同分布式架構及中心管控邊緣運行的能力:
針對邊緣節點自治能力,一方面,通過新增YurtHub組件實現邊緣向中心管控請求(Edge To Cloud Request)代理,并緩存機制將最新的元數據持久化在邊緣節點;另一方面新增YurtControllerManager組件接管原生Kubernetes調度,實現邊緣自治節點狀態異常不觸發重新調度;
針對Kubernetes能力完整及生態兼容,通過新增YurtTunnel組件,構建云邊(Cloud To Edge Request)反向通道,保證Kubectl,Promethus等中心運維管控產品一致能力及用戶體驗;同時將中心其他能力下沉至邊緣,包含各不同的工作負載及Ingress路由等;
針對邊緣單元化管理能力,通過新增YurtAppManager組件,同時搭配NodePool,YurtAppSet(原UnitedDeployment),YurtAppDaemon,ServiceTopology等實現邊緣資源,工作負載及流量三層單元化管理;
針對賦能邊緣實際業務平臺能力,通過新增NodeResourceManager實現邊緣存儲便捷使用,通過引入YurtEdgeXManager/YurtDeviceController實現通過云原生模式管理邊緣設備。
4核心組件
OpenYurt所有新增功能及組件,均是通過Addon與Controller方式來實現其核心必選與可選組件如下:
1.YurtHub(必選):有邊緣(edge)和云中心(cloud)兩種運行模式;以Static Pod形態運行在云邊所有節點上,作為節點流量的SideCar,代理節點上組件和kube-apiserver的訪問流量,其中邊緣YurtHub會緩存的數據,實現臨時邊緣節點自治能力。
2.YurtTunnel(必選):由Server服務端與Agent客戶端組成,構建雙向認證加密的云邊反向隧道,轉發云中心(cloud)到邊緣(edge)原生的Kubernetes運維APIs(logs/exec/metrics)請求流量。其中Server以Deployment工作負載部署在云中心,Agent以DaemonSet工作負載部署在邊緣節點。
3.YurtControllerManager(必選):云中心控制器,接管原生Kubernetes的NodeLifeCycle Controller,實現在云邊網絡異常時,不驅逐自治邊緣節點的Pod應用;還有YurtCSRController,用以審批邊緣節點的證書申請。
4.YurtAppManager(必選):實現對邊緣負載進行單元化管理調度,包括NodePool:節點池管理;YurtAppSet:原UnitedDeployment,節點池維度的業務負載;YurtAppDaemon:節點池維度的Daemonset工作負載。以Deploymen工作負載部署在云中心。
5.NodeResourceManager(可選):邊緣節點本地存儲資源的管理組件,通過修改ConfigMap來動態配置宿主機本地資源。以DaemonSet工作負載部署在邊緣節點。
6.YurtEdgeXManager/YurtDeviceController(可選):通過云原生模式管控邊緣設備,當前支持EdgeX Foundry的集成。YurtEdgeXManager以Deployment工作負載署在云中心,YurtDeviceController以YurtAppSet工作負載署部署在邊緣節點,并且以節點池NodePool為單位部署一套YurtDeviceController即可。
7.運維管理組件(可選):為了標準化集群管理,OpenYurt社區推出YurtCluster Operator組件,提供云原生聲名式Cluster API及配置,基于標準Kubernetes自動化部署及配置OpenYurt相關組件,實現OpenYurt集群的全生命周期。舊Yurtctl工具建議只在測試環境使用。
除了核心功能及可選的專業功能外,OpenYurt持續貫徹云邊一體化理念,將云原生豐富的生態能力最大程度推向邊緣,已經實現了邊緣容器存儲,邊緣守護工作負載DaemonSet,邊緣網絡接入Ingress Controller等,還有規劃中的有Service Mesh,Kubeflow,Serverless等功能,拭目以待。
5當前挑戰
(1)云邊網絡
在邊緣計算場景中,被提到最多的就是云邊網絡差且不穩定,其實國內基礎網絡在2015年開始全面升級,尤其是在“雪亮工程”全面完成之后,基礎網絡有一個很大的提升。上圖摘自《第48次中國互聯網絡發展狀況》報告,固網100Mbps接入占比已達91.5%;無線網絡接入已經都是4G,5G的優質網絡。
而真正的挑戰在云邊網絡組網,對于使用公有云的場景:公有云屏蔽數據中心網絡,只提供了互聯網出口帶寬,通過互聯網打通云邊,通常只需要解決數據安全傳輸即可,接入不復雜。對于私有自建的IDC場景:打通云邊網絡并不容易,主要是運營商網絡沒有完全產品化,同時私有IDC層層防火墻等其他復雜產品,需要專業的網絡人員才能完成實施工作。
(2)list-watch機制與云邊流量
List-Watch機制是Kubernetes的設計精華,通過主動監聽機制獲取相關的事件及數據,從而保證所有組件松耦合相互獨立,邏輯上又渾然一體。List請求返回是全量的數據,一旦Watch失敗,就需要重新Relist。但是Kubernetes有考慮管理數據同步優化,節點的kubelet只監聽本節點數據,kube-proxy會監聽所有的Service數據,數據量相對可控;同時采用gRPC協議,文本報文數據相比業務數據非常小。上圖是在節點1200節點的集群規模,做的壓測數據監控圖表。
真正的挑戰在基礎鏡像及應用鏡像下發,當前的基礎鏡像及業務鏡像,即使在中心云,依然在探索各種技術來優化鏡像快速分發的瓶頸;尤其是邊緣的AI應用,一般都是由推送應用+模型庫構成,推算應用的鏡像相對較小,模型庫的體積就非常,同時模型庫隨著自學習還需要頻繁的更新,如果更高效的更新模型庫,需要更多技術及方案來應對。
(3)邊緣資源和算力
邊緣的資源情況需要細分場景,針對運營商網絡邊緣,面向消費者的邊緣計算,資源相對比較充足,最大的挑戰是資源共享及隔離;針對實體產業的邊緣,都會有不小的IDC支持,邊緣資源非常充足,足以將整個云原生體系下沉;針對智能設備邊緣,資源相對比較稀缺,但一般都會通過一個智能邊緣盒子,一端連接設備,一端連接中心管控服務,從上圖的AI邊緣盒子來看,整體配置提升速度較快,長期來看,邊緣的算力快速增強以此來滿足更復雜更智能化的場景需求。
(4)Kubelet比較重,運行占用資源多
對于Kubelet比較重,運行占用資源多的問題,需要深入了解節點資源分配及使用情況,通常節點的資源自下而上分為四層:
1.運行操作系統和系統守護進程(如SSH、systemd等)所需的資源;
2.運行Kubernetes代理所需的資源,如Kubelet、容器運行時、節點問題檢測器等;
3.Pod可用的資源;
4.保留到驅逐閾值的資源。
對于各層的資源分配設置的沒有標準,需要根據集群的情況來權衡配置,Amazon Kubernetes對Kubelet資源配置算法是Reserved memory=255MiB+11MiB*MAX_POD_PER_INSTANCE;假設運行32 Pods,高達90%的內存都可以分配給業務使用,相對來說Kubelet資源占用并不高。
同時也要結合業務對高可用的要求,做響應的調整。針對邊緣場景,一般不建議在一個節點上運行大量的Pods穩定為大。
四業務應用的云邊管運協同模型
基于中心云的分布式業務應用架構,與云邊分布式協同業務應用架構本質上有很大差別。在中心云更多的是基于DDD業務領域,將復雜的業務系統拆分成一個個相對獨立的服務,整體構建一個松耦合的分布式應用;但在云邊分布式場景下,更多強調的是集中式管控運營,分散式運作支撐,將管理運營系統集中在云中心,實現中心式管控,將支撐業務實時運作的應用分散至邊緣,實現低延遲快速響應。
從業務應用來看,財務/經營,計劃/管理兩層屬于管控運營類的應用,就是需要通過中心云統一匯聚,實現集中化強管控;對延遲不敏感,對安全,大數據分析能力等要求較高;控制,傳感/執行,生產過程三層屬于運作支撐類應用,也可以優先考慮中心云;如果業務場景對延遲敏感,才考慮通過邊緣計算能力,實現分散式低時延響應;
從請求響應來看,對時延不敏感(50ms以上)都有限考慮部署在中心云計算及云化的邊緣產品(CDN)實現;對延遲敏感(小于10ms),運營商骨干網完全無法支持的,考慮建設邊緣計算平臺,同時業務面臨不小的投入及人員;
以實體物流領域為例,經典的OTW系統(OMS訂單管理系統,WMS倉庫管理系統,TMS運輸管理系統)其中OT就屬于典型的管理運營系統,所以建議部署在中心云,通過中心云數據匯聚,實現拼單拆單,多式聯運等跨區域業務;W是倉庫管理系統,管理四面墻的任務,屬于運作支撐應用,并且倉庫一般都有一些自動化設備,就可以考慮將W部署在邊緣。
五總結
邊緣計算平臺的建設,以Kubernetes為核心的云原生技術體系,無疑是當前最佳的選擇與建設路徑;但是云原生體系龐大,組件復雜,將體系下沉至邊緣會面臨很大的挑戰與困難,同時充滿巨大的機遇及想象空間。業務應用想要真正踐行邊緣的云原生體系,需要從理念、系統設計、架構設計等多方面來共同實現,才能充分發揮邊緣的優勢及價值。