11月28日視頻直播了KubeEdge系列課程第三課《KubeEdge邊緣自治設計原理》。html
課程首先回顧了KubeEdge的雲、邊、端三層總體架構。再針對KubeEdge的邊緣應用管理部分,分析了EdgeCore中模塊間通訊原理及Edgehub、MetaManager、EdgeD三個模塊的設計原理,最後演示瞭如何利用KubeEdge管理應用及在雲邊網絡斷開、邊緣節點重啓等狀況下如何實現邊緣自治,本次課程詳情見如下回放。node
本次課程的回放地址:git
媒體中心github
問1 :KubeEdge中容器編排是經過雲上的controller manager來進行編排的嗎?除了下發邊緣完整的api對象指望狀態,邊緣發送ack來實現消息一致性外,邊緣容器的狀態仍是要上報到雲端,這個一致性是如何實現的?golang
答1:KubeEdge構建在K8s原生的調度與編排能力之上,它負責將應用的元數據可靠的下發到邊緣節點。邊緣端週期性上報狀態node、pod信息,會不斷重試上報,所以目前還未計劃實現排隊及ACK校驗等功能。web
問2:如何加入社區,參與一些工做?編程
答2:若是是新人剛開始參與社區,能夠作一些簡單的工做,例如補齊文檔、添加測試用例等,社區會有標籤爲「help wanted」或「good first issue」的issue,都適用於新手開發者。api
若是有相關開發經驗,能夠參與社區Bug修復、大特性的設計與實現,社區歡迎每一位貢獻者!websocket
問3:KubeEdge雲邊之間的消息是如何收發的,是通過edgehub~cloudhub之間的websocket嗎?是否有具體的示例?網絡
答3:KubeEdge雲邊消息傳遞是經過EdgeHub與CloudHub間的Websocket或Quic協議的長鏈接傳遞的,具體方式可參考相應源碼。
問4:若是有學術想法,如何整合本身的想法到KubeEdge中?好比Kubernetes 就提供了各類語言的Client,使得能夠更好的整合本身的想法,KubeEdge有沒有相似的編程接口?
答4:KubeEdge構建在K8s原生的調度與編排能力之上,與K8s的API是100%兼容的,對於K8s的API對象可使用K8s原生的Client來操做。KubeEdge中自定義的Device CRD後續也會按K8s標準生成golang語言的Client。所以能夠按照K8s原生的方式來操做KubeEdge。
問5:edgecore有時候出站不穩定,該進程有時自動關閉,是什麼緣由?
答5:若是出現程序自動退出、重啓的問題,建議查看對應的應用日誌,將問題及日誌以Issue的方式提到社區解決。
問6:如何實現雲邊數據一致性?
答6:雲邊數據一致性在第二次課中有詳細介紹,歡迎查看第二次課程回放及PPT。
【免費直播課】KubeEdge技術詳解與實戰!六節課get擁抱邊緣計算的正確姿式!_雲容器全棧_-華爲雲論壇
問7:KubeEdge的API調用方式,是否計劃提供sdk調用方式?
答7: 目前在雲邊還不支持使用「kubectl logs」查看應用日誌。已有計劃,會在後續版本中支持,有參與意向的同窗也可參與此Issue討論。
Add `kubectl log` support to kubeege · Issue #1014 · kubeedge/kubeedge
問8:邊緣端edgecore重啓,不會自動拉起使用configmap的pod,未使用configmap的pod能夠正常啓動嗎?
答8:首先考慮edgecore重啓不會引發節點業務Pod的重啓,若是是邊緣節點宕機引發整個節點的重啓,應該考慮該Pod是否已經遷移到其餘節點。
問9:如何在Ubuntu下用keadm init命令部署kubeedge v1.1版本?
答9:在最後一次課程(第六課:實踐篇)中會有關於部署、應用實踐等詳細的演示,歡迎持續關注KubeEdge直播課。
項目的地址(歡迎Star、Folk,各類Issue、PR):