k8s邊緣節點_邊緣計算,如何啃下集群管理這塊硬骨頭?

c607a857e81505f47d54a90d84ea7baf.png

導讀

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

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

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

多集群管理

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

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

9202b7387e6c81417b2dddb8c8b447d7.png

由架構圖實現可以看出,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 集群即可,架構如下所示:

9a14815bf3094c7d9c4736a457ffff58.png

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

  • 解決單個 cloudcore 消息轉發/接收等處理的性能瓶頸;
  • 應用/設備的發布請求在 api-server 會被 cloudcore 監聽捕獲到,轉而由對應的 cloudcore 來處理請求到邊端,這樣緩解了 k8s 集群的壓力;
  • 中心云只需要一套 k8s 集群,調用鏈簡單清晰,易于管理。

測試實現

環境信息:

a0291a5b3083fecfc85139b0188735c3.png

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

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

3ee2fe67dcf65879f54442ffc9d32ee6.png

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

- 拷貝 cloudcore 二進制文件

- 重新生成證書

- 生成 cloudcore.yaml 配置文件

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

- 啟動 cloudcore

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

2f230fc0a9620ebc64c4597b71fdc480.png

可以看到 edge2 已經注冊到 node1 上的 cloudcore 并同步節點信息到 k8s,測試發布服務到 edge1 上:

8035ed4c72922bad4692442963628461.png

總結

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

在實際生產環境中,博云 BeyondEdge 邊緣計算平臺依托于博云 BeyondContainer 容器云平臺,提供云上服務的編排、治理、DevOps 等云原生能力,利用 KubeEdge 將這些能力延伸到邊緣節點,并將邊緣設備抽象到云端 BeyondContainer容器云中,作為孿生設備資源,統一訪問入口。

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

點擊BoCloud博云_以創新云技術 為效率而進化,獲取更多產品及案例信息。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/536979.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/536979.shtml
英文地址,請注明出處:http://en.pswp.cn/news/536979.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Mybatis源碼閱讀(二):動態節點解析2.2 —— SqlSourceBuilder與三種SqlSource

*************************************優雅的分割線 ********************************** 分享一波:程序員賺外快-必看的巔峰干貨 如果以上內容對你覺得有用,并想獲取更多的賺錢方式和免費的技術教程 請關注微信公眾號:HB荷包 一個能讓你學習技術和賺錢方法的公眾號,持續更…

搞懂toString()與valueOf()的區別

一、toString() 作用:toString()方法返回一個表示改對象的字符串,如果是對象會返回,toString() 返回 “[object type]”,其中type是對象類型。 二、valueOf( ) 作用:valueOf房啊發返…

oracle入庫的速度能到多少_倒車入庫別練復雜了,其實就這兩點

教練總會讓學員反復練倒車入庫,但不少學員都會有這樣的疑惑:為什么每一次倒庫結果都不一樣,倒車入庫的練習重點是什么?倒車入庫是科二的重點及難點,但只要掌握以下兩個關鍵,順利通過真不難:01方…

Mybatis源碼閱讀(三):結果集映射3.1 —— ResultSetBuilder與簡單映射

*************************************優雅的分割線 ********************************** 分享一波:程序員賺外快-必看的巔峰干貨 如果以上內容對你覺得有用,并想獲取更多的賺錢方式和免費的技術教程 請關注微信公眾號:HB荷包 一個能讓你學習技術和賺錢方法的公眾號,持續更…

kdj買賣指標公式源碼_通達信指標公式源碼MACD背離KDJ背離指標

