±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½²½âÁËKubeEdgeµÄ»ù´¡¡¢MEC
SIGÒÔ¼°KubeEdge ÔÚ¹¤Òµ»¥ÁªÍøÐÐÒµµÄÓ¦Óüܹ¹²Î¿¼¡£
±¾ÎÄÀ´×ÔÓÚcsdn£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼ÍƼö¡£ |
|
KubeEdge
»ªÎªÊÇ KubeEdge µÄÖ÷Òª¹±Ï×Õß¡£¸ÃÏîÄ¿ÓÚ 2018 Äê 9 ÔÂÔÚ GitHub ÉÏÆô¶¯£¬²¢½«Æä¹±Ï׸øÔÆÔÉú¼ÆËã»ù½ð»á£¨CNCF£©£¬ÊÇ
Kubernetes IOT Edge working group µÄ¹Ø¼ü²Î¿¼¼Ü¹¹Ö®Ò»¡£
KubeEdge ÔÚ Kubernetes ÔÉúµÄÈÝÆ÷±àÅź͵÷¶ÈÄÜÁ¦Ö®ÉÏ£¬ÊµÏÖÁË ÔÆ±ßÐͬ¡¢¼ÆËãϳÁ¡¢º£Á¿±ßÔµÉ豸¹ÜÀí¡¢±ßÔµ×ÔÖÎ
µÈÄÜÁ¦¡£
KubeEdge Ö÷´òÈý¸öºËÐÄÀíÄ
ÔÆ±ßÐͬ£º±ßÊÇÔÆµÄÑÓÉ죬Óû§µÄ±ß¿ÉÄÜλÓÚ˽ÓÐÍøÂ磬Òò´ËÐèÒª´©Í¸Ë½ÓÐÍøÂ磬ͨ¹ýÔÆÀ´¹ÜÀí˽Óнڵ㣬KubeEdge
ĬÈϲÉÓà ¡°WebSocket + ÏûÏ¢·â×°¡± À´ÊµÏÖ£¬ÕâÑùÖ»Òª±ßÔµÍøÂçÄÜ·ÃÎÊÍâÍøÇé¿öÏ£¬¾ÍÄÜʵÏÖË«ÏòͨÐÅ£¬Õâ¾Í²»ÐèÒª±ß¶ËÐèÒªÒ»¸ö¹«ÍøµÄ
IP¡£Í¬Ê±ÄØ£¬ KubeEdge Ò²ÓÅ»¯ÁËÔÉú Kubernetes Öв»±ØÒªµÄһЩÇëÇó£¬Äܹ»´ó·ù¼õÉÙͨÐÅѹÁ¦£¬¸ßʱÑÓ״̬ÏÂÈÔ¿ÉÒÔ¹¤×÷¡£
×öµ½ Node ¼¶±ðµÄÔªÊý¾Ý³Ö¾Ã»¯£º±ÈÈç Pod¡¢ConfigMap µÈ»ù´¡ÔªÊý¾Ý£¬Ö±½Ó³Ö¾Ã»¯ÔÚ
Node É豸ÉÏ£¬±ßÔµµÄ½ÚµãÀëÏßÖ®ºó£¬ËüÈÔ¿ÉÒÔͨ¹ý±¾µØ³Ö¾Ã»¯µÄÔªÊý¾ÝÀ´¹ÜÀíÕâЩӦÓá£ÊìϤ Kubernetes
µÄͬѧӦ¸ÃÖªµÀ£¬µ± kubelet ÖØÆôºó£¬ËüÊ×ÏÈÒªÏò Master ×öÒ»´Î list watch
»ñȡȫÁ¿µÄÊý¾Ý£¬È»ºóÔÙ½øÐÐÓ¦ÓùÜÀí¹¤×÷£¬Èç¹ûÕâʱºò±ßºÍÔÆ¶ËµÄÍøÂç¶Ï¿ª£¬ÊÇÎÞ·¨»ñµÃÈ«Á¿µÄ»ù´¡ÔªÊý¾Ý£¬Ò²²»ÄܽøÐйÊÕϻָ´¡£KubeEdge
×öÁËÔªÊý¾ÝµÄ³Ö¾Ã»¯ºó£¬¿ÉÒÔÖ±½Ó´Ó±¾µØ»ñµÃÕâЩԪÊý¾Ý£¬±£ÕϹÊÕϻָ´µÄÄÜÁ¦£¬±£Ö¤·þÎñµÄ¿ìËÙ Ready¡£
¼«ÖµÄÇáÁ¿»¯£ºÔÚ´ó¶àÊý±ßÔµ¼ÆË㳡¾°Ï£¬½ÚµãµÄ×ÊÔ´ÊǷdz£ÓÐÏ޵ģ¬KubeEdge ²ÉÓõķ½Ê½ÊÇÖØ×é
kubelet ×é¼þ£¬ÒƳýÁËÄÚÖÃÁËÃæÏòÓÚÔÆ³§É̵ÄÇý¶¯£¬Í¨¹ý CSI ½éÈ룬ȥµôÁË Static Pod£¬Í¬Ê±Ö§³Ö
CRI£¬Ö§³Ö¶àÖÖ Container Runtime¡£ÔÚ¿ÕÔØÊ±ºò£¬ÄÚ´æÕ¼ÓÃÂʺܵ͡£
»ùÓÚÒÔÉÏ 3 ¸öºËÐÄÀíÄKubeEdge ʵÏÖÁË£º
ÔÆ±ß¿É¿¿Ðͬ£º
Ë«Ïò¶à·¸´ÓÃÏûϢͨµÀ£¬Ö§³Ö±ßÔµ½ÚµãλÓÚ˽ÓÐÍøÂç¡£
WebSocket + ÏûÏ¢·â×°£¬´ó·ù¼õÉÙͨÐÅѹÁ¦£¬¸ßʱÑÓÏÂÈÔ¿ÉÕý³£¹¤×÷¡£
ÔÆ±ßÏûϢУÑé£¬ÍøÂç²»Îȶ¨Ê±²»¶ªÊý¾Ý¡£
±ßÔµÀëÏß×ÔÖΣº
½ÚµãÔªÊý¾Ý³Ö¾Ã»¯£¬ÊµÏֽڵ㼶ÀëÏß×ÔÖΡ£
½Úµã¹ÊÕϻָ´ÎÞÐè List-watch£¬½µµÍÍøÂçѹÁ¦£¬¿ìËÙ Ready¡£
±ßÔµ¼«ÖÂÇáÁ¿£º
ÖØ×é Kubelet ¹¦ÄÜÄ£¿é£¬¼«ÖÂÇáÁ¿»¯£¨~70mb ÄÚ´æÕ¼Óã©¡£
Ö§³Ö CRI ¼¯³É Containerd¡¢CRI-O£¬ÓÅ»¯ Runtime ×ÊÔ´ÏûºÄ¡£
±ßÔµÉ豸¹ÜÀí£º
ÔÆ¶Ëͨ¹ý Kubernetes API ¹ÜÀí±ßÔµ Device

