• 自動秒收錄
  • 軟件:1972
  • 資訊:55260|
  • 收錄網站:118957|

IT精英團

深度解密:從中心到邊緣的Kubernetes

深度解密:從中心到邊緣的Kubernetes

瀏覽次數:
評論次數:
編輯: 陽煦
信息來源: ITPUB
更新日期: 2022-04-02 18:30:37
摘要

Kubernetes是以應用為中心的技術架構與思想理念,以一套技術體系支持任意負載,運行于任意基礎設施之上;向下屏蔽基礎設施差異,實現底層基礎資源統一調度及編排;向上通過容器鏡像標準化應用,實現應用負

  • 正文開始
  • 相關閱讀
  • 推薦作品

Kubernetes是以應用為中心的技術架構和思想,以一套技術體系支持任意負載,運行于任意基礎設施之上;向下通過底層基礎資源統一調度及編排容器鏡像的標準化應用,屏蔽基礎設施差異,實現向上;實現應用負載的自動部署;向外突破了中央云計算的邊界,將云計算能力無縫擴展到邊緣和站點,快速構建了云-邊緣一體化基礎設施。

將云原生技術從中心擴展到邊緣,不僅可以實現云邊緣的基礎設施技術架構大一統,還可以實現業務的云邊自由編排部署。但相比Kubernetes在中央云的革命性創新,在邊緣場景上優勢明顯,同時劣勢也非常致命。在邊緣資源有限、網絡不穩定等特殊情況下,需要根據不同的業務場景選擇不同的Kubernetes邊緣解決方案。

1. Kubernetes架構及邊緣化的挑戰

z.itpub.net/zitpub.net/JPG/2022-04-02/459110636EF5C0230E983FC495D0AD83.jpg">


從技術架構來看,Kubernetes是典型的分布式架構,Master控制節點是集群“大腦”,負責管理節點,調度Pod以及控制集群運行狀態。Node工作節點,負責運行容器(Container),監控/上報運行狀態。在邊緣計算場景存在以下比較明顯的挑戰:

  • 狀態強一致且集中式存儲架構,屬于中心云計算的大成產品,基于大規模的池化資源的編排調度實現業務持續服務。

  • Master管控節點與Worker工作節點通過List-Watch機制,實現狀態任務實時同步,但是流量流量較大,Worker工作節點完全依賴Master節點持久化數據,無自治能力。

  • Kubelet承載太多邏輯處理,各種容器運行時各種實現的兼容,還有Device Plugin硬件設備驅動,運行占用資源高達700M;對資源有限的邊緣節點負擔太重,尤其是低配的邊緣設備。


邊緣計算涉及的范圍大,場景復雜,沒有統一的標準;Kubernetes開源社區的主線版本并沒邊緣場景的適配計劃。


2. Kubernetes邊緣化運行方案

針對中心云計算及邊緣計算這種云邊分布式架構,需要將Kubernetes適配成適合邊緣分布式部署的架構,借助Kubernetes的優勢,彌補Kubernetes的不足,通過多集群管理實現統一管理,實現中心云管理邊緣運行,整體分為三種方案:

  • 集群 Cluster:將Kubernetes標準集群下沉至邊緣,優點是無需Kubernetes做定制化研發,同時可以支持Kubernetes多版本,支持業務真正實現云邊架構一致;缺點就是管理資源占用多。方案比較適合區域云/中心云,邊緣計算/本地計算以及規模較大的產業邊緣場景。

  • 單節點 Single Node:將Kubernetes精簡,部署在單節點設備之上,優點與集群 Cluster方案一致,缺點Kubernetes能力不完整,資源的占用會增加設備的成本,對業務應用無法保證云邊一致的架構部署運行,是一個中庸方案,沒有解決實際問題。

  • 邊緣節點 Remote Node:基于Kubernetes二次開發增強擴展,將Kubernetes解耦適配成云邊分布式架構的場景,中心化部署Master管理節點,分散式部署Worker管理節點。

3. Kubernetes邊緣容器的碎片化

