• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于海思3559A平臺的容器集群管理技術(shù)研究

      2022-07-21 02:43:44吳晗胡寧蒲駿瑋
      電子制作 2022年12期
      關(guān)鍵詞:海思開發(fā)板鏡像

      吳晗,胡寧,蒲駿瑋

      (航空工業(yè)西安航空計算技術(shù)研究所, 陜西西安,710065)

      0 引言

      海思3559A芯片是華為海思技術(shù)有限公司推出的一款A(yù)RM架構(gòu)的智能芯片,它提供了8K30/4K120廣播級圖像質(zhì)量的數(shù)字視頻錄制,支持H.265編碼輸出或影視級的RAW數(shù)據(jù)輸出,并集成高性能ISP處理。在支持8K30/4K120視頻錄制下,Hi3559A提供硬化的6-Dof 數(shù)字防抖,減少了對機(jī)械云臺的依賴。Hi3559A集成了雙核A73和雙核A53,獨(dú)創(chuàng)性的大小核架構(gòu)和雙操作系統(tǒng),使得功耗和啟動時間達(dá)到均衡。集成了海思特有的SVP(Smart Vision Platform)平臺,提供了高效且多樣化的計算資源,支持用戶開發(fā)各種人工智能應(yīng)用。還同時集成雙核DSP和雙核NNIE神經(jīng)網(wǎng)絡(luò)計算引擎,算力高達(dá)4T,高算力可以更好地支持人工智能在嵌入式領(lǐng)域的應(yīng)用,在邊緣計算、自動駕駛等領(lǐng)域有著極大的應(yīng)用前景。

      傳統(tǒng)上使用虛擬機(jī)程序或容器,必須基于目標(biāo)平臺構(gòu)建應(yīng)用程序,使其能夠在對應(yīng)體系結(jié)構(gòu)上高效運(yùn)行。雖然存在著模擬硬件平臺來運(yùn)行為其它體系結(jié)構(gòu)編譯的軟件的虛擬機(jī)解決方案,但是此類解決方案對性能的影響很大,不適用于嵌入式系統(tǒng)。而容器及容器集群管理技術(shù)的引入提供了管理軟件開發(fā)、測試、構(gòu)建和部署的簡單方法。它們減少了在新嵌入式開發(fā)板上重新部署嵌入式軟件的痛苦,是將服務(wù)和應(yīng)用程序重新部署到多個Linux發(fā)行版的理想選擇。使用容器集群管理系統(tǒng)來編排調(diào)度整個集群中運(yùn)行的容器,可以為整個系統(tǒng)提供任務(wù)的動態(tài)遷移、彈性伸縮、負(fù)載均衡等諸多新特性。

      1 容器集群管理技術(shù)介紹

      ■1.1 容器集群管理技術(shù)發(fā)展現(xiàn)狀

      容器集群管理技術(shù)相較于容器技術(shù)更為上層,目的是實(shí)現(xiàn)在容器集群上進(jìn)行簡單的容器編排調(diào)度和部署。

      目前國外容器集群管理工具主要有Kubernetes、Docker Swarm、Mesos等。Docker Swarm是Docker公司推出的原生容器集群管理系統(tǒng),它主要通過Docker的Restful API并配合Docker公司的另一個工具Docker Compose,實(shí)現(xiàn)在容器集群上進(jìn)行簡單的容器編排和部署。但是Docker Swarm的功能較簡單,只適合較小集群的管理,沒有集群的統(tǒng)一監(jiān)控系統(tǒng)等組件。Mesosphere公司在Apache Mesos的基礎(chǔ)之上也開發(fā)了一個容器集群管理系統(tǒng),稱之為 Marathon。Apache Mesos是同 Apache Yarn一樣是一個資源管理調(diào)度器,并非為容器的管理調(diào)度專門開發(fā)的工具。Kubernetes,簡稱K8S,是谷歌公司基于Borg在2014年6月開源的大規(guī)模容器集群管理系統(tǒng),它是谷歌公司十幾年以來大規(guī)模應(yīng)用容器技術(shù)的經(jīng)驗累積和升華的一個重要結(jié)果。它可以為容器化的應(yīng)用提供運(yùn)行,服務(wù)發(fā)現(xiàn),資源調(diào)度等一套功能。

      K3S是輕量級Kubernetes發(fā)行版,易于安裝,內(nèi)存減半,所有二進(jìn)制文件不到40mb,k3s是完全兼容的Kubernetes發(fā)行版,有以下更改:移除過時的功能、Alpha功能、非默認(rèn)功能,這些功能在大多數(shù)Kubernetes集群中已不可用。刪除內(nèi)置插件,如云供應(yīng)商插件和存儲插件,可用外部插件程序替換。添加SQLite3作為默認(rèn)的數(shù)據(jù)存儲。etcd3仍然可用,但并非默認(rèn)項。包含在一個簡單的啟動程序當(dāng)中,可以處理復(fù)雜的TLS和其他選項。幾乎沒有操作系統(tǒng)依賴性,僅需要健全的內(nèi)核和cgroup掛載。k3s軟件包所需的依賴:containerd、Flannel、CoreDNS、CNI及主機(jī)系統(tǒng)服務(wù) (iptables, socat, etc)。

      ■1.2 典型容器集群管理技術(shù)介紹

      kubenetes,也即K8S集群,以Pod為最基本的操作單元,它包含一個或者多個相關(guān)的容器,將多個容器都“封裝”到一個虛擬的主機(jī)里,這樣容器之間就可以通過localhost進(jìn)行通信。K8S集群主要由兩個節(jié)點(diǎn)組成,它們分別是:Master和Node。其總體架構(gòu)如圖1所示。

      圖1 K8S總體架構(gòu)

      Master節(jié)點(diǎn)運(yùn)行著四個組件:etcd、API Server、Controller Manager、Scheduler,除了etcd,后面三個組件主要負(fù)責(zé)對集群中的資源進(jìn)行管理和調(diào)度,它們構(gòu)成了K8S的總控中心。API Server是資源對象的操作入口,而且就跟main()函數(shù)是程序唯一執(zhí)行入口一樣,API Server也是唯一的。Controller Manager是集群內(nèi)部的控制管理中心,主要用于K8S的故障排查和修復(fù)。Scheduler是K8S集群中的調(diào)度器,負(fù)責(zé)Pod在集群節(jié)點(diǎn)中的調(diào)度分配。

      Node節(jié)點(diǎn)是相對于Master來說的工作主機(jī),它既可以是物理的,也可以是虛擬的,每個Node上管理著Pod生命周期的kubelet同時也被Master管理,Node的主要信息有:地址、運(yùn)行狀態(tài)、條件、系統(tǒng)容量等,在Node節(jié)點(diǎn)上運(yùn)行的服務(wù)進(jìn)程主要有kubelet、kube-proxy和容器運(yùn)行時。Node節(jié)點(diǎn)往往不止一個,它們負(fù)責(zé)對管理本節(jié)點(diǎn)的Pod的生命周期和服務(wù)代理。kubelet負(fù)責(zé)當(dāng)前Node節(jié)點(diǎn)的Pod的創(chuàng)建、監(jiān)控、修改和刪除等。Proxy負(fù)責(zé)Service代理,同時也是軟件模式的負(fù)載均衡器。etcd是用來存儲所有 Kubernetes 的集群狀態(tài)的,它除了具備狀態(tài)存儲的功能,還有事件監(jiān)聽和訂閱、Leader選舉的功能,所謂事件監(jiān)聽和訂閱,各個其他組件通信,都并不是互相調(diào)用 API 來完成的,而是把狀態(tài)寫入 etcd(相當(dāng)于寫入一個消息),其他組件通過監(jiān)聽 etcd的狀態(tài)的的變化(相當(dāng)于訂閱消息),然后做后續(xù)的處理,然后再一次把更新的數(shù)據(jù)寫入 etcd。所謂 Leader 選舉,其它一些組件比如 Scheduler,為了做實(shí)現(xiàn)高可用,通過 etcd從多個(通常是3個)實(shí)例里面選舉出來一個做Master,其他都是Standby。

      API Server作為集群的核心,負(fù)責(zé)集群各功能模塊之間的通信。集群內(nèi)的功能模塊通過Api Server將信息存入到etcd,其他模塊通過Api Server讀取這些信息,從而實(shí)現(xiàn)模塊之間的信息交互。Node節(jié)點(diǎn)上的Kubelet每隔一個時間周期,通過Api Server報告自身狀態(tài),Api Server接收到這些信息后,將節(jié)點(diǎn)信息保存到etcd中。Controller Manager中 的node controller通過Api server定期讀取這些節(jié)點(diǎn)狀態(tài)信息,并做響應(yīng)處理。Scheduler監(jiān)聽到某個Pod創(chuàng)建的信息后,檢索所有符合該pod要求的節(jié)點(diǎn)列表,并將pod綁定到節(jié)點(diǎn)列表中最符合要求的節(jié)點(diǎn)上。如果scheduler監(jiān)聽到某個Pod被刪除,則調(diào)用api server刪除該P(yáng)od資源對象。kubelet監(jiān)聽pod信息,如果監(jiān)聽到pod對象被刪除,則刪除本節(jié)點(diǎn)上的相應(yīng)的pod實(shí)例,如果監(jiān)聽到修改Pod信息,則會相應(yīng)地修改本節(jié)點(diǎn)的Pod實(shí)例。

      2 基于海思3559的容器集群管理框架

      基于海思3559A的容器集群管理框架如圖2所示,框架為:海思3559A+嵌入式Linux+Docker+Harbor+K3S。

      圖2 基于海思3559A的容器集群管理框架

      海思3559A芯片作為嵌入式ARM開發(fā)板,具有高算力、低功耗等特性,為嵌入式領(lǐng)域人臉識別,語音識別,智能算法等人工智能應(yīng)用提供了硬件支撐。容器技術(shù)提供了管理軟件開發(fā)、測試、構(gòu)建和部署的簡單方法。

      同時使用Harbor作為容器鏡像倉庫嗎,Docker容器應(yīng)用的開發(fā)和運(yùn)行離不開可靠的鏡像管理,雖然Docker官方也提供了公共的鏡像倉庫,但是從安全和效率等方面考慮,部署私有環(huán)境內(nèi)的Registry是必要的。Harbor是一個由VMware公司開源的企業(yè)級的Docker Registry管理項目,用于存儲和分發(fā)Docker鏡像的開源鏡像倉庫,用于容器鏡像管理,主要提供權(quán)限管理(RBAC)、LDAP、日志審核、管理界面、自我注冊、基于角色的鏡像訪問控制、鏡像復(fù)制、鏡像漏洞分析、鏡像驗真和操作審計、中文支持等功能。

      運(yùn)行在整個集群中的容器需要容器集群管理系統(tǒng)對其進(jìn)行編排調(diào)度,占據(jù)統(tǒng)治地位的Kubernetes集成了許多組件,源碼規(guī)模龐大,超百萬行,在嵌入式領(lǐng)域資源受限的情況下難以直接應(yīng)用。因此,選用輕量級Kubernetes發(fā)行版K3S,更適合在ARM架構(gòu)、嵌入式領(lǐng)域、以及邊緣環(huán)境下運(yùn)行使用,海思3559A芯片配合輕量化容器集群管理系統(tǒng)K3S可以滿足邊緣計算、物聯(lián)網(wǎng)、ARM架構(gòu)平臺下對容器集群管理的需求。

      3 測試與驗證

      ■3.1 測試環(huán)境

      實(shí)驗硬件環(huán)境由五塊海思3559A開發(fā)板組成,開發(fā)板之間經(jīng)由網(wǎng)線通過交換機(jī)聯(lián)通,構(gòu)成五個節(jié)點(diǎn)的容器集群,控制節(jié)點(diǎn)1、控制節(jié)點(diǎn)2、控制節(jié)點(diǎn)3作為主節(jié)點(diǎn),運(yùn)行K3S Master進(jìn)程,工作節(jié)點(diǎn)1、工作節(jié)點(diǎn)2作為工作節(jié)點(diǎn),運(yùn)行K3S節(jié)點(diǎn)代理進(jìn)程,五個節(jié)點(diǎn)上都部署了嵌入式Linux操作系統(tǒng),每個節(jié)點(diǎn)都安裝了Docker容器引擎,另外控制節(jié)點(diǎn)1布置Harbor鏡像倉庫,用于整個集群鏡像的存儲拉取和推送,測試硬件環(huán)境如圖3所示。

      圖3 測試硬件環(huán)境

      ■3.2 測試結(jié)果及分析

      編寫任務(wù)A與負(fù)載B兩類容器化應(yīng)用程序。任務(wù)A:http服務(wù)器應(yīng)用,其作用是返回當(dāng)前任務(wù)運(yùn)行的宿主機(jī)名稱。負(fù)載B:腳本訪問程序,其工作內(nèi)容是使用腳本不間斷訪問任務(wù)A所設(shè)立的服務(wù)器應(yīng)用,訪問強(qiáng)度可以自定義。

      3.2.1 動態(tài)遷移

      當(dāng)集群處于初始狀態(tài)時,工作節(jié)點(diǎn)1上容器內(nèi)運(yùn)行任務(wù)A:http服務(wù)器應(yīng)用,使用負(fù)載B,不間斷訪問此服務(wù)。此時采用斷電/斷開網(wǎng)絡(luò)連接等方式使得工作節(jié)點(diǎn)1失效,k3s容器集群管理系統(tǒng)可以不經(jīng)人為干預(yù)自動地將工作節(jié)點(diǎn)1上運(yùn)行的任務(wù)A遷移至工作節(jié)點(diǎn)2上運(yùn)行,具體流程如下:當(dāng)K3S控制節(jié)點(diǎn)發(fā)現(xiàn)工作節(jié)點(diǎn)1失聯(lián),任務(wù)A無法正常運(yùn)行時,經(jīng)過確認(rèn)以及重試無法重新連接時,向工作節(jié)點(diǎn)2發(fā)送啟動任務(wù)A命令,工作節(jié)點(diǎn)2上的節(jié)點(diǎn)代理kubelet收到消息后,調(diào)用Docker容器引擎從控制節(jié)點(diǎn)1上部署的Harbor中拉取鏡像,然后創(chuàng)建容器任務(wù)A,實(shí)現(xiàn)任務(wù)的動態(tài)遷移。

      3.2.2 彈性伸縮

      當(dāng)集群處于初始狀態(tài)時,工作節(jié)點(diǎn)1上容器內(nèi)運(yùn)行任務(wù)A:http服務(wù)器應(yīng)用,使用負(fù)載B,不間斷訪問此服務(wù)。增大負(fù)載B的訪問強(qiáng)度,當(dāng)超出工作節(jié)點(diǎn)1上任務(wù)A的設(shè)計承受范圍時,系統(tǒng)根據(jù)設(shè)置自動擴(kuò)容,在工作節(jié)點(diǎn)2上啟動新的容器,容器中部署任務(wù)A。工作節(jié)點(diǎn)1與工作節(jié)點(diǎn)2上同時運(yùn)行任務(wù)A,共同承擔(dān)訪問流量壓力,且都在設(shè)計承受范圍內(nèi),系統(tǒng)不再擴(kuò)容。減小負(fù)載B的訪問強(qiáng)度,回歸初始狀態(tài)值,工作節(jié)點(diǎn)4和工作節(jié)點(diǎn)2負(fù)載降低,低于預(yù)定下限值后,K3S容器管理系統(tǒng)執(zhí)行縮容操作,隨機(jī)保留一個工作節(jié)點(diǎn)之上的任務(wù)A,即滿足負(fù)載B的訪問需求。實(shí)現(xiàn)了系統(tǒng)的彈性伸縮。

      3.2.3 負(fù)載均衡

      當(dāng)集群處于初始狀態(tài)時,工作節(jié)點(diǎn)1、工作節(jié)點(diǎn)2上都運(yùn)行著任務(wù)A,此時運(yùn)行負(fù)載B,訪問流量會根據(jù)預(yù)先設(shè)定的策略(此處為均分策略),將訪問流量平均發(fā)送到工作節(jié)點(diǎn)1和工作節(jié)點(diǎn)2之上,實(shí)現(xiàn)了負(fù)載均衡。

      3.2.4 測試結(jié)果分析

      在ARM架構(gòu)的海思3559A平臺上使用K3S對容器集群進(jìn)行管理時:系統(tǒng)可以將一個節(jié)點(diǎn)之上的任務(wù)遷移至另一個節(jié)點(diǎn),實(shí)現(xiàn)了動態(tài)遷移;同時,系統(tǒng)能夠隨請求的增減,實(shí)現(xiàn)系統(tǒng)擴(kuò)容,在業(yè)務(wù)下降的時候,能實(shí)現(xiàn)系統(tǒng)縮容,實(shí)現(xiàn)了動態(tài)伸縮;此外,系統(tǒng)將網(wǎng)絡(luò)請求進(jìn)行平衡,分?jǐn)偟蕉鄠€嵌入式開發(fā)板上進(jìn)行運(yùn)行,將網(wǎng)絡(luò)流量平均發(fā)送到多個工作節(jié)點(diǎn)上,保證了整個業(yè)務(wù)系統(tǒng)的高可用,實(shí)現(xiàn)了負(fù)載均衡。

      總結(jié)下來,在5片海思3559A嵌入式開發(fā)板所構(gòu)成的集群上,通過引入容器和輕量化容器集群管理技術(shù),實(shí)現(xiàn)了容器化工作任務(wù)的動態(tài)遷移、彈性伸縮、負(fù)載均衡。

      4 總結(jié)

      本文使用5塊部署了嵌入式Linux的海思3559A芯片開發(fā)板,在其上運(yùn)行了容器集群,并使用輕量級容器集群管理系統(tǒng)K3S對整個集群的容器化應(yīng)用進(jìn)行管理,編寫程序?qū)討B(tài)遷移、彈性伸縮、負(fù)載均衡等功能特性進(jìn)行了測試驗證。未來隨著云原生、邊緣計算等向嵌入式領(lǐng)域擴(kuò)展,更多高算力、低功耗的嵌入式開發(fā)板的出現(xiàn),容器及容器集群管理系統(tǒng)在嵌入式領(lǐng)域?qū)⒂瓉砀訌V闊的應(yīng)用前景。

      猜你喜歡
      海思開發(fā)板鏡像
      鏡像
      華為海思宣布推出首款華為海思LTE Cat4平臺Balong 711
      鏡像
      小康(2018年23期)2018-08-23 06:18:52
      Microchip最新推出兩款PIC32 Curiosity開發(fā)板
      淺析單片機(jī)開發(fā)板的設(shè)計與制作
      電子制作(2017年22期)2017-02-02 07:10:14
      鏡像
      小康(2015年4期)2015-03-31 14:57:40
      鏡像
      小康(2015年6期)2015-03-26 14:44:27
      麒麟創(chuàng)世記:海思是怎樣煉成的?
      通信世界(2014年16期)2014-06-09 12:33:43
      Mouser為您呈上開發(fā)關(guān)鍵之STMicroelectronics Nucleo開發(fā)板
      Arduino和Atmel發(fā)布Arduino Zero開發(fā)板
      松潘县| 隆子县| 双牌县| 商南县| 凉城县| 印江| 图片| 隆尧县| 怀宁县| 兰溪市| 株洲市| 天气| 莫力| 调兵山市| 庄河市| 平原县| 扎囊县| 开江县| 察雅县| 云龙县| 望谟县| 德昌县| 增城市| 贵定县| 湘乡市| 屏东县| 平昌县| 肇庆市| 工布江达县| 麻江县| 驻马店市| 京山县| 来凤县| 武冈市| 上高县| 靖远县| 长顺县| 尤溪县| 六枝特区| 张北县| 汝南县|