北京時間9月17日,KubeEdge發佈了新的特性版本v1.1。git
在上個版本發佈EdgeMesh、EdgeSite等特性後,KubeEdge持續保持高速的迭代開發,本次發佈的v1.1新版本包含了容器存儲標準CSI集成、對象校驗組件Admission Webhook、單機一鍵啓動KubeEdge集羣工具、邊緣節點支持DockerShim、升級Kubernetes依賴到v1.15 Stable版本,以及25處問題修復。github
Release下載地址:https://github.com/kubeedge/kubeedge/releases/tag/v1.1.0數據庫
接下來本文將逐一解讀KubeEdge v1.1的新特性。api
KubeEdge即Kube+Edge,顧名思義就是依託K8s的容器編排和調度能力,實現雲邊協同、計算下沉、海量設備的平滑接入。架構
**KubeEdge架構上分爲三個部分,分別是雲、邊、端三側。**雲端負責雲上應用和配置的校驗、下發,邊緣側則負責運行邊緣應用和管理接入設備,設備端運行各類邊緣設備。KubeEdge完整的打通了邊緣計算中雲、邊、設備協同的場景,總體架構以下圖。app
雲端組件包括CloudCore、Admission Webhook,它們構建在K8s的調度能力之上,100%兼容K8s原生API,能夠運行在任何K8s集羣中,包括各廠商的K8s產品、用戶在雲上自建的K8s集羣等。CloudCore中主要包含EdgeController、DeviceController、CloudHub三個模塊。工具
**邊緣側組件包括EdgeCore及接入設備的Mappers。**Mappers負責接入邊緣設備,EdgeCore負責邊緣應用與設備管理,其模塊主要包括EdgeHub、Edged、設備信息管理模塊,應用與設備信息持久化模塊。測試
邊緣側運行的程序常常有存儲數據的需求,例如邊緣的視頻收集分析程序,須要將視頻信息保存下來。KubeEdge在提供了ConfigMap、Secret、HostPath、Emptydir、Downwardapi及Projected這些Volume的基礎上,在v1.1版本中又集成了容器存儲接口CSI,使得用戶可使用K8s標準的存儲方案,如StorageClass(SC),PersistentVolume(PV)和PersistentVolumeClaim(PVC)在邊緣側存儲數據,總體架構以下:spa
其中藍色部分爲複用的Kubernetes-CSI組件,包括External-Provisioner、External-Attacher、Node-Driver-Registrar、CSI Driver from Vendor,主要負責在雲上監聽K8s的PV、PVC、VolumeAttachment等資源。黃色部分爲KubeEdge中新添加的模塊,包括CSI Driver from KubeEdge、UDS Server、Managers in Edge Controller、CSI Volume Plugin(In-Tree),主要負責將存儲信息同步到邊緣側,以及調用外部插件來管理存儲卷。插件
隨着愈來愈多的資源對象如Device、DeviceModel等加入到項目中,KubeEdge須要對它們進行校驗。v1.1發佈了對象校驗組件Admission Webhook,目前主要負責對Device、DeviceModel對象的校驗。將來還會對Pod進行校驗、修改,保證Pod在邊緣的運行以及控制離線場景下的遷移等。
Admission Webhook採用容器化形式部署,用戶只需以Pod的形式運行新版本的鏡像便可。
v0.3版本中發佈了一鍵部署工具KubeEdge Installer(keadm),它包含Cloud和Edge兩類子命令,Cloud端的命令負責安裝一個Kubernetes集羣和CloudCore。Edge端的命令負責初始化一個邊緣節點並加入到KubeEdge管理面。KubeEdge Installer能夠在實際生產場景中部署KubeEdge。
v1.1提供的一鍵啓動KubeEdge集羣工具,可將完整的KubeEdge集羣運行在一臺機器上。用戶只需運行該腳本,便可在一臺機器上運行一個KubeEdge集羣,方便開發者調測。它使用Kind運行一個K8s集羣,將KubeEdge相關的組件運行在一臺機器上,能夠方便地用於開發測試、CI測試等。
https://github.com/kubeedge/kubeedge/blob/master/hack/local-up-kubeedge.sh
v1.0版本中在邊緣側添加了對CRI接口的支持,使得用戶能夠在邊緣側使用多種運行時,包括Containerd、Cri-o等。v1.1版本中,爲了使用戶能夠直接使用Docker,且與K8s上游社區保持一致,在邊緣側添加了對DockerShim的支持。
v1.1將K8s依賴升級到了v1.15 Stable版本,Edged對應的K8s版本也升級到了v1.15,用戶能夠在邊緣側享用最新版K8s的應用管理、存儲管理等能力。
v1.0版本的EdgeMesh只支持REST協議,因爲K8s的Service原生是L4的,且應用場景很是普遍。在v1.1中EdgeMesh提供了L4 Proxy的能力。
隨着v1.1版本的發佈,KubeEdge提供了更完備的邊緣應用生命週期管理以及設備管理能力,更加友好的社區貢獻者體驗,感謝每一位爲社區作過貢獻的貢獻者。後續版本將進一步提高雲邊協同的效率、可靠性,更多的邊緣設備協議支持。更多詳情請關注:
項目官網: https://kubeedge.io