大家好 我是艾克力網路來自的騰訊域融器中心 BN 技術團隊目前主要負責騰訊域 BN 融器的研發我和我的夥伴們也好 將為大家分享蘇波爾紙 8.9X 貫載到 BN 的技術解密這是我們分享的目的我請大家重點關注蘇波爾紙 4 大核期特性的解密蘇波爾紙的雲邊單核最佳實踐蘇波爾紙但生自騰訊域 BN 融器平台 7K 按鍵2020年 12 月由騰訊域有點和英特爾 V1W 等其他公司對外正式開源2021年 9 月正式成為 CECF 的一個賽德布克斯項目前由 CECF 拖廣其主要是將蘇波爾納子集中式資源管理能力有無封的擴展到 BN 計算和非不使資源管理場景 同管 BN 的設備和應用蘇波爾紙主要提供到哪些能力呢先來我們看看蘇波爾紙的加入頭頭上的一些藍色的部分是蘇波爾納子原來的一些組件我沒對這個組件並沒有更改過第一個代碼我們馬來西亞原來的一個語言事物之後大概的組件大概分為四種首先是一個淡藍色的特朗娛和特朗奔特朗娛和特朗奔是一個語言隧道主要用來做語言寫頭用的然後第二個組件是淺藍色的部分就是淡紫色的這個稍微前一件淡紫色的這個這個是Servis grove它最主要的是多BN多陣點下發的一個功能然後也可以把你的流量鎖定在一個陣點之內第三個是這個紅色的EarthhouseMaces和BN的Earthhouse這兩個組件這兩個組件主要是做那個接近的健康性然後影響輔助那個Kubernetes的邊緣的幾點一個驅逐的邏輯最後一個就是中間這個紅色的這個組件這個組件叫Lighting Sour它相當於一個輕量級褲光APN最主要做的功能就是它提供了一個邊緣自製的功能這個我們現在就來到Sour 20的可惜第一個能力邊緣自製我們可以看一下這張圖這張圖的左邊是Kubernetes原本的架構右邊是Sour 20對於它簽了Lighting APN Sour的一個架構我們這張圖上的最主要的區別就是多了一個Lighting APN Sour另外一個是所有的組件的訪問與一般的Kubernetes APN Sour的時候都要通過Lighting APN Sour但是大家就想想為什麼需要邊緣自製為什麼這個架構是這個樣子呢是因為就是我們可以想一個這麼想想就是原始的Kubernetes就變成一位是肉有可能是工網訪問有可能是一些司機物階的這種然後第二個就是這個網絡有可能會斷就是這個網絡在肉網和斷網的情況下有可能就會出現金邊緣經驗變成一個網絡狀態邊緣網絡之後是邊緣經驗上的炮的就會被驅手走然後驅手走之後然後網絡也恢復邊緣上的柚炮的就會被刪除肉網的情況下就會甩幅的出現這個微器這樣就會非常的遺棄柚的紋為定第二個就是積電充氣積電充氣呢這個容器呢就是一旦斷網斷電然後你這個積電進行一個充氣然後呢你這個所有的容器將全部消失然後呢我們是怎麼做的呢這個是我們在我們蘇托20那個Led ABS-2裡面的一個Led ABS-2的一個講述我們可以看一下我以Kubernetes的為例假如說Kubernetes現在要仿併原來的Kubernetes然後它是怎麼仿併的呢然後它現在把請求發到那個Led ABS-2然後Led ABS-2再把請求發到語端的Kubernetes然後假如說有一邊那個網絡是好的呢它的那個接過這個帳字就傳過來了傳過來之後呢然後呢它會一步的進行把這個它的請求更期到北京做一個槌槌假如說語端幹嘛他們那個數據沒有數據然後它就直接從這個槌槌槌把那個數據進行返回了這其實就是Led ABS-2的整個的一個工作機制然後呢右邊的一個小玩範有一個證書管理的一個模塊這個證書管理著作上的呢它就是嗯邊緣的每個總監呢它對這個Led ABS-2的Goblin ABS-2的訪問的全線是不一樣的然後呢每個富裕的全線不一樣然後它就把它負責把這些全線就是這些證書的信息存在它的那個證書管理裡面然後每一次Led ABS-2請求語端的時候它就去裡面去想用總監的一個證書然後去訪問那個500VBS-2不然的話就是說它可能Led ABS-2是一個有的沒有的全線這樣就會導致你的幾點不安全也就是我起目的那個第三點那個Led ABS-2擴展手續裡面說的第三點的安全它使用的是代理總監的銳政和全線然後呢我們也再看一下其他的一些數據像擴展這是所有的可能性我們呢就是支持邊緣支持國際企業然後包括二級制部署的然後可能夠這種當然我們也還包括英克拉斯這個模式然後呢我們支持邊緣所有類型的一個法律這個所有類型呢就是包括你自己自定義的CRT我們為什麼能實現這個呢是因為我們對於那個我們的那個那個證書它是證書KV它的K呢是你請求的請求的K是你的請求K作為一個K然後呢Value是你的Response所以說它對你的那個KValue是做失敗的它完全不知道什麼東西不檢息所以說它能檢息你的綏持你的CRT返回你的ESRD這個呢就是Super二次的第一個能力的一個解密我們來看下一個下一個呢是一個語面隧道為什麼需要這個語面隧道呢其實這個這個點其實我之前剛才已經說過了就是邊緣經驗有很多它可能沒有那麼的公埃及字典然後魚竿無法訪問那個別的經驗然後在原生的Kubanai字之中也就是說你所有從Kubanai字從魚竿訪問邊緣的經驗對不起你的命令多不OK特別是你像撿來我們常用的Kubanai字下Langos和EXEZ直接不可用所以說我們需要一個隧道我們需要一個隧道我們來看一下右邊這張圖就是它這個我們這個隧道是怎麼注射上去的就是我們印度的二比例這個Node二呢它在起來的時候它直接去請求湯諾雲然後請求到湯諾雲之後湯諾雲呢就會把他的那個湯諾雲帶到他的靠台P和他那個Node二的Node名字然後推到湯諾靠Ds裡面去推到湯諾靠Ds裡面去呢假如說現在有一個這個連電器是相當的簡約假如現在有一個那個請求過來了假如說我們就是這個EPI SolverEPI Solver當然先去請求這個湯諾靠Ds然後因為它是到你那個請求的Node的地面然後以為它是對這個Node所有Node的請求進行了一個彈節然後它會使得你Node那麼疑惑然後返回這個湯諾靠P然後告訴你就是說那小的那個長領解保持在這個特努域上然後你就是直接去請求這個特努域然後這樣就會支持你的請求從魚端下巴給通過這個隧道下巴給它邊緣但是另外一個沒起來了為什麼一個就是你這一個個階級是一個反向的隧道性能解決邊緣的這個數據統一的位置數據這個女編互反的位置嗎當然是不夠的首先你有雲上邊的需求當然你還有邊緣反魚的需求正的話這個隧道相當於是一個雙向的隧道這是第一點第二個就是你的特努域要保持所有的邊緣機在長領節嗎大家肯定都不希望因為你一定要一個特努域保持所有的鏈接好處當然有但是壞處也顯而易見就是你所有的鏈接都保持得下來鏈接當然會被佔用提起一個資源的浪費但是另外一個位置假如說我為不保持的話我沒事如何過龍的呢就是你特努域過龍的時候你原來的鏈接怎麼辦你吸的鏈接又如何去平衡之後的特努域吸了特努域的泡在上面呢其實最後的一個位置才是最關鍵的就是你的雲邊的泡到如何附上雲邊的Service如何一個互通的位置我輸的這個Service互通可不是說你魚乾那個Service開一個Noodle Pout然後或者拐一個腰臂進行一個防衛它其實是一個就是說我們要像古巴黛日原生的那個一樣我們通過一個卡拉斯IP然後在魚邊直接進行一個互發的能力我沒看一下就是我沒在雲邊的隧道到底是怎麼實現的呢大家可以看一下右下角的這個圖這個圖從四五的四三四的部份可以畫一條線像它一個鏡子然後上下它其實是對峙的我們目前是畫了生白的部分然後從這張圖上我們可以看那個Tcpceler和ftpceler其實它就是一個代理然後下面其實就是最主要代理代理在這個隧道的上面然後其實除了這兩種協議的一個代理我們還支持rtp和hs代理就是說像sssh然後它可以從魚邊直接把你的請求直接發送就是你直接可以把你的從魚邊直接登陸下面的邊緣的一個節點然後頭上這兩點是沒畫出來而已然後下面的但是就是說我們一個Sorbit護法和那個Sorbit護法和那個泡的護法到底是怎麼做的嗎這個我就不展開講了大家可以看我們之前反覆的一些圍章這個比較適應然後最後一個我想說的是suprtoxn1不屬於supr2之因為它其實是以獨立的我們把這個組件離出的原因就是還給獨立的任何需要回到的地方我講的第三個能力是一個非不是解開警察為什麼需要這個組件呢其實有點原因第一個原因是因為我們要實施到知道那個我們要知道邊緣節點的一個進化狀況但是假如說我這個節點掛了我肯定就是說與雲南報不了數據的它可能與它可能不知道如果它不是與南報完的情況下那請求更罰不上去但是我同磁罰下面的其他節點有可能能訪問上面的公網把我的狀態報上去這其實就是Land APSO的第一個作用然後它通過一個周期性的護法就是報大家都同時去sink其他組件的其他節點的一個健康狀況然後它這個狀況不少高比於一端然後一端就知道這個健康的狀況這是它的第一個作用然後第二個是一位啥呢第二個是一位袁世德庫曼萊茲他這個驅肘就是說特別是在與一邊斷網和入網的情況下然後就是斷網和入網的情況下他把節點會派完那個盧狀態盧狀態之後然後之後的那個又泡的就會成成一個驅肘驅肘之後那個網絡恢復的時候它的泡的就被刪除這個事物是想講的它就會產生一個反覆重建你的業務反覆的重建這個刪除重建刪除重建這種一起的一個業務的一個部位定性然後呢這個就是我們提供這個非不是健康檢查的最主要的兩個名義也是它最主要的它提供了兩個特性然後還有應該一個是假如比一下子的邊緣景點非常多我們講是它有一萬多個另外那個它互相這個的時候這個手就這樣就非常寬敞所以說我們又支持的一個功能就是它可以自經意地去劃區域和劃組就是說我可能一萬個我們一千個一千個可以一劃當然它可以用這種千元的區域就是你一個小區域你可能有10個20個那當然特別OK然後我要講解的第四個的類似Service Growth的能力它最主它不是把Coopersnites的擴展到邊緣要解決的一個位置而是一個失球就是說我們有很這有這樣的強硬我們有很多佔領每個佔領就是要每個佔領它的應用可能是一樣的就像我剛才舉過的那個排檔案例它裡面的手續機閉上都是一樣的但是我們不可能說每一個佔領我們都切交一次切交一次那可能切交的自首非常非常多所以說我們實現的Service Growth的能力你只要在一段期間以一個YAML的切交這個應用的切交它就可以在多個佔領同時給你補習起來當然庇護不是寫了一個錯訊凡然後另外一個功能是就是你在這個佔領裡面的請求就是說不會讓你去跨佔領的訪問原因有兩個第一個就是說你跨佔領的訪問的話就會把其他佔領的A佔領和B佔領你可能A佔領的訪問B佔領 B佔領訪問A佔領這樣就以一系兩個佔領的數據的一個回來另外你跨佔領的時候逐漸的佔領有可能是功能這樣的話就是延遲性非常大所以說我們一般的需求都適合把一個流量鎖定在一個佔領之內這個就是我們Service Growth最主要的你功能然後它也支持一些灰豆就是說你兩個的佔領的服務可以是不一樣的然後系一個佔領的可以自動入手主要你和原來的佔領是一樣的我稍微破然一下講一下右邊的Service Growth的這張圖這張圖上上面有幾個概念一個是Service Growth一個是Node Growth下面是一個Unit是這樣的多個Node就是幾個Node是至少一個Node可以發揮一個Node Unit然後多個Unit可以走出一個Node Growth這個表示的是你資源的一個組合然後我上面有一個Service Growth你看我目前畫的一個Service Growth 1它Service Growth 2Service Growth是你的應用的組合就是說我的Service Growth 1就是我的英文1我的Service Growth 2就是我的英文2然後我現在想給我的兩個債點就是Unit 1和Unit 2想發揮一個應用然後我主要在魚竿其實主要起交Service Growth 1然後綁定套Node Growth 1然後他想進行一個綁定或者想去把英文1想發出來當然一個Node它可能會守於多個Unit然後多個Unit它又走出了一些新的Node Growth然後我也許可以把定到Node 2上Node Growth 2上Node Growth 2又和ServiceService Growth 2進行了一個把定我一個人還可以想發第一個應用第二個應用我第二個應用又可以想發下去這個大概是Service Growth這個實現中的一個架構和它的一些更新的一些關係是啊 我的四個主目的點講完了接下來我們看看Super Edge語面端和周邊生態集合的一個情況我們先看看Super Edge的圓上大家看到的這張頭是Super Edge的架構頭是我們團隊G7才開源的一個非布什多機器管理項目取名Class Night並不是說這個項目是一個網絡相關的項目而是我們希望你各受的KBS機器像訪美英特爾馬洛一樣輕鬆容易為什麼需要這個項目呢其實原意有兩個第一個是單個必然機器容納不了海量的必然節點 比如十萬個必然節點我們需要多個必然機器去管理更多的必然節點和必然設備第二個是為了融災融災費為佔點融災和應用融災必然佔點是不可耗的失聯的風險比中西機房要高很多我們需要在多個陣營之間進行融災把一份應用費發到不同的陣營裡面去Class Night當然也有很多優秀的特點比如簡單的納管用戶各類KBS機器然後跨Riget進行多機器管理和應用費發接受Class Night其實我們實現了必然機器不同的納管型態比如這讓很多左邊我們一把必然節點直接接入與中西的控制面然後在與中西對於邊緣節點進行統一的管控這個是邊緣機器的一個拖廣型態在這張圖的右上角我們利用Class Night不但可以直接納管Super2值的邊緣獨立機器也可以納管原生的KBS機器甚至是K3S機器或者Micro KBS機器這樣就是說在與上可以直接納管邊緣的一個獨立機器跟邊緣的獨立機器裡面的資源進行一個統一的管理頭到右下角是一個更為複雜的型態我們不但可以納管邊緣節點和邊緣獨立機器也可以納管邊緣聯繫機器什麼叫邊緣聯繫機器呢就是說納管的機器下面它又管理著其他的機器這個特別適合那種一些組織特別是層級的管控的形式納管型態其實可以依據實際用戶的機器型態進行靈活的選擇然後進行靈活的一個組合然後在魚蛋的一個控制面上就是可以實現各種QBIS機器的統一納管和應用的統一系列蘇格爾治的邊上我們剛完成了魚邊service後訪和炮的後訪的一個支持怎麼說呢再把庫巴蘭S室擴展到邊緣魚邊service是不能互相訪味的魚邊炮的也不能直接通信最主要的原因是邊緣節點沒有公網IP魚邊路的它不是一個二層網的後通的它的網路是單向的就是說邊緣節點可以訪問魚端魚端不能訪味邊緣節點咱說我們已經啟動了特動魚和特動邊實現了魚邊的service後訪但目前還無法做到讓魚邊的炮的可以像原生的QBIS那樣讓服務訪味讓用戶完全無感值我說說的無感值是避免在魚邊開路的炮的或者通過掛在CLB的方式實現魚邊service後訪而是要像原生的QBIS那樣通過CLASS IP讓魚邊service和炮的可以直接互相訪問我們實現的方式是和另外一個開源項目合作這個項目是駁魚今年8月份才開源的5byte它最主要是專注於邊緣的魚邊互訪你可以把它當成一個邊緣的CIS插件通過對魚邊不同機制端的管理和IPsec VPE隧道技術的利用實現了魚邊炮的直通後續我們兩個項目含會合作請為大家更優雅和更快捷的魚邊的一個解決方案歡迎持續關注SUBARGE的端上我們在IRGID的命令裡面集成了原生的IRGID XFUNDERY的一個快速部署讓用戶可以在SUBARGE的邊緣集席裡面接入邊緣設備對邊緣設備進行一個管控IRGID XFUNDERY是VMIRT天源的Io7設備管理平台兼容了眾多的Io7協議提供了Io7設備管理和Io7控制著諸多的微服物來供大家根據實際情況進行選擇我們正在兼用IRGID XFUNDERY實現邊緣設備的數字化出現工作實現之後用戶就可以在KBARGE集席裡面通過操作CR的方式來操作邊緣設備也可以在KBARGE集席裡面給邊緣設備下發指令讓邊緣設備完成一定的動作OK 接下來是SUBARGE邊緣斗力集席的大件演示和SUBARGE的最大實踐由SUBARGE社區的小夥伴來給大家講解接下來由我來演示如何通過H2的命工具大件SUBARGE邊緣COVERNATIS集席我們的演示主要分為上部應付我們在北京的節點上通過H2的命init命令去出實化一個控制平面的Master節點第二步我們分別在MOSK和硅谷的邊緣節點上通過H2的命join命令將節點加入集群第三步我們會部署一個簡單的邊緣應用下面開始也是第一步我們在北京的節點上出實化Master節點首先我們需要下載H2的命的安裝包我們可以看到安裝包已經下載完成接下來我們使用H2的命init命令去出實化一個Master節點現在我們的節點已經出實化完畢我們在MOSK的節點上通過H2的命join命令將節點加入集群首先我們還是要下載H2的命的安裝包安裝包下載完成了接下來我們用H2的命join命令將MOSK邊緣節點加入北京的集群現在MOSK的邊緣節點已經成功加入北京的集群我們回到北京的節點上查看集群的節點信息可以看到MOSK邊緣節點已經加入成功我們還可以看到集群中的邊緣組件已經附屬完成我們使用同樣的方法將硅谷的節點也加入集群硅谷的邊緣節點也已經加入成功了現在我們的SuperEdge邊緣Kubernetes集群已經搭建完成接下來我們在集群中附屬一個簡單的邊緣應用我們可以看到邊緣應用已經附屬完成我們通過瀏覽器也能成功訪問邊緣應用以上就是通過Edge2的命工具搭建SuperEdge邊緣Kubernetes集群的全部過程剛剛演示的邊緣集群的搭建是通過SuperEdge的Edge2的命工具實現的只需要一大簡單的Init命就可以換出搭建成SuperEdge邊緣Kubernetes集群那麼它具體是如何實現的呢Edge2的命是基於我們熟悉的Kubernetes開發的它完全侵入了Kubernetes所有的功能也就是說它不僅能夠搭建邊緣的Kubernetes集群它也能夠像Kubernetes一樣去搭建一個原生的Kubernetes集群並且在集群的搭建過程上比Kubernetes更加方便因為Edge2的命在Kubernetes搭建集群或添加節點的功能基礎之上形成了前置和後置步驟其中前置步驟是在使用Kubernetes構建集群之前對節點的環境做出實化安裝容器運營時後置步驟則是在Kubernetes構建集群之後自動地去部署SuperEdge的邊緣組件讓集群具有邊緣能力也就是說用戶不需要預先對節點做出實化配置也不需要預先安裝容器運行時只需要使用Edge2的命Init這樣一條簡單的命令就能搭建出SuperEdge邊緣集群大大降低了用戶體驗SuperEdge邊緣集群的成本Edge2的命不僅僅能夠從0到1搭建SuperEdge集群還能通過Edge2的命AddOn的命令在已有的Kubernetes集群中部署SuperEdge邊緣組件並且支持讓任意邊緣節點加入集群使得原生的Kubernetes集群也能具有邊緣能力第一個能力是它不僅僅能夠像原生的Kubernetes集群那樣管理中心應用和中心節點同時它也能去管理邊緣應用和邊緣節點並且兩者在使用上並沒有任何區別第二個能力是它能夠將任意位置的邊緣節點加入集群只要節點能夠訪問雲端的Kubernetes了無論節點在什麼位置都能夠用我們前面演示的Edge2的命Joy命令加入集群第三個能力集群還會具有管理海量邊緣佔點和灰度的能力這個能力它是依靠SuperEdge的Service Group的涉及實現的它能夠讓一個應用只需提交一次就能夠同時部署到數十個邊緣站點並且在各個站點內實現流量的閉環第四個能力是邊緣節點一旦加入集群後將具備邊緣自製的能力它是依靠SuperEdge的Line API Server組件實現的有了這個能力邊緣節點和中心集群即使發生斷網也不影響邊緣應用的正常運行而邊緣節點一旦發生斷點在節點恢復後也能自動地將邊緣應用重新拉起那麼Edge Admin AddOn的命令它具體是如何實現的呢Edge Admin AddOn的命令主要做了以下兩個事情首先它會自動生成邊緣節點加入集群所需要的配置因為我們在前面提到Edge Admin將節點加入集群的功能是基於Couple Admin Join命令實現的因此如果用戶的原生Couple Admin集群最開始並沒有使用Couple Admin的方式大減Edge Admin也會去遵循Couple Admin的使用規範自動地去生成邊緣節點加入集群所需要的ConfigMap配置文件有了這些配置文件Edge Admin就可以依賴Couple Admin的能力去生成邊緣節點加入集群所需要的Token和證書信息有了這些信息邊緣節點才能夠正常的去訪問雲端的Couple Admin將自己加入集群接下來第二步Edge Admin會以Edge Admin的方式為集群部署Couple Admin運組件這一步完成後原生的Couple Admin集群就已經具備了管理邊緣節點的能力了而邊緣節點則可以方便的通過Edge Admin Join命令加入集群接下來介紹一下Couple Admin的最佳實驗如果用戶希望嘗試從0到1去搭建和體驗Couple Admin的邊緣集群可以使用Edge Admin Elite一條命令進行集群的快速搭建而更多的情況下是用戶其實已經搭建了原生的Couple Admin集群但是有希望在現有的集群中去集成邊緣能力這時候就可以使用Edge Admin Admin的命令去為集群安裝所需要的邊緣組件如果用戶希望部署自定義的邊緣組件比如用戶希望在集群中使用Turner隧道的功能這個時候可以參考Edge Admin的實驗在Edge Admin中去集成自定義的代碼邏輯即可最後簡單來個小節我和良豪給大家分享了Couple Admin集群把Couple Admin推廣到邊緣的技術解密最主要講了三個點Couple Admin的四大核心特性設計的出發點和抽中Couple Admin的語言端和Edge Admin一件話搭建Couple Admin的KBS集群以及Couple Admin的最大實驗歡迎大家持續關注邊緣非故事容器看完項目Couple AdminThank you