N1:5;N2:10;N3:21;N4:60;牛熊:EMA(CLOSE,N4),COLORGREEN,LINETHICK3;DIFF:EMA(CLOSE,12) - EMA(CLOSE,26);DEA:EMA(DIFF,8);A1:BARSLAST(REF(CROSS(DIFF,DEA),1)); B1:REF(C,A11)>C AND REF(DIFF,A11)DRAWTEXT(IF(B1>0,1,0),L-0.1,MACD底背),COLORGREEN;RSV:(CLOSE-LLV(L…

Mybatis源碼閱讀(三):結果集映射3.2 —— 嵌套映射

*************************************優雅的分割線 ********************************** 分享一波:程序員賺外快-必看的巔峰干貨 如果以上內容對你覺得有用,并想獲取更多的賺錢方式和免費的技術教程 請關注微信公眾號:HB荷包 一個能讓你學習技術和賺錢方法的公眾號,持續更…

18.requests

多多的的轉載于:https://www.cnblogs.com/yangyangchunchun/p/10368337.html

gridview獲取選中行數據_Word轉Excel,不想熬夜加班,那就掌握這個數據清洗方法...

私信回復關鍵詞【福利】~獲取豐富辦公資源,助你高效辦公早下班!小伙伴們,大家好,我是專治各種疑難雜「數」的農夫~今天,我就為大家介紹一種高效的數據清洗方法,助你告別熬夜加班,擁抱美好的夜晚…

如何深入學習python_菜鳥如何學好python

python在我國發展得如火如荼,因其操作簡單,應用廣泛受到很多人的喜歡。下面小編就來說說菜鳥如何學好python,一起來看看吧!1. 了解編程的基礎知識種是變量、編程規范、基本語法等,這也是開始編寫Python代碼的先決條件。第二種是數…

HTML5中本地儲存概念是什么,什么優點 ,與cookie有什么區別?

html5中的Web Storage 包括了兩種存儲方式: sessionStorage 和 localStorage. seessionStorage 用于本地存儲一個會話(session)中的數據,這些數據只有在同一個會話中的頁面才能訪問并且當會話結束后數據也隨之銷毀。因此session…

Mybatis源碼閱讀(三):結果集映射3.3 —— 主鍵生成策略

*************************************優雅的分割線 ********************************** 分享一波:程序員賺外快-必看的巔峰干貨 如果以上內容對你覺得有用,并想獲取更多的賺錢方式和免費的技術教程 請關注微信公眾號:HB荷包 一個能讓你學習技術和賺錢方法的公眾號,持續更…

list最大容量_Java 基礎(四)集合源碼解析 List

List 接口前面我們學習了Iterator、Collection,為集合的學習打下了基礎,現在我們來學習集合的第一大體系 List。List 是一個接口,定義了一組元素是有序的、可重復的集合。List 繼承自 Collection,較之 Collection,List…

Mybatis源碼閱讀(四):核心接口4.1——StatementHandler

*************************************優雅的分割線 ********************************** 分享一波:程序員賺外快-必看的巔峰干貨 如果以上內容對你覺得有用,并想獲取更多的賺錢方式和免費的技術教程 請關注微信公眾號:HB荷包 一個能讓你學習技術和賺錢方法的公眾號,持續更…

Shell學習之結合正則表達式與通配符的使用(五)

Shell學習之結合正則表達式與通配符的使用 目錄 通配符 正則表達式與通配符通配符通配符的使用正則表達式 正則表達式正則表達式的使用通配符 正則表達式與通配符 正則表達式用來在文件中匹配符合條件的字符串,正則是包含匹配。grep、awk、sed等命令可以支持正則表達…

Mybatis源碼閱讀(四):核心接口4.2——Executor(上)

*************************************優雅的分割線 ********************************** 分享一波:程序員賺外快-必看的巔峰干貨 如果以上內容對你覺得有用,并想獲取更多的賺錢方式和免費的技術教程 請關注微信公眾號:HB荷包 一個能讓你學習技術和賺錢方法的公眾號,持續更…

接收xml參數_SpringBoot實戰(二):接收xml請求

強烈推薦一個大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】最近在對接一個第三方系統,需要接收第三方系統的回調,而且格式為XML形式,之前自己一般接收的參數是Json形式,于是乎做個實驗驗證一下使用…

報錯 插入更新_window如何解決mysql數據量過大導致的報錯

window如何解決報錯“The total number of locks exceeds the lock table size”第一大步,查看mysql配置信息在CMD中輸入mysql -hlocalhost -uroot -p #如果設置了密碼直接接在p 后面 show variables like %storage_engine%以下為結果可以看到InnoDB是MySQL的默認引…

148. Sort List

Sort a linked list in O(n log n) time using constant space complexity. Example 1: Input: 4->2->1->3 Output: 1->2->3->4 Example 2: Input: -1->5->3->4->0 Output: -1->0->3->4->5難度:medium 題目:排…

Mybatis源碼閱讀(四):核心接口4.2——Executor(下)

*************************************優雅的分割線 ********************************** 分享一波:程序員賺外快-必看的巔峰干貨 如果以上內容對你覺得有用,并想獲取更多的賺錢方式和免費的技術教程 請關注微信公眾號:HB荷包 一個能讓你學習技術和賺錢方法的公眾號,持續更…

python解橢圓方程的例題_橢圓標準方程典型例題及練習題

橢圓標準方程典型例題例1已知P 點在以坐標軸為對稱軸的橢圓上,點P 到兩焦點的距離分別為354和352,過P 點作焦點所在軸的垂線,它恰好過橢圓的一個焦點,求橢圓方程. 解:設兩焦點為1F 、2F ,且3541…