ÉÏͼÊÇ KubeEdge µÄÕûÌå¼Ü¹¹£¬KubeEdge ¶ÔÔÉú Kubernetes µÄ¼Ü¹¹ÇÖÈë±È½ÏС£¬´ó¶à²ÉÓÃÁËÅÔ·Éè¼Æ¡£
KubeEdge ¼Ü¹¹Ö÷ÒªÊÇ·ÖÁË ¡°ÔÆ¡¢±ß¡¢¶Ë¡± Èý²¿·Ö£º
ÔÆ£¨Cloud£©£º¿ØÖÆÃæ¡£
±ß£¨Edge£©£º±ßÔµ½Úµã¡£
¶Ë£¨Device£©£º¶Ë²àÉ豸¡£
ÔÚ Cloud ²ã¼¶£¬ÔËÐÐ×Å Kubernetes Master£¬ÊÇûÓÐ×ö¹ý¸Ä¶¯µÄÔÉúµÄ Kubernetes
¿ØÖÆÃæ¡£KubeEdge Ö÷ÒªÊÇͨ¹ýÅÔ·Éè¼Æ¿ª·¢µÄ CloudCore ×é¼þ£¬±ßÔµ½ÚµãµÄͬ²½ºÍά»¤ÊÇͨ¹ý
CloudCore À´Î¬»¤£¬CloudCore ͨ¹ý list watch À´¸ú Kubernetes
Cluster ×öÐÅϢͬ²½¡£¶ø CloudCore ÀïÃæÄÚÖÃµÄ CloudHub Ä£¿éºÍ±ß¶ËÄÚÖõÄ
EdgeHub Ä£¿é£¬¹¹½¨ÁËÒ»¸ö WebSocket ÏûϢͨµÀ£¬Í¨¹ý½á¹¹»¯µÄÏûÏ¢·â×°£¬À´Í¬²½ Kubernetes
µÄ»ù´¡ÔªÊý¾Ý£¬±ÈÈ磺Pod£¬ConfigMap µÈµÈ¡£ÁíÍâ CloudCore ÀïÃæ»¹°üº¬ EdgeController
ºÍ DeviceController Ä£¿é£¬ÕâÁ½¸öÄ£¿é·Ö±ðÓÃÀ´¹ÜÀí Kubernetes µÄÔªÊý¾ÝÒÔ¼°¸ú
Device Ïà¹ØµÄ CRD ×ÊÔ´¡£
ÔÚ Edge ²ã¼¶£¬KubeEdge µÄ EdgeCore ʵÏÖÁË DataStore ³Ö¾Ã»¯´æ´¢£¬Ìṩ±¾µØ×ÔÖεÄÄÜÁ¦£¬±ÈÈçÓ¦ÓûòÕßÉ豸µÄÔªËØ´ÓÔÆÉÏ·Ö·¢ÏÂÀ´£¬Ê×ÏȰÑËü´æµ½Ò»¸öÊý¾Ý¿âÀȻºóÔÙµ½ËüµÄ
Edged »òÕßÉ豸Àï±ß£¬ÕâÑù¾ÍÄܱ£Ö¤ÔƱßÍøÂç¶Ï¿ª»òÕß±ßÔµ½ÚµãÖØÆôÁËÒÔºóÓ¦ÓÃµÄ Edged Ëü¿ÉÒÔ´ÓÊý¾Ý¿âÀï°ÑÓ¦ÓÃÔ´Êý¾ÝÄóöÀ´£¬ÕâÑù¾ÍÄܱ£Ö¤ÔÚ¹ÊÕϵÄÇé¿öÏÂÒµÎñ¿ÉÒÔÕý³£»Ö¸´£»Edged
×é¼þÏ൱ÓÚÒ»¸ö¾«¼ò°æµÄ kubelet£¬Ö§³Ö CRI£¬µ×²ã¿ÉÒÔ¶Ô½Ó¶àÖÖ Container Runtime£»¶ø
DeviceTwin ºÍ EventBus ×é¼þ·Ö±ðÊÇÓ¦ÓùÜÀíºÍÉ豸¹ÜÀí£¬Ö÷ÒªÊÇ×öÉ豸µÄÔªÊý¾Ý¹ÜÀíÒÔ¼°
MQTT ÐÒéµÄ¶©Ôĺͷ¢²¼£¬ÓÃÓÚÓëÖÕ¶ËÉ豸½øÐÐͨÐÅ¡£
ÔÚ Device ²ã¼¶£¬É豸ÖÕ¶Ë»áÓжàÖÖ¶àÑùµÄ·ÃÎÊÐÒ飬һЩ±È½ÏÐÂÐ˵ÄÉ豸¿ÉÄÜ»áÖ±½ÓÖ§³Ö MQTT
ÐÒ飬µ«ÊǶÔÓÚһЩרÓõÄÉ豸»òÕß¹¤¿ØµÄÁìÓòÄØ£¬»áÓÐËûÃÇרÓõÄÐÒé¡£¶Ô´Ë£¬KubeEdge ²ÉÓÃÁË Mapper
µÄÉè¼Æ£¬¿ÉÒÔ½«ÕâЩרÓеÄÉ豸µÄÐÒéת»»³É MQTT ÐÒ飬À´ÊµÏÖ±ßÔµµÄÓ¦ÓúÍÔÆÉϵÄÉ豸Êý¾ÝµÄͬ²½ºÍ¹ÜÀí£¬µ±È»
KubeEdge ×îа汾»¹ÓÐ SyncController£¬ÓÃÀ´¸ºÔð¿É¿¿ÐÔÏûÏ¢´«ÊäµÄͬ²½ÎÊÌâ¡£
×÷Ϊһ¸öÖÇÄܱßԵƽ̨£¬KubeEdge °üº¬Á˱߶˵ļÆËã½Úµã²¿·ÖºÍÔÆ¶ËµÄ¹ÜÀí¿ØÖÆ²¿·Ö£¬ÆäÔÆ±ßÐͬÌåÏÖÔÚ£º
»ùÓÚ WebSocket ºÍ Quic ÐÒé¹¹½¨Á˿ɿ¿¡¢¸ßЧµÄÔÆ±ßÏûϢͨÐÅ£¬²¢×÷ÎªÔÆ±ß¿ØÖÆÐͬ¡¢Êý¾ÝÐͬµÄͨÐÅ»ù´¡£»
À©Õ¹ÁË Kubernetes£¬ÊµÏÖÔÆ±ßÐͬ±àÅŹÜÀí£¬°üÀ¨»ùÓÚÔÆ¶ËµÄ±ßÔµ¿ØÖÆÆ÷ EdgeController
µÈ¿ØÖÆ Kubernetes Ó¦ÓóÌÐò±à³Ì½Ó¿Ú£¨API£©·þÎñÆ÷Óë±ßÔµ½Úµã¡¢Ó¦ÓúÍÅäÖõÄ״̬ͬ²½£¬Ö§³ÖÖ±½Óͨ¹ý
kubectl ÃüÁîÐÐÔÚÔÆ¶Ë¹ÜÀí±ßÔµ½Úµã¡¢É豸ºÍÓ¦Óã»
ÌṩÁË DeviceTwin Ä£¿é£¬ÊµÏÖ±ßÔµ¼ÆËã½ÚµãϹҵıßÔµÉ豸ÓëÔÆ¶ËÉ豸¹ÜÀíÖ®¼äµÄͬ²½ºÍ¿ØÖÆ¡£
CloudCore
Ö÷ÒªÓÉÏÂÃæ¼¸²¿·Ö×é³É£º

