国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

「連載」邊緣計(jì)算(十七)02-20:邊緣部分源碼(源碼分析篇)

這篇具有很好參考價(jià)值的文章主要介紹了「連載」邊緣計(jì)算(十七)02-20:邊緣部分源碼(源碼分析篇)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

(接上篇)

EdgeCore之edged

下面對(duì)EdgeCore組件進(jìn)行剖析,因?yàn)?span style="color:#ff0000;">EdgeCore中的功能組件比較多,共包括devicetwin、edged、edgehub、eventbusedgemesh、metamanager、servicebus和test共8個(gè)功能模塊。限于篇幅,本文只對(duì)edged的具體邏輯以及edged調(diào)用容器運(yùn)行時(shí)進(jìn)行剖析。

1.edged的具體邏輯剖析

EdgeCore模塊注冊(cè)函數(shù)入手,具體如下所示。

KubeEdge/edge/cmd/EdgeCore/app/server.go

// registerModules?register all the modules started in EdgeCore

func?registerModules() {

...

edged.Register()

...

}

進(jìn)入registerModules()函數(shù)中的edged.Register(),具體如下所示。

KubeEdge/edge/pkg/edged/edged.go

// Register register edged

func?Register() {

edged, err := newEdged()

if err != nil {

klog.Errorf("init new edged error, %v", err)

return

}

core.Register(edged)

}

Register()函數(shù)中主要做了如下兩件事:

1)初始化edged(edged, err := newEdged());

2)注冊(cè)將已經(jīng)實(shí)例化的edged struct(core.Register(edged))。

下面深入剖析初始化edged過程中具體做了哪些事情。進(jìn)入newEdged()函數(shù),具體內(nèi)容如下所示。

KubeEdge/edge/pkg/edged/edged.go

//newEdged?creates new edged object and initialises?it

func?newEdged() (*edged, error) {

conf := getConfig()

backoff := flowcontrol.NewBackOff(backOffPeriod, MaxContainerBackOff)

podManager?:= podmanager.NewpodManager()

policy := images.ImageGCPolicy{

...

}

// build new object to match interface

recorder := record.NewEventRecorder()

ed := &edged{

...

}

...

ed.livenessManager?= proberesults.NewManager()

...

statsProvider?:= edgeimages.NewStatsProvider()

...

//create and start the docker shim running as a grpc?server

if conf.remoteRuntimeEndpoint == dockerShimEndpoint?|| conf.remoteRuntimeEndpoint == dockerShimEndpointDeprecated {

streamingConfig?:= &streaming.Config{}

dockerClientConfig?:= &dockershim.ClientConfig{

dockerEndpoint: ???????????conf.dockerAddress,

ImagePullProgressDeadline: time.Duration(conf.imagePullProgressDeadline) * time.Second,

EnableSleep: ??????????????true,

WithTraceDisabled: ????????true,

}

pluginConfigs?:= dockershim.NetworkPluginSettings{

...

}

...

ds, err := dockershim.NewdockerService(dockerClientConfig, conf.podSandboxImage, streamingConfig,

&pluginConfigs, cgroupName, cgroupDriver, dockershimRootDir, redirectContainerStream)

if err != nil {

return nil, err

}

klog.Infof("RemoteRuntimeEndpoint: %q, remoteImageEndpoint: %q",

conf.remoteRuntimeEndpoint, conf.remoteRuntimeEndpoint)

klog.Info("Starting the GRPC server for the docker CRI shim.")

server := dockerremote.NewdockerServer(conf.remoteRuntimeEndpoint, ds)

if err := server.Start(); err != nil {

return nil, err

}

}

ed.clusterDNS?= convertStrToIP(conf.clusterDNS)

ed.dnsConfigurer?= kubedns.NewConfigurer(recorder, nodeRef, ed.nodeIP, ed.clusterDNS, conf.clusterDomain, ResolvConfDefault)

containerRefManager?:= kubecontainer.NewRefManager()

httpClient?:= &http.Client{}

runtimeService, imageService, err := getRuntimeAndImageServices(conf.remoteRuntimeEndpoint, conf.remoteRuntimeEndpoint, conf.RuntimeRequestTimeout)

if err != nil {

return nil, err

}

if ed.os == nil {

ed.os = kubecontainer.RealOS{}

}

ed.clcm, err = clcm.NewContainerLifecycleManager(DefaultRootDir)

var machineInfo?cadvisorapi.MachineInfo

machineInfo.MemoryCapacity?= uint64(conf.memoryCapacity)

containerRuntime, err := kuberuntime.NewKubeGenericRuntimeManager(

...

)

cadvisorInterface, err := cadvisor.New("")

containerManager, err := cm.NewContainerManager(mount.New(""),

cadvisorInterface,

cm.NodeConfig{

...

},

false,

conf.devicePluginEnabled,

recorder)

ed.containerRuntime?= containerRuntime

ed.containerRuntimeName = RemoteContainerRuntime

ed.containerManager?= containerManager

ed.runtimeService?= runtimeService

imageGCManager, err := images.NewImageGCManager(ed.containerRuntime, statsProvider, recorder, nodeRef, policy, conf.podSandboxImage)

...

ed.imageGCManager?= imageGCManager

containerGCManager, err := kubecontainer.NewContainerGC(containerRuntime, containerGCPolicy, &containers.KubeSourcesReady{})

...

ed.containerGCManager?= containerGCManager

ed.server = server.NewServer(ed.podManager)

ed.volumePluginMgr, err = NewInitializedVolumePluginMgr(ed, ProbeVolumePlugins(""))

...

return ed, nil

}

