邊緣計算,如何啃下集群管理這塊硬骨頭

2022-07-19 21:18:35 字數 2836 閱讀 6900

邊緣計算平台,旨在將邊緣端靠近資料來源的計算單元納入到中心雲,實現集中管理,將雲服務部署其上,及時響應終端請求。

然而,成千上萬的邊緣節點散布於各地,例如銀行網點、車載節點等,節點數量甚至可能是幾萬到十幾萬,這就會對節點的承載能力造成巨大衝擊。kubernetes 官方資料是可以支援納管 5000 節點,如果想要納管更多的邊緣節點,該如何設計邊緣計算平台架構呢?

本文針對以上問題,提供一些博雲的解決思路。

多集群管理

多集群可以有效地擴充套件納管節點的規模,而對 kubernetes 多集群的管理,各廠商的實現方式各有不同,不同的 api,不同的特性,因此市場上很難形成標準的解決方案。

現有的官方 kubernetes 多集群管理解決方案是 kubefed(federation v2),即kubernetes 聯邦。federation v1早在 kubernetes 1.6 版本就開始提供服務,但由於v1架構的限制,無法靈活支援更新的 k8s api 介面,加上其他很多問題影響集群管理的效率,因此 federation v1 在 kubernetes 1.11 版本正式被棄用,現在提供服務的是 federation v2。

由架構圖實現可以看出,federation v2 在 k8s 之上定義了一些資源,用 cluster configuration 記錄集群的 endpoint,secret 等認證資訊,type configuration 來定義需要用 federation 託管的資源型別,提供了排程器來平衡各個集群的負載,以及多集群的 dns 功能。

這種 controller 級別的集群管理,提供了豐富的集群間互動功能,更適用於異地多中心的集群災備等場景。在邊緣場景,乙個邊緣端可能就是乙個小集群(存在多個計算單元可以組成集群),這樣會使得集群數量不斷增多,進而對 federation 的執行效率、api 的響應時間都會有較為明顯的影響。那麼,該如何削弱集群數量的不確定性所帶來的影響呢?

下面為大家展示,我們在 kubeedge 架構下如何解決多節點的問題。

cloudcore 橫向擴充套件

kubeedge 架構下的雲邊協同通訊採用 websocket 方式,quic 作為備選。其中 websocket 效能最好,quic 在弱網路(頻繁斷開)情況下優勢較大,通訊的服務端都是由 cloudcore 來實現。

這裡我們引入乙個邏輯集群的概念,即每個 cloudcore 可以看做是乙個集群,橫向擴充套件多個 cloudcore 對接下層數量較大的邊緣節點,向上只依託在乙個 kubernetes 集群即可,架構如下所示:

這樣設計有如下幾點優勢:

測試實現

環境資訊:

測試集群單 master 節點,管理乙個 node1 工作節點,cloudcore 執行在 maser 節點上,並已接入 edge1 邊緣節點。

現在測試 node1 上建立 cloudcore 服務,將新的邊緣節點 edge2 接入,節點**如下:

集群下已有 cloudcore 和 edgecore,node1 是 k8s 的 x86 普通節點,現在該節點上執行 cloudcore 提供服務。

- 拷貝 cloudcore 二進位制檔案

- 重新生成證書

- 生成 cloudcore.yaml 配置檔案

- 拷貝 k8s 集群的 kubeconfig 並將路徑配置到 cloudcore.yaml

- 啟動 cloudcore

edge2 是作為待接入集群的邊緣節點,在該節點上執行 edgecore, server 指向 node1,啟動服務。

可以看到 edge2 已經註冊到 node1 上的 cloudcore 並同步節點資訊到 k8s,測試發布服務到 edge1 上:

總結

本文通過討論多集群的方式來擴充套件納管邊緣節點的規模,分析了以 kubefed 聯邦進行多集群管理機制,對比不同場景下的特點,介紹了 kubeedge 中利用橫向擴充套件 cloudcore 的解決方案,並在測試環境部署實踐。

在實際生產環境中,博雲 beyondedge 邊緣計算平台依託於博雲 beyondcontainer 容器雲平台,提供雲上服務的編排、治理、devops 等雲原生能力,利用 kubeedge 將這些能力延伸到邊緣節點,並將邊緣裝置抽象到雲端 beyondcontainer容器雲中,作為孿生裝置資源,統一訪問入口。

並且,執行在雲端的邊緣平台元件 cloudcore 作為應用服務部署在beyondcontainer容器雲中,充分利用容器雲的產品能力,將 cloudcore 以高可用方式部署在 kubernetes 中心雲,通過 ingress 暴露服務介面提供給邊緣節點的元件 edgecore 訪問,可以根據邊緣節點實際接入量動態擴充套件 cloudcore,作為邏輯上的集群擴充套件以提高中心雲對邊緣節點的承載能力。

人工智慧如何改變邊緣計算的未來

隨著物聯網裝置 例如手機,虛擬助手,膝上型電腦,平板電腦,建築物感測器,無人機,安全攝像機和可穿戴式健康感測器 的數量有望在2025年超過700億,邊緣計算應用也將增加。物聯網裝置在零售,醫療保健,工業,航空航天,國防,運輸,設施維護,能源,製造業,鏈物流和智慧型城市等廣泛領域中具有廣泛多樣的應用。...

邊緣計算和雲計算如何結合在一起

行業專家對網路延遲 一致性 安全性 成本等問題進行了分析,並對一些邊緣用例進行了 儘管雲計算和邊緣關係的實際架構仍在不斷湧現和發展,但無疑存在互補關係。其中的一種基本模式是,在混合雲或核心雲平台與運營環境的最外邊緣之間存在 基礎設施邊緣 基礎設施邊緣可以處理資料 路由流量或執行對延遲敏感的任務,同時...

我們是如何實現邊緣計算與網路動態加速的?

邊緣計算,一種通俗理解是將計算和儲存等服務放在網路邏輯邊緣節點上的一種分布式架構,通過將原本中心化的服務分散到邊緣節點處理,讓資料的運算和儲存更接近資料 減少網路傳輸的資料量和訪問延時。它不但側重邊緣節點,還強調節點之間的連線,因此就有了與網路加速的契合。在實現上,邊緣計算平台與動態加速網路也依賴了...