Edge Controller£ºÖ÷ÒªÊÇÀ´¸ºÔð±ßÔµ½ÚµãÔªÊý¾ÝµÄͬ²½ºÍ¹ÜÀí£¬Ö÷ÒªÊÇ Pod£¬ConfigMap
µÈÓ¦ÓÃÏà¹ØµÄÔªÊý¾Ý¡£
Device Controller£ºÊÇÒýÈëÀ´¹ÜÀí±ßÔµÉ豸µÄÄ£¿é£¬»¹ÓÐÒ»Ì×¶ÔÓ¦µÄ CRD µÄ¶¨Ò壬À©Õ¹µÄ
Kubernetes API£¬ÓÃÀ´¹ÜÀí±ßÔµÉ豸¡£
CloudHub£ºÉÏÎÄÒ²¼òµ¥½²¹ýÁË£¬Ö÷ÒªÊǹÜÀíÓë±ßÔµ¶Ë EdgeHub µÄ WebSocket µÄÁ¬½Ó£¬Ï·¢Ôƶ˷¢À´µÄÊý¾Ý£¬ºÍÉÏ´«±ßÔµ·¢À´Êý¾Ý¸úÔÆ¶Ëͬ²½¡£
CSI Driver£ºÊÇΪÁËʵÏÖ±ê×¼µÄ CSI ·½°¸¶ø×öµÄÊÊÅäÆ÷¡£
Admission Webhook£ºÖ÷ÒªÓÃÀ´¸øÀ©Õ¹ÐÔ API ×öһЩºÏ·¨ÐÔµÄУÑé¡£
Edge Code
KubeEdge ±ß¶ËµÄºËÐÄ×é¼þ Edge Core Ö÷ÒªÓÉÏÂÃæ¼¸¸öÄ£¿é×é³É£º

EdgeHub£ºÖ÷ÒªÊǸúÔÆ¶Ë½»»¥£¬Ëü¸úÔÆ¶ËµÄ CloudHub ÊǶԵȵģ¬Ê×ÏÈÓÉ EdgeHub
·¢ÆðÔÆ¶ËµÄ WebSocket Á¬½Ó¡£
MetaManager£º±¾µØ³Ö¾Ã»¯Êý¾Ý¹ÜÀí£¬KubeEdge µÄÀëÏß×ÔÖεÄÄÜÁ¦Ö÷ÒªÊÇÓÉÕâ¸öÄ£¿éʵÏֵ쬼òµ¥À´ËµÃ¿¸ö
Node Óõ½ÁËÄÄЩ Pod£¬ÄÄЩ ConfigMap£¬Secret£¬¶¼»áͨ¹ý MetaManager
дÈë±ßÔµ±¾µØµÄ³Ö¾Ã»¯Êý¾Ý¿âÖУ¬ÏÖÔÚµ±Ç°ÓÃµÄ SQLite¡£
DeviceTwin ºÍ EventBus£ºÖ÷ÒªÊÇÉ豸¹ÜÀí£¬±ÈÈç˵É豸״̬µÄÉϱ¨£¬ÒÔ¼°É豸¿ØÖÆÖ¸ÁîµÄÏ·¢£¬¶ø
EventBus Ï൱ÓÚ MQTT µÄÒ»¸ö Client¡£
Edged£ºÊÇÒ»¸ö·Ç³£ÇáÁ¿»¯²Ã¼ô¹ýµÄ kubelet£¬Ê¹ÓÃÁËÓ¦ÓÃÉúÃüÖÜÆÚ¹ÜÀíÖÐ×î¹Ø¼üµÄ¼¸¸öÄ£¿é£¬È¥µôÁËÔÆ´æ´¢µÄÇý¶¯¡£Ö§³Ö
CRI ½Ó¿Ú£¬ÊÊÅä¶à¸ö Container Runtime¡£
MEC SIG
ÔÆ±ßÐͬÔÚ MEC ³¡¾°ÏÂÃæÁÙµÄÌôÕ½Ö÷Òª°üÀ¨£º
ÈçºÎ¼òµ¥¸ßЧµÄ¹ÜÀíº£Á¿ÎïÀíÀëÉ¢µÄ±ßÔµÕ¾µã£¿ÈçºÎ»ùÓÚ 5G ÍøÂçʼþÓÅ»¯±ßÔµÓ¦ÓÃÆ¥Å䲻ͬ²ã¼¶µÄ±ßÔµ¼ÆËã×ÊÔ´¡£×ÊÔ´²ã¼¶°üÀ¨£ºÏÖ³¡±ßÔµ¡¢ÔËÓªÉÌÍøÂç±ßÔµ¡¢ÖÐÐÄÔÆ¡£
ÖÕ¶ËÈçºÎ¸ßЧµÄ·¢ÏÖ´¦ÓÚ²»Í¬²ã¼¶µÄÄ¿±ê·þÎñ£¬¾Í½ü½ÓÈ룬»ñµÃ×îµÍʱÑÓÌåÑ飿
ÈçºÎ¼ò»¯Ó¦ÓÃÔÚ¿ç±ßÔÆ²¿ÊðʱµÄÍøÂçÅäÖ㬲¢±£Ö¤ÍøÂ簲ȫ£¿
ÈçºÎʵÏÖ¿ç±ßÔÆµÄ΢·þÎñÁ÷Á¿ÖÎÀí£¬¼ò»¯Ó¦Óÿª·¢µÄ¸´ÔӶȺÍÓ¦ÓÃÔËÐеĿɿ¿ÐÔ£¿
ÈçºÎͨ¹ýÔÆÔÉúµÄ·½Ê½£¬½«µÚÈý·½µÄÄÜÁ¦¼¯³É½ø MEC ƽ̨²¢¿ª·Å¸øÓû§£¬È磺5G ÍøÂçÄÜÁ¦¡¢Çø¿éÁ´¡¢AI
µÈ¼¼Êõ£¿ÈçºÎʵÏÖÔÆºÍ 5G Éú̬µÄ¿ìËÙ¼¯³É£¿
KubeEdge ÉçÇø°´ÕÕ CNCF ³ÉÊìÖÎÀíģʽ£¬³ÉÁ¢ MEC SIG£¬¸ºÔð 5G ±ßÔµ¼ÆË㳡¾°Ï¼¼ÊõºÍÉú̬µÄÍØÕ¹£¬ÒÔ¸üºÃµÄÓ¦¶ÔÈçÉÏËùÊöµÄÄÇЩÌôÕ½¡£

Service Resource Manager£º¿ç±ßÔÆµÄÈ«¾ÖÓ¦Óò¿ÊðºÍÍøÂç×ÊÔ´¹ÜÀí¡£ºÍ 5GC
NEF ¶Ô½Ó£¬ÊµÏÖ»ùÓÚ 5G ÍøÂçʼþµÄÓ¦Óõ÷¶È£¬5G Á÷Á¿µÄ·Ö·¢£¬QoS ÅäÖã¬Ó¦ÓÃÇ¨ÒÆµÈ¡£±ßÔµÕ¾µãÖ§³Ö¶à×â»§¹ÜÀí¡£
Edge Service Discovery£º¿ç±ßÔÆ·þÎñ·¢ÏÖ£¬¾Í½ü½ÓÈ룬¿ÉÓë Service Resource
Manager ÅäºÏ£¬½áºÏµØÀíλÖúÍÍøÂç´«Êä×î¶Ì·¾¶£¬ÊµÏÖ´¥·¢Ê½µÄ°´Ð貿ÊðÓ¦Óá£
EdgeMesh£º¿ç±ßÔÆ L3 ÈÝÆ÷ÍøÂçÅäÖúͰ²È«¹ÜÀí£»¿ç±ßÔÆÎ¢·þÎñͨÐÅÈ«Á´Â·Â·ÓÉ¡¢ÏÞÁ÷¡¢È۶ϵÈÖÎÀíÄÜÁ¦¡£
ServiceHub£º»ùÓÚÔÆÔÉúµÄ·½Ê½ÊµÏÖÄÜÁ¦¿ª·Åƽ̨£¬ÅäºÏ Service Broker ʵÏÖÉú̬Ðͬ£¬½«ÍøÂçÄÜÁ¦ºÍµÚÈý·½¿ª·¢ÕßµÄÄÜÁ¦¿ìËÙ¼¯³É½ø
MEC ƽ̨²¢¿ª·Å¸øÓû§£¬ÈçÇø¿éÁ´¡¢Í¨Óà AI£¬ÍøÂç¸ß¾«¶ÈÊÒÄÚ¶¨Î»ÄÜÁ¦¡¢ÎÞÏßÍøÂç²âÁ¿ÐÅÏ¢ÄÜÁ¦¡¢QoS
±£ÕÏÄÜÁ¦¡£»¹½«Ìṩ·þÎñ×¢²á¡¢¼øÈ¨Ð£Ñé¡¢·ÃÎÊ¿ØÖÆµÈ APIGW µÄÄÜÁ¦¡£
KubeEdge ÔÚ¹¤Òµ»¥ÁªÍøÐÐÒµµÄÓ¦Óüܹ¹²Î¿¼

KubeEdge Æðµ½ÁËÒ»¸öÉ豸¹ÜÀí¡¢Ó¦ÓùÜÀíµÄ×÷ÓãºËùÓеÄÊý¾Ý°üÀ¨¹ÜÀíÊý¾Ý¶¼ÊDZ£´æÔÚÔÆ¶ËµÄ Cloud
Core ÖУ¬±ßÔµ²àµÄ Edge Core ÔËÐÐÔÚ¹¤¿Ø»ú»ò¹¤ÒµÍø¹ØÉÏ£¬Ëü¸ºÔðÔÚ±ßÔµ²àÔËÐÐÈÝÆ÷»¯Ó¦Ó㬰üÀ¨×öÉ豸¹ÜÀí¡¢Êý¾Ý²É¼¯µÄһЩӦÓᣠ|