Kubernetes已經成為容器編排和調度的事實標準,針對邊緣計算場景,目前國內各個公有云廠商都開源了各自基于Kubernetes的邊緣計算云原生項目,比如由華為開源KubeEdge,采用邊緣節點 Remote Node方案,深度定制了Kubernetes,精簡了Kubelet,Master與Worker通信機制使用了Websocket與quic技術來重構了,是面向邊緣計算場景、專為邊云協同設計的業界首個云原生邊緣計算框架。KubeEdge于2019年3月正式進入CNCF成為沙箱級項目(Sandbox),也成為CNCF首個云原生邊緣計算項目。并于2020年9月晉升為孵化級項目(Incubating),成為 CNCF 首個孵化的云原生邊緣計算項目。

總的來說,邊緣容器的碎片化嚴重,導致構建邊緣計算平臺時難以抉擇。從技術架構來看,幾個邊緣容器產品架構是有差異,總的架構思路主要是將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來集成,這種兼容所有邊緣容器的中庸方案。
一致性是邊緣計算的痛點,在邊緣增加一個Cache即可實現斷網特殊情況的邊緣自治,同時可以保證正常網絡情況的數據一致;還有就是Kubelet比較重的問題,隨著Kubernetes放棄Docker已經開始精簡;同時硬件更新迭代較快,相比少量硬件成本,保持Kubernetes原生及通用性為大。其實更希望Kubernetes社區本身提供適配邊緣化方案,同時考慮為Kubelet增加緩存機制。

5. 業務應用的云邊管運協同


基于中心云的分布式業務應用架構,與云邊分布式協同業務應用架構本質上是有很大的差別。在中心云更多的是基于DDD業務領域,將復雜的業務系統拆分成一個個相對獨立的服務,整體構建一個松耦合的分布式應用;但是在云邊分布式場景下,更多的強調的是集中式管控運營,分散式運作支撐;將管理運營系統集中在云中心,實現中心式管控;將支撐業務實時運作的應用分散至邊緣,實現低延遲快速響應。

從業務應用來看,財務/經營,計劃/管理兩層屬于管控運營類的應用,就是需要通過中心云統一匯聚,實現集中化強管控;對延遲不敏感,對安全,大數據分析能力等要求較高;控制,傳感/執行,生產過程三層屬于運作支撐類應用,也可以優先考慮中心云;如果業務場景對延遲敏感,才考慮通過邊緣計算能力,實現分散式低時延響應;
從請求響應來看,對時延不敏感(50ms以上)都有限考慮部署在中心云計算及云化的邊緣產品(CDN)實現;對延遲敏感(小于10ms),運營商骨干網完全無法支持的,考慮建設邊緣計算平臺,同時業務面臨不小的投入及人員;
說的比較抽象,就用實體物流領域為例,對于物流領域,經典的OTW系統(OMS訂單的管理系統,WMS倉庫管理系統,TMS運輸管理系統);其中OT就屬于典型的管理運營系統,所以建議部署在中心云,通過中心云數據匯聚,實現拼單拆單,多式聯運等跨區域業務;W是倉庫管理系統,管理四面墻的任務,屬于運作支撐應用,并且倉庫一般都有一些自動化設備,就可以考慮將W部署在邊緣。

6. 總結

突破中心云計算的邊界,將云原生Kubernetes從中心拓展至邊緣力,構建云邊一體化基礎設施。面向業務,不僅統一了廣域邊緣側分布式的應用運行時,同時實現了應用的中心化管理和邊緣側運行的云邊協同。面向運維,業務的自動化運維、高可靠性保障,降低邊緣應用的運維工作量,提升邊緣計算業務創新效率。
總的來說,Kubernetes云原生是一個龐大且復雜的體系,將整個體系下沉至邊緣,面臨很大挑戰與困難;業務應用想要真正踐行邊緣的云原生體系,需要從理念、系統設計、架構設計等多方面來公關實現,才能充分發揮邊緣的優勢及價值。云原生,邊緣計算兩個領域都在發展,國家也對場景化邊緣計算建設提出更高的要求,未來已來,共同期待。
參考資料:1.邊緣計算社區:2020十大邊緣計算開源項目2.紅帽:Edge computing with Red Hat OpenShift3.運營商邊緣計算網絡技術白皮書(2019)


標簽:邊緣 節點 集群
MySQL明明有索引 為什么不用?
? 上一篇 2022-04-02
  • MySQL明明有索引 為什么不用?
    0閱讀 0條評論 個贊
    微信公眾號:DBA隨筆一個經典的MySQL索引問題今天分享一個線上的經典MySQL索引問題。1背景介紹今天在線上運維過程中,遇到了一個MySQL的經典索引問題。線上的表結構不方便展示,我模擬了……
  • 提高K8s團簇穩定性的方法
    1閱讀 0條評論 個贊
    提升資源利用率1.1資源浪費場景資源預留普遍存在50%以上的浪費Kubernetes中的Request(請求)字段用于管理容器對CPU和內存資源預留的機制,保證容器至少可以達到的資源……
  • 領域驅動的設計實踐:支付系統建模
    1閱讀 0條評論 個贊
    在Airwallex,領域驅動設計(DDD)方法被用來指導如何對復雜的業務問題和系統設計進行建模。在這篇博客中,我們試圖全面介紹用DDD模式對支付系統進行建模的做法。簡介支付系統是一個相當復雜和多變的……
  • JavaScript私有屬性的各種實現的集合
    1閱讀 0條評論 個贊
    來源|http://www.fly63.comJavaScript被很多人認為并不是一種面向對象語言,原因有很多種,比如JavaScript沒有類,不能提供傳統的類式繼承;再比如JavaScrip……
  • 一張圖介紹JS原型鏈的來龍去脈
    1閱讀 0條評論 個贊
    前言在面向對象編程中,繼承是非常實用也非常核心的功能,這一切都基于面向類語言中的類。然而,javascript和面向類的語言不同,它沒有類作為藍圖,javascript中只有對象,但抽象繼承思想又是如……
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
  • JavaScript私有屬性的各種實現的集合
    1閱讀 0條評論 個贊
    來源|http://www.fly63.comJavaScript被很多人認為并不是一種面向對象語言,原因有很多種,比如JavaScript沒有類,不能提供傳統的類式繼承;再比如JavaScrip……
  • 基于DDD思想的技術架構戰略調整
    0閱讀 0條評論 個贊
    作者介紹PROFILE鄭吉敏2019年8月入職去哪兒網,機票目的地事業群技術總監、技術委員會委員、業務架構SIG負責人,負責酒店報價中心團隊、業務架構組。2020年金項獎評選中主導的“對內DD……
  • 又一個行業被AI扼殺 失業來得太突然…
    1閱讀 0條評論 個贊
    作者|臨公子來源|臨公子的后花園(ID:hi-lingongzi)前幾天我去銀行處理些業務,好久沒來那家線下網點了。一進門,突然發覺有點兒不一樣。里面只有一位引導員。普通業務幾乎都是自助服務,刷身……
  • 45 Git經典操作場景 獨家處理不會匹配的代碼
    0閱讀 0條評論 個贊
    文章轉載于:江南一點雨git對于大家應該都不太陌生,熟練使用git已經成為程序員的一項基本技能,盡管在工作中有諸如Sourcetree這樣牛X的客戶端工具,使得合并代碼變的很方便。但找工作面試和一些……
  • 有了這個Docker網絡原理 我徹底愛死了~
    1閱讀 0條評論 個贊
    Docker網絡原理容器是相對獨立的環境,相當于一個小型的Linux系統,外界無法直接訪問,那他是怎么做的呢,這里我們先了解下Linuxvethpair。1.Linuxvethpai……
  • PostgreSQL統計和性能優化深入分析
    1閱讀 0條評論 個贊
    基本關系級別的統計信息存儲在pg_class系統目錄的表中。統計數據包括以下數據:關系的行數(reltuples)。關系的頁面大小(relpages)。在關系的可見性圖中標記的頁面數(relallvisible)。SELECTreltuples,relpages,relallvisibleFROMp……
  • Python中的自我 是誰?
    0閱讀 0條評論 個贊
    轉自:Python大數據分析大家學Python面向對象的時候,總會遇到一個讓人難以理解的存在:self這個self到底是誰啊,為什么每個類實例方法都有一個參數self,它到底有什么作用呢?「先下結論:……
  • 5大步驟10個案例 堪稱SQL優化的萬能公式
    1閱讀 0條評論 個贊
    作者丨狼爺來源丨網址:https://www.cnblogs.com/powercto/p/14410128.html一、前言在應用開發的早期,數據量少,開發人員開發功能時更重視功能上的實現,隨著生產……
  • Kubernetes服務績效的持續分析
    1閱讀 0條評論 個贊
    文章轉自:進擊云原生開發人員通常需要查看生產應用程序中的性能瓶頸以確定問題的原因。為此,您通常需要可以通過日志和代碼工具收集的信息。不幸的是,這種方法通常很耗時,并且不能提供有關潛在問題的足夠詳細信息……
  • 10個Linux命令讓你的操作更有效率
    2閱讀 0條評論 個贊
    根據老九大師兄口頭闡述,Linux是最適合開發的操作系統。它是把所有的操作權都交給了用戶,有什么操作,就會呈現出什么樣的格局。開放、自由、誠實,就是它最大的魅力。而且越來越多的企業開始選擇Linux作……
  • 數據治理:說起來容易做起來難?
    3閱讀 0條評論 個贊
    以下文章來源于談數據,作者石秀峰“數據治理”這個10多年前就已經出現的名稱,在最近這幾年時間一下子火了起來。不知何時,江湖中流傳出了:“數字轉型、治理先行”的說法。于是乎,我們看到:不僅是傳統提供數據……
  • 帶你一步步深入了解MySQL Order By file sorting
    1閱讀 0條評論 個贊
    以下文章來源于公眾號:一樹一溪,作者一樹一溪我們日常工作中寫SQL語句,經常會使用orderby對記錄進行排序。如果orderby能夠使用索引中記錄已經排好序的特性,就不需要再借助內存……
  • 為什么MySQL中不推薦UTF-8?
    0閱讀 0條評論 個贊
    記得去年我在往MySQL存入emoji表情……
  • 盤點倉庫|談如何建立指標體系
    1閱讀 0條評論 個贊
    寫在前面作為數據研發,開發指標是我們的日常工作。在開發一個具體的指標時,不知道你是否想過以下問題:為什么要開發這些指標指標與指標之前有哪些聯系怎么衡量指標的好與壞一個指標可以拆解嗎...你可能會說,這些都是PD和業務該考慮的問題,我只需要他們提供具體的口徑,然后開發完成就完事了。如果真的是這樣的話……
  • Redis主從 哨兵和集群!
    2閱讀 0條評論 個贊
    今天跟小伙伴們一起學習Redis的主從、哨兵、RedisCluster集群。Redis主從Redis哨兵RedisCluster集群1.Redis主從面試官經常會問到Redis的高可用。Redis高可用回答包括兩個層面,一個就是數據不能丟失,或者說盡量減少丟失;……
  • SQL中order by的高級用法
    2閱讀 0條評論 個贊
    導讀為什么只有ORDERBY后面可以使用列別名為什么不推薦使用ORDERBY后接數字來排序為什么視圖和子查詢里面不能使用ORDERBY……小伙伴們在進行SQL排序時,都能很自然的使用到ORD……
  • 人工智能(AI)在制造業應用的五個案例
    1閱讀 0條評論 個贊
    近年來,人工智能(AI)和機器學習仍然推動當今制造業發展的最大動力。據了解,超過60%的制造公司已經采用了人工智能技術,以提高運營效率,減少停機時間,并提供滿足獨特消費者需求的高質量產品。根據全球……
  • 十億用戶中心系統架構 落地實踐!
    2閱讀 0條評論 個贊
    一、背景會員系統是一種基礎系統,跟公司所有業務線的下單主流程密切相關。如果會員系統出故障,會導致用戶無法下單,影響范圍是全公司所有業務線。所以,會員系統必須保證高性能、高可用,提供穩定、高效的基礎服務……
  • 用SQL查找三列異常值的四種方法
    1閱讀 0條評論 個贊
    前兩天在抽一段數據時,碰到一個典型問題,初一想,有很多解法,所以特想做一次歸納?;叵胪?,其實有好些想法,可以深究,因沒及時記錄,事后就再也想不起來,白白浪費好多這樣的機會。所以為了不留遺憾,今天沉下心來,好好復盤下?!?/div>
  • SQL語句中單引號和雙引號的用法
    2閱讀 0條評論 個贊
    關于Insert字符串,在(單引號,雙引號)這個方面發生了問題,其實主要是因為數據類型和變量在作怪。下面我們就分別講述,雖然說的是Insert語句,但是Select、Update、Delete語句……
最近發布資訊
更多
十八禁试看120秒做受