newEdged()函數(shù)的定義中,我們可以知道其做很多事情,具體如下。

1)獲取edged相關(guān)配置(conf := getConfig());

2)初始化podmanagerpodManager?:= podmanager.NewpodManager());

3)初始化edged struct(ed := &edged{});

4)初始化 edged的livenessManager;

5)初始化edged的鏡像存放地;

6)創(chuàng)建并啟動(dòng)dockershimgrpc?server;

7)?初始化運(yùn)行時(shí)服務(wù)和鏡像服務(wù);

8)初始化通用容器運(yùn)行時(shí)服務(wù);

9)初始化鏡像垃圾回收管理器;

10)初始化容器垃圾回收器;

11)初始化edged的server;

12)初始化edged的volume plugin管理器。

針對(duì)以上動(dòng)作,筆者重點(diǎn)分析創(chuàng)建并啟動(dòng)dockershimgrpc?server。dockershim是edged與容器運(yùn)行時(shí)交互的管道,所以edged對(duì)容器操作在dockershim的方法中都會(huì)得到體現(xiàn)。dockershim服務(wù)的初始化函數(shù)定義具體如下所示。

?「未完待續(xù)……文章來源地址http://www.zghlxwxcb.cn/news/detail-837043.html

到了這里,關(guān)于「連載」邊緣計(jì)算(十七)02-20:邊緣部分源碼(源碼分析篇)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 人工智能基礎(chǔ)部分20-生成對(duì)抗網(wǎng)絡(luò)(GAN)的實(shí)現(xiàn)應(yīng)用

    人工智能基礎(chǔ)部分20-生成對(duì)抗網(wǎng)絡(luò)(GAN)的實(shí)現(xiàn)應(yīng)用

    大家好,我是微學(xué)AI,今天給大家介紹一下人工智能基礎(chǔ)部分20-生成對(duì)抗網(wǎng)絡(luò)(GAN)的原理與簡單應(yīng)用。生成對(duì)抗網(wǎng)絡(luò)是一種由深度學(xué)習(xí)模型構(gòu)成的神經(jīng)網(wǎng)絡(luò)系統(tǒng),由一個(gè)生成器和一個(gè)判別器相互博弈來提升模型的能力。本文將從以下幾個(gè)方面進(jìn)行闡述:生成對(duì)抗網(wǎng)絡(luò)的概念、

    2024年02月09日
    瀏覽(91)
  • 【CCF推薦期刊】1/2/3區(qū)SCI,計(jì)算機(jī)通信、算法、人工智能、邊緣計(jì)算、存儲(chǔ)等領(lǐng)域,3個(gè)月左右錄用

    1/2區(qū)計(jì)算機(jī)通信類 (CCF-C類) 【期刊簡介】IF:5.0-6.0,JCR1/2區(qū),中科院3區(qū) 【檢索情況】SCIEI 雙檢,正刊 【參考周期】走期刊部系統(tǒng),3-5個(gè)月左右錄用 【截稿時(shí)間】 2023/3/31 【征稿領(lǐng)域】 涵蓋未來計(jì)算機(jī)通信網(wǎng)絡(luò)各個(gè)方面,如與邊緣霧計(jì)算、5G及其他物聯(lián)網(wǎng)應(yīng)用的結(jié)合研究

    2024年02月10日
    瀏覽(32)
  • 基于人工智能與邊緣計(jì)算Aidlux的鳥類檢測驅(qū)趕系統(tǒng)(可修改為coco 80類目標(biāo)檢測)

    基于人工智能與邊緣計(jì)算Aidlux的鳥類檢測驅(qū)趕系統(tǒng)(可修改為coco 80類目標(biāo)檢測)

    ●項(xiàng)目名稱 基于人工智能與邊緣計(jì)算Aidlux的鳥類檢測驅(qū)趕系統(tǒng)(可修改為coco 80類目標(biāo)檢測) ●項(xiàng)目簡介 本項(xiàng)目在Aidlux上部署鳥類檢測驅(qū)趕系統(tǒng),通過視覺技術(shù)檢測到有鳥類時(shí),會(huì)進(jìn)行提示。并可在源碼上修改coco 80類目標(biāo)檢測索引直接檢測其他79類目標(biāo),可以直接修改、快速

    2024年02月12日
    瀏覽(22)
  • 12KM02E-V0002 3EGM030300R0002 模塊化和加固的邊緣計(jì)算加速

    12KM02E-V0002 3EGM030300R0002 模塊化和加固的邊緣計(jì)算加速

    12KM02E-V0002 3EGM030300R0002 模塊化和加固的邊緣計(jì)算加速 隨著邊緣人工智能解決方案的興起,對(duì)實(shí)時(shí)洞察和自主決策的需求顯著增長。這也帶來了對(duì)變革性技術(shù)的高度需求,這些技術(shù)可以在堅(jiān)固的邊緣支持和提供最佳性能。為了應(yīng)對(duì)技術(shù)革命,Premio推出了模塊化EDGEboost節(jié)點(diǎn),以提

    2024年02月07日
    瀏覽(16)
  • hnu計(jì)算機(jī)與人工智能概論答案2.20

    hnu計(jì)算機(jī)與人工智能概論答案2.20

    補(bǔ)一下第一次作業(yè) 第1關(guān):數(shù)據(jù)輸入與輸出 第一題 在屏幕上輸出字符串:hi, \\\"how are you\\\" ,I\\\'m fine and you 第二題 從鍵盤輸入兩個(gè)整數(shù),計(jì)算兩個(gè)數(shù)相除的商與余數(shù) 假設(shè)輸入12,5 輸出為 2 2 第三題 在屏幕上 輸入一個(gè)三位數(shù)輸出該數(shù)的個(gè)位、十位和百位數(shù)字 假設(shè)輸入125 輸出為 5 2

    2024年02月08日
    瀏覽(30)
  • SpringBoot源碼解讀與原理分析(二十七)嵌入式Tomcat

    SpringBoot源碼解讀與原理分析(二十七)嵌入式Tomcat

    當(dāng)Web應(yīng)用需要部署運(yùn)行時(shí),傳統(tǒng)的做法是將項(xiàng)目打包成war包,然后部署到外置的Web容器中(如最常用的Tomcat容器)。 SpringBoot的一大重要特性是支持嵌入式Web容器,基于SpringBoot的Web應(yīng)用僅憑一個(gè)單獨(dú)的jar包即可獨(dú)立運(yùn)行。 8.1.1 嵌入式Tomcat與普通Tomcat 嵌入式Tomcat是一種可以嵌

    2024年02月22日
    瀏覽(23)
  • 邊緣計(jì)算AI智能分析網(wǎng)關(guān)V4算力分析及應(yīng)用場景

    邊緣計(jì)算AI智能分析網(wǎng)關(guān)V4算力分析及應(yīng)用場景

    智能分析網(wǎng)關(guān)V4是TSINGSEE青犀視頻推出的一款高性能、低功耗的軟硬一體AI邊緣計(jì)算硬件設(shè)備,硬件采用BM1684芯片,集成高性能8核ARM A53,主頻高達(dá)2.3GHz。硬件內(nèi)置近40種AI算法模型,支持對(duì)接入的視頻圖像進(jìn)行人、車、物、行為等實(shí)時(shí)檢測分析,上報(bào)識(shí)別結(jié)果,并能進(jìn)行語音告

    2024年01月20日
    瀏覽(34)
  • LinkedList部分底層源碼分析

    LinkedList部分底層源碼分析

    JDK版本為1.8.0_271,以插入和刪除元素為例,LinkedList部分源碼如下: 插入刪除結(jié)點(diǎn)的過程如圖所示: 只有1個(gè)元素的LinkedList 包含4個(gè)元素的LinkedList add(E e)方法 add(int index,E e)方法 remove(Object obj)方法 remove(int index)方法

    2024年04月13日
    瀏覽(26)
  • 基于邊緣計(jì)算的物聯(lián)網(wǎng)數(shù)據(jù)處理與分析

    邊緣計(jì)算面臨著數(shù)據(jù)安全與隱私保護(hù)、網(wǎng)絡(luò)穩(wěn)定性等挑戰(zhàn),但同時(shí)也帶來了更強(qiáng)的實(shí)時(shí)性和本地處理能力,為企業(yè)降低了成本和壓力,提高了數(shù)據(jù)處理效率。因此,邊緣計(jì)算既帶來了挑戰(zhàn)也帶來了機(jī)遇,需要我們不斷地研究和創(chuàng)新,以應(yīng)對(duì)日益復(fù)雜的應(yīng)用場景和技術(shù)需求 ?

    2024年01月18日
    瀏覽(18)
  • 邊緣計(jì)算AI智能分析網(wǎng)關(guān)V4客流統(tǒng)計(jì)算法的概述

    邊緣計(jì)算AI智能分析網(wǎng)關(guān)V4客流統(tǒng)計(jì)算法的概述

    客流量統(tǒng)計(jì)AI算法是一種基于人工智能技術(shù)的數(shù)據(jù)分析方法,通過機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等算法,實(shí)現(xiàn)對(duì)客流量的實(shí)時(shí)監(jiān)測和統(tǒng)計(jì)。該算法主要基于機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺技術(shù),其基本流程包括圖像采集、圖像預(yù)處理、目標(biāo)檢測、目標(biāo)跟蹤和客流量統(tǒng)計(jì)等步驟,通過在監(jiān)控視頻

    2024年01月18日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包