±à¼ÍƼö: |
±¾ÎĽéÉÜÁËÒ»ÖÖ±ßÔµ»ù´¡ÉèÊ©£¬ËüÖ§³Ö±ßÔµ½ÚµãµÄµ÷¶È·þÎñ£¬ÓëÔÆÖеÄÐéÄâ»úÏàͬ£¬²¢¿¼ÂÇÁ˱ßÔµ»·¾³ÌØÊâ×Ö·û,Ï£Íû¶ÔÄúÓÐËù°ïÖú
¡£
±¾ÎÄÀ´×ÔÓÚCSDN£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£ |
|
ÕªÒª
ÔÚ±¾ÎÄÖУ¬ÎÒÃÇΪEdge-cloudͨÐźÍÖ´Ðл·¾³ÒýÈëÁËEdge»ù´¡¼Ü¹¹£¨KubeEdge£©£¬ÎÒÃǽ«ÆäÊÓÎªÔÆ»ù´¡¼Ü¹¹µÄÀ©Õ¹¡£´Ë±ßÔµ»ù´¡¼Ü¹¹ÔÊÐíEdge²ÉÓÃÏÖÓÐÔÆ·þÎñºÍÔÆ¿ª·¢Ä£ÐÍ£¬²¢Ìṩ±ßÔµºÍÔÆÖ®¼äµÄÎÞ·ìͨÐÅ¡£KubeEdge°üÀ¨Ò»¸öÃûΪKubeBusµÄÍøÂçÐÒéÕ»£¬Ò»¸ö·Ö²¼Ê½±ßÔµÔªÊý¾Ý´æ´¢/ͬ²½·þÎñºÍÒ»¸öÓ¦ÓóÌÐò±àÅÅ·þÎñ¡£KubeBusÖ¼ÔÚÓµÓÐ×Ô¼ºµÄOSIµÚ2/3/4²ãÐÒéʵÏÖ£¬Ö§³Ö½«Ôƶ˵ıßÔµ½ÚµãºÍÐéÄâ»úÁ¬½ÓΪһ¸öVPN£¬²¢Îª²»Í¬×â»§µÄ±ßÔµ¼¯ÈºÌṩͨÓõĶà×â»§¹ÜÀí/Êý¾ÝÆ½Ãæ¡£ÔÚCloudºÍEdgeÖÐÔËÐеķþÎñÔÚKubeBusÖ®ÉÏÏ໥ͨÐÅ£¬¾ßÓÐÈÝ´íÐԺ͸߿ÉÓÃÐÔ¡£KubeEdgeÖеÄEdgeÔªÊý¾Ý·þÎñÌṩ±ßÔµÔªÊý¾Ý´æ´¢ºÍ·þÎñ£¬ÒÔÔÚÔÆºÍEdgeÖ®¼äͬ²½ÔªÊý¾Ý£¬ÒÔÖ§³Ö±ßÔµ½ÚµãÍÑ»ú·½°¸¡£KubeEdge°üÀ¨Kubernetes
[1]À©Õ¹£¬ÒÔ±ãKubernetes¿ÉÒÔ¹ÜÀíEdge NodesÒÔ¼°CloudÖеÄVM£¬²¢²¿Êð/¹ÜÀíEdge
NodesµÄÓ¦ÓóÌÐò¡£
1 ½éÉÜ
Ëæ×űßÔµÉ豸µÄÔö¼Ó£¬ÎÒÃǸüÏ£ÍûºÜ¶àÈÎÎñÔÚ±¾µØÖ´ÐУ¬¶ø²»ÊÇÉÏ´«µ½ÔÆÊý¾ÝÖÐÐÄ¡£ÎÒÃÇÐèÒªÒ»ÖÖÐÂÐ͵ļÆË㷶ʽ£¬ËüÄܹ»ÔÚÍøÂçµÄ±ßÔµÖ´ÐÐÈÎÎñ£¬Ëü¾ÍÊDZßÔµ¼ÆËã¡£¶øÔÚ½ü¼¸Äê£¬Ëæ×ÅÎïÁªÍøµÄ·¢Õ¹£¬±ßÔµ¼ÆËãÄ£ÐͱäµÃÔ½À´Ô½ÖØÒª¡£
ÔÚEdge¼ÆËãÖУ¬×î³õÔÚÔÆÖÐÔËÐеķþÎñ²¿Êðµ½Edge»·¾³£¬²¢ÓëÆäËûEdge·þÎñºÍÔÆ·þÎñÐ×÷¡£Edge·þÎñµ÷¶È£¬ÉúÃüÖÜÆÚ¹ÜÀíºÍ¼à¿Ø¿ÉÒÔ´ÓCloudÍê³É¡£ÀýÈ磬֮ǰµÄÑо¿[3]ͨ¹ýÀ©Õ¹ÏÖÓÐÆ½Ì¨ºÍÓÅ»¯µÄWAN»·¾³Ëã·¨ÍÆ¶¯ÁËÊý¾ÝÖÐÐĵļÆËã¡£³ýÁ˳£¼ûµÄÊý¾Ý´¦ÀíÕâÑùµÄÊý¾Ý¹ýÂ˺;ۺÏÖ®Í⣬AI¹ý³ÌÒ²´ÓÊý¾ÝÖÐÐÄÍÆË͵½Edge£¬±ÈÈç×î½üµÄÑо¿[4]¡°ÔÚÉñ¾ÍøÂç²ãµÄÁ£¶ÈÉÏ»®·ÖÒÆ¶¯É豸ºÍÊý¾ÝÖÐÐÄÖ®¼äµÄDNN¼ÆË㡱¡£
¡°ÔƼÆËãÊÇ»ùÓÚTCP / IPµÄ¸ß¼¶¿ª·¢ºÍ¼ÆËã»ú¼¼ÊõµÄ¼¯³É£¬Èç¿ìËÙ΢´¦ÀíÆ÷£¬¾Þ´óµÄÄڴ棬¸ßËÙÍøÂçºÍ¿É¿¿µÄϵͳ¼Ü¹¹¡£¡±[ÔÆ¼ÆËãµÄÌØÕ÷]¡£ÓгÉÊìµÄÉÌÒµÔÆ¼ÆËã»ù´¡ÉèÊ©À´¹ÜÀíÔÆÓ¦ÓóÌÐò¡£ÀýÈ磬IaaS»ù´¡ÉèÊ©OpenStack£¬Amazon
EC2; ÈÝÆ÷»¯Ó¦ÓùÜÀíϵͳKubernetes [1]£¬docker swarm¡£
ÏÖÓеÄÔÆ¼ÆËã»ù´¡¼Ü¹¹¿ÉÄܲ»»áÖ±½ÓÓ¦ÓÃÓÚEdge»·¾³¡£ÕâÊÇÒòΪEdge»·¾³ÓëÔÆ»·¾³²»Í¬£¬Éæ¼°ÍøÂçÁ¬½Ó/ÍØÆË£¬ÍøÂç´ø¿íºÍÏà¶ÔÊÜÏ޵ļÆËã×ÊÔ´¡£ÀýÈ磬һ¸öµäÐ͵ÄEdge³¡¾°ÊǶà¸öEdge½ÚµãºÍÔÆÍ¨¹ý¹ãÓòÍø£¨WAN£©Á¬½Ó¡£±ßÔµ½ÚµãÔÚNATºóÃæµÄרÓÃÍøÂçÖÐÔËÐУ¬Òò´ËÔÚÔÆÉÏÔËÐеÄTCP¿Í»§¶ËÎÞ·¨Á¬½Óµ½ÔÚEdgeÉÏÔËÐеÄTCP·þÎñ;
´ËÍ⣬EdgeºÍCloudÖ®¼äµÄÍøÂç¿ÉÄܲ»Îȶ¨£¬ÔÚEdgeÔËÐеķþÎñÐèÒªÄܹ»ÍÑ»úÔËÐÐ; ±ßÔµ½ÚµãºÍÔÆÖ®¼äµÄ´ø¿íСÓÚÔÆ£¬²¢ÇÒ¸ü°º¹ó;
×îºó£¬Ò»Ð©±ßÔµ½Úµã¾ßÓÐÔ¼Êø¼ÆËã×ÊÔ´£¬ÀýÈç½ö128 MBÄÚ´æ¡£
Edge»ù´¡¼Ü¹¹»ùÓÚÒÔÏÂ3¸ö×é¼þ£º
KubeBus½«±ßÔµ½ÚµãºÍÐéÄâ»úÁ¬½ÓΪVPN£¬²¢½«Ò»¸ö¶à×â»§¹ÜÀí/Êý¾ÝÆ½ÃæÁ¬½Óµ½ËùÓÐ×â»§µÄ±ßÔµ¼¯Èº;
EdgeMetadataService£¬Ö§³ÖCloudºÍEdgeÖ®¼äµÄÔªÊý¾Ý´æ´¢ºÍEdgeºÍa-synchronizationÔªÊý¾Ý;
KubernetesÀ©Õ¹£¬Ö§³Ö±ßÔµÓ¦ÓóÌÐò²¿ÊðºÍÉúÃüÖÜÆÚ¹ÜÀí¡£
¸Ã»ù´¡¼Ü¹¹ÊÊÓÃÓÚ½«»ùÓÚ΢·þÎñµÄÓ¦ÓóÌÐò´ÓCloudÀ©Õ¹µ½Edge¡£
±¾ÎĵįäÓಿ·Ö°²ÅÅÈçÏ¡£µÚ2½ÚÌÖÂÛ±ßÔµ¼ÆËã»ù´¡ÉèÊ©µÄÏà¹Ø¹¤×÷; µÚ3½Ú½éÉÜÁËKubeEdgeµÄ¼Ü¹¹ºÍÉè¼Æ;
µÚ4½ÚKubeBusµÄʵÑé½á¹û; µÚ5½ÚÌÖÂÛδÀ´µÄ¹¤×÷; µÚ6½Ú×ܽáÁËÂÛÎÄ¡£
2 Ïà¹Ø¹¤×÷
ÔÚÎïÁªÍø£¨IoT£©Ê±´ú£¬È«Çò²¿ÊðÁËÊýÊ®ÒÚ¸ö´«¸ÐÆ÷ºÍÖ´ÐÐÆ÷¡£ÎªÁ˹ÜÀíÎïÁªÍøÉ豸²¢Ê¹ÓÃÔÆ¼ÆËã×ÊÔ´´¦ÀíÀ´×ÔËüÃǵÄÊý¾Ý£¬ÔÆÌṩÉÌÌṩµÄÎïÁªÍøÆ½Ì¨°üÀ¨AzureÎïÁªÍøÆ½Ì¨£¬AWS
IoTºÍGoogle IoT½â¾ö·½°¸¡£ÎïÁªÍøÆ½Ì¨Ê¹ÓÃÖîÈçMqtt [9]»òAMQPÖ®ÀàµÄ·¢²¼/¶©ÔÄ´úÀíÀ´´¦ÀíÎïÁªÍøÉ豸ºÍÔÆ·þÎñÖ®¼äµÄͨÐÅͨµÀ£¬ÀýÈçAzure
IoTÖÐÐÄ¡£
ÎïÁªÍøÉ豸ÊýÁ¿¾Þ´ó£¬ÎïÁªÍøÊý¾ÝÌ«´ó£¬ÎÞ·¨ÈÝÄÉ»¥ÁªÍø´ø¿í·¢Ë͵½Ôƶˡ£ÔÆÌṩÉÌ·¢²¼Edgeƽ̨£¬ÈçAWS
GreenGrass [5]ºÍAzure IOT Edge [6]£¬ÒÔ¹ÜÀíEdge¶ËµÄIoTÓ¦ÓóÌÐòÖ´ÐкÍIoTÊý¾Ý´¦ÀíÒÔ¼°CloudºÍEdgeÖ®¼äµÄÊý¾Ý´«Êä¡£ÀýÈ磬GreenGrass½«AWS
Lambdaº¯Êý»·¾³À©Õ¹µ½Edge£¬ÒÔ±ãEdgeÓ¦ÓóÌÐò¿ÉÒÔ×÷ΪLambdaº¯Êý²¿Êðµ½Edge²¢ÔÚEdgeÖнøÐйÜÀí¡£ÔÚAWS
GreenGrassÖУ¬Edge·þÎñͨ¹ýPub / SubÏûÏ¢Ï໥ͨÐŲ¢ÓëCloud·þÎñ½øÐÐͨÐÅ¡£Azure
IoT Edge»¹¾ßÓÐEdge Hub£¬¿É½«IoT HubµÄ¹¦ÄÜÀ©Õ¹µ½Edge£¬²¢ÎªEdge·þÎñÌṩPub
/ SubͨÐÅ¡£ÔÚÕâ¸öÄ£ÐÍÖУ¬Í¨¹ýΪÎïÁªÍøÉ豸Éè¼ÆµÄÀàËÆÍ¨µÀ£¬»ùÓÚPub / Sub sematicµÄÖÐÐÄÔÆ±ßÔµ½ÚµãͨÐÅ¡£´ÓCentral
CloudµÄ½Ç¶ÈÀ´¿´£¬Edge½Úµã±»ÊÓΪһÖÖÌØÊâµÄIoTÉ豸¡£
·þÎñ£¬Ã¿¸ö·þÎñ¶¼ÔÚ×Ô¼ºµÄ½ø³ÌÖÐÔËÐУ¬²¢ÓëÇáÁ¿¼¶»úÖÆÍ¨ÐÅ£¬Í¨³£ÊÇHTTP×ÊÔ´API¡£Òª½«»ùÓÚMicro-serviceµÄÔÆÓ¦ÓóÌÐòÀ©Õ¹µ½Edge£¬Ò»¸öÓ¦ÓóÌÐòµÄ²¿·ÖСÐÍ·þÎñ½«²¿ÊðÔÚEdge
NodesÖС£±ßÔµ·þÎñÓ¦¸ÃÓëÔÆÖеÄÏàͬRPCÒÔ¼°ÆäËûÔÆ·þÎñÏ໥ͨÐÅ¡£ÎªÊµÏÖ´ËÄ¿±ê£¬Edgeƽ̨ÐèÒªÌṩÓëÔÆÏàͬµÄÖ´Ðл·¾³¡£ÔÚ»·¾³ÖУ¬ÎÞÂÛ·þÎñÊÇÔÚEdge»¹ÊÇCloudÖÐÔËÐУ¬·þÎñ¶¼¿ÉÒÔÔÚÒ»¸ö¼¯ÈºÖÐÏ໥ͨÐÅ¡£´ËÍ⣬΢·þÎñÓ¦ÔÚEdge½ÚµãºÍ¾ßÓÐÏàͬ²¿Êð»ù´¡¼Ü¹¹µÄÔÆÖ®¼ä×ÔÓɵ÷¶È¡£
·¢²¼/¶©ÔÄÐÒé¿ÉÄܲ»ÊʺϽ«Î¢·þÎñ´ÓCloudÀ©Õ¹µ½Edge¡£ÓÉÓÚ¿ç΢·þÎñRPC¿ÉÄܲ»ÊÇ·¢²¼/¶©ÔÄÐÒ飬Òò´Ë»ùÓÚ·¢²¼/¶©ÔÄÐÒéµÄ±ßÔµ¼ÆËã»ù´¡½á¹¹ÖÐÔËÐеķþÎñÐèÒªÖØ¹¹ÒÔÂú×ã»ù´¡½á¹¹ÒªÇó¡£
KubeEdgeΪCloudºÍEdge»·¾³¹¹½¨ÁËÒ»¸öͬ¹¹Ö´Ðл·¾³¡£Ëü½â¾öÁËKubeBusµÄ±ßÔµ½ÚµãÁ¬½ÓÍØÆËÎÊÌ⣬Ëü½«¶Ë¿ÚÖеıßÔµ½Úµã£¬ÐéÄâ»úºÍÈÝÆ÷ÍøÂçÁ¬½ÓΪVPN;
Ëü»¹°üÀ¨Ò»¸öKubernetesÀ©Õ¹£¬¿É½«Kubernetes¹¦ÄÜÀ©Õ¹µ½Edge»·¾³£¬ÒÔ±ãEdge·þÎñ¿ÉÒÔÏñCloudÒ»Ñù²¿Êðµ½Edge;
KubeEdgeͨ¹ýEdgeMetadataService¼õÇáEdgeÓëÔÆµÄ²»Îȶ¨Á¬½Ó£¬EdgeMetadataServiceÔÚEdgeÌṩԪÊý¾Ý´æ´¢£¬ÔÚCloudºÍEdgeÖ®¼äÌṩԪÊý¾Ýͬ²½¡£ÏÂÒ»½Ú½«ÎªËûÃÇÌṩÏêϸÉè¼Æ¡£
3 ¼Ü¹¹ºÍÉè¼Æ
ͼ1 KubeEdge¼Ü¹¹
KubeEdgeÌṩÁËÒ»¸ö¶à×â»§µÄEdge»ù´¡ÉèÊ©¡£¾ÍÏñͼ1ÖÐËùÃèÊöµÄÄÇÑù£¬ÔÚÔÆÊý¾ÝÖÐÐÄÒ»²à£¬Ëü°üÀ¨¶à×â»§µÄ¹ÜÀí/Êý¾ÝÆ½Ãæ£¬²¢ÇÒ»¹Óжà¸ö×â»§µÄ¼¯Èº¡£¶à×â»§µÄ¹ÜÀí/Êý¾ÝÆ½Ãæ°üÀ¨ÔÆÖÐÐĵÄKubeBusÒÔ¼°×â»§¹ÜÀí¹¦Æ÷¡£Ò»¸ö×â»§¼¯Èº°üÀ¨ÔÚ±ßÔµÇøÓòÔËÐеÄÒ»¸ö»ò¶à¸ö±ßÔµ½Úµã£¬ÒÔ¼°ÔÚÔÆÖÐÔËÐеÄÒ»¸öKubernetes¼¯Èº¡£Kubernetes¼¯Èº°üÀ¨KubernetesÖ÷»úºÍ¶à¸öÐéÄâ»ú¡£Kubernetes
master½«vmºÍ±ßÔµ½Úµã¶¼×÷ΪÕý³£µÄKubernetes½Úµã¡£
ÿ¸ö±ßÔµ½ÚµãÖж¼ÔËÐÐÒ»¸öKubeEdge´úÀí¡£KubeEdge´úÀí°üÀ¨Ìṩ±ßÔµÍøÂç½ÓÈëµÄKubeBus¡¢Ìṩ±ßÔµÁ¬½ÓÔªÊý¾Ý´æ´¢ºÍͬ²½·þÎñµÄEdgeMetadataService;ÒÔ¼°¹ÜÀíEdgeÓ¦ÓóÌÐòÉúÃüÖÜÆÚµÄAppEngine¡£AppEngineÊÇÔËÐÐÔÚEdgeÉϵÄÇáÁ¿¼¶Kubelet¡£
ÔÚÔÆÇøÓò£¬¶ÔÓÚÿ¸ö×â»§µÄKubernetes¼¯Èº£¬ÔÚÒ»¸öVM½ÚµãÉÏÔËÐÐÒ»¸öKubeBusÐéÄâ·ÓÉÆ÷£¬Â·ÓɱßÔµ½Úµã×ÓÍøÓëVM×ÓÍø/ÈÝÆ÷ÍøÂç×ÓÍøÖ®¼äµÄÁ÷Á¿;KubeMasterÖл¹ÔËÐÐ×ÅÒ»¸öEdgeController£¬ÓÃÓÚÔÚKubeMasterºÍedge½ÚµãÖ®¼ä½»»»±ßÔµ·þÎñÅäÖúÍ״̬¡£
3.1 KubeBus
ÔÚKubeEdge»·¾³ÖУ¬Ò»¸ö·þÎñ¼È¿ÉÒÔµ÷¶Èµ½ÔÆÉϵÄVMµ±ÖУ¬Ò²¿ÉÒÔµ÷¶Èµ½±ßÔµ½Úµã£¬±ßÔµ½ÚµãµÄ·þÎñʹÓÃÓëÔÆ»·¾³ÏàͬµÄRPCÓëÆäËû·þÎñͨÐÅ¡£KubeBusÊÇΪÁ˽â¾ö±ßÔµ·þÎñÓëÔÆ·þÎñÖ®¼äµÄͨÐÅÎÊÌâ¶øÉè¼ÆµÄ£¬±ßÔµ·þÎñÔËÐÐÔÚ±ßÔµ½ÚµãÉÏ£¬¶øÔÆ·þÎñÔËÐÐÔÚÔÆ»·¾³ÖеÄÈÝÆ÷ÍøÂçÉÏ¡£KubeBus»¹Ö§³ÖÕë¶Ô¶à¸ö×â»§µÄµ¥¸ö¹ÜÀí/Êý¾ÝÆ½Ãæ£¬²¢ÌṩHttp¡£´Ó±ßÔµ½Úµã·¢²¼WebService¡£
3.1.1 Edge Node VPN
KubeBusµÄµÚÒ»¸ö¹¦ÄÜÊÇÁ¬½ÓÔÚ±ßÔµÐéÄâ˽ÓÐÍøÂçÖеıßÔµ½Úµã¡£ÔÚÒ»¸öµäÐ͵ıßÔµ»·¾³ÖУ¬²»Í¬µÄ±ßÔµ½ÚµãÔËÐÐÔÚ²»Í¬µÄ˽ÓÐÍøÂçÖУ¬Ã»Óй«¹²IPµØÖ·£¬Ö»ÄÜͨ¹ýNATÁ¬½Óµ½Ôƶˣ¬Á½¸ö±ßÔµ½ÚµãÖ®¼äûÓÐÖ±½ÓµÄÍøÂçÁ¬½Ó¡£Á½¸ö±ßÔµ½ÚµãµÄͨÐÅÐèҪͨ¹ýKubeBus@Cloud½øÐзÓÉ¡£KubeBusÊÇ3²ãµÄ¸²¸ÇÍøÂç¡£Èçͼ2Ëùʾ£¬KubeBusͨ¹ýTCPÁ¬½ÓʵÏÖOSIÍøÂçÄ£Ð͵ÄL2ºÍL3¡£KubeBusÊý¾ÝÁ´Â·²ãÔÚEdge½ÚµãºÍKubeBus@
cloudÖ®¼ä´´½¨Ò»¸ö»ò¶à¸ö³¤ÆÚÔËÐеÄTCPÁ¬½Ó¡£KubeBus»¹°üÀ¨Ò»¸öTUN½Ó¿Ú£¬Ëü½ÓÊÜÀ´×Ô²Ù×÷ϵͳÄں˵ÄIP°ü¡£IP°üͨ¹ýL3ºÍL2´«µÝµ½KubeBus@Cloud£¬È»ºóKubeBus@Cloudͨ¹ý³¤ÆÚÔËÐеÄTCPÁ¬½Ó·Óɵ½Ä¿±ê±ßÔµ½Úµã¡£
ͼ2 KubeBus VPNͨÐÅ
3.1.2 ½«±ßÔµ½ÚµãVPNÓëÈÝÆ÷ÍøÂçÁ¬½Ó
KubeBusµÄµÚ¶þ¸ö¹¦ÄÜÊÇʹEdge·þÎñÔËÐÐÔÚÓëÔËÐÐÔÚVMÍøÂç»òÈÝÆ÷ÍøÂç(Èçflannel)ÖеÄÔÆÓ¦ÓóÌÐòÏàͬµÄÍøÂçÖС£
ͼ3 KubeBus Edge/VM/container ÍøÂçVPN
ÔÚKubeEdge»·¾³ÖУ¬ÓÐ3¸ö×ÓÍøÂ硣ͬÊôÓÚÒ»¸ö×â»§µÄËùÓбßÔµ½ÚµãÊôÓÚÒ»¸öEdge½Úµã×ÓÍø£¬Õâ¸ö×ÓÍøÊÇKubeBus´´½¨µÄVPNÍøÂ磬Èç3.1.1Ëùʾ;ÔÚVM¼¯ÈºÖУ¬ËùÓÐVM¶¼ÊôÓÚVM×ÓÍø;VM¼¯ÈºÖÐÔËÐеÄËùÓÐÈÝÆ÷¶¼ÊôÓÚÈÝÆ÷×ÓÍø¡£KubeBus½«ËüÃÇ×÷Ϊµ¥¸öVPNÁ¬½Ó¡£
Èçͼ3Ëùʾ£¬°²×°ÁËÒ»¸öKubeBusÐéÄâ·ÓÉÆ÷´úÀíÔÚVM¼¯ÈºÖеÄÒ»¸öVMÉÏ¡£KubeBusÐéÄâ·ÓÉÆ÷´úÀí°üÀ¨KubeBusÍøÂçÐÒéÕ»£¬ÔÚ±ßÔµ½Úµã×ÓÍøºÍVM×ÓÍøÏ³䵱·ÓÉÆ÷¡£ÓÉÓÚVM×ÓÍø¿ÉÒÔ·ÃÎÊÈÝÆ÷×ÓÍø£¬µ±ÔÚÿ¸öVM½ÚµãºÍ±ßÔµ½ÚµãÖÐÅäÖÃÕýÈ·µÄ·ÓÉʱ£¬±ßÔµ½Úµã×ÓÍø×îÖÕÁ¬½Óµ½ÈÝÆ÷×ÓÍø(×¢Òâ:¶ÔÓÚ¾ßÓеØÖ·¹ýÂ˲ßÂԵļ¯Èº£¬ÐèÒª¶îÍâµÄ¸²¸Ç)¡£
3.1.3 ¶à×â»§¹ÜÀí/Êý¾ÝÆ½ÃæºÍ·þÎñ·¢²¼
KubeEdgeÊÇÒ»¸ö¶à×â»§»ù´¡ÉèÊ©¡£²»Í¬×â»§µÄ±ßÔµ½ÚµãÓɶà×â»§¹ÜÀí/Êý¾ÝÆ½Ãæ¹ÜÀí¡£Ò»·½Ã棬ËùÓÐ×â»§µÄ¹ÜÀí/Êý¾ÝÆ½Ãæ·þÎñÓë±ßÔµ½ÚµãÖ®¼ä´æÔÚͨÐÅ;ÁíÒ»·½Ãæ,²»Í¬×â»§Ö®¼äµÄ±ßÔµ½ÚµãÓ¦µ±¸ôÀë¡£ºÍÏÖÔÚµÄVPN½â¾ö·½°¸²»Í¬£¬KubeBus¹¹½¨Ò»¸öKubeBus¶ÑÕ»¹¹½¨Http²ã
,ʹ±ßÔµ½ÚµãÖ®¼äµÄͨÐźͶà×â»§¹ÜÀí/Êý¾ÝÆ½Ãæ¡£¸ù¾ÝÍøÂç·þÎñÔËÐÐÔÚ±ßÔµ½Úµã¿ÉÒÔ´ÓÆ½Ãæ¹ÜÀí/Êý¾Ý·ÃÎÊ·þÎñ,·´Ö®ÒàÈ»¡£³ý´ËÖ®Í⣬ÔÚEdge½ÚµãÉÏÔËÐеÄHttp
web·þÎñÒ²¿ÉÒÔͨ¹ý¶à×â»§¹ÜÀí/Êý¾ÝÆ½Ãæ·¢²¼µ½InternetÉÏ¡£Ëü¶ÔÓÚijЩ¿Í»§³¡¾°·Ç³£ÓÐÓá£ÀýÈç,Ò»¸ö±ßÔµ½ÚµãÓëÉãÏñ»ú¿ÉÒÔ·¢²¼HttpÊÓÆµÁ÷×÷ΪHttp
WebService ·¢Ë͵½KubeBus²¢ÇÒ±©Â¶µ½¶à×â»§¹ÜÀí/Êý¾ÝÆ½Ãæ,È»ºóµÈ»¥ÁªÍøä¯ÀÀÆ÷µÄHttp¿Í»§¶Ë¿ÉÒԵõ½ÊÓÆµÁ÷´ÓHttp
WebService±ßÔµ½ÚµãÉÏÔËÐС£
ͼ4 KubeBus HttpÐÒéÕ»
Èçͼ4Ëùʾ£¬Í¨¹ýKubeBusµÄ²»¿É¿¿ÍøÂç²ã3£¬¹¹½¨ÁËÁ¬½Ó¿É¿¿µÄKubeBus´«Êä²ã4¡£KubeBus
L4ÌṩÓëTCPÏàͬµÄAPI½Ó¿Ú¡£ÈçÌý/½ÓÊÜ/Á¬½Ó/¶Ï¿ªÁ¬½Ó¡£ÔÚKubeBus L4ÉÏ£¬ÔËÐÐ×Å2¸ö¡°Http·´Ïò´úÀí¡±:KubeBus¿Í»§»ú´úÀíºÍKubeBus·þÎñÆ÷´úÀí¡£
KubeBus¿Í»§¶Ë´úÀí¼àÌýTCP¶Ë¿Ú£¬µ±½ÓÊÕµ½Http¿Í»§¶ËÇëÇóʱ£¬Í¨¹ýKubeBus L4¿É¿¿Á¬½Ó½«ÇëÇóת·¢¸øKubeBus·þÎñÆ÷´úÀí;
KubeBus·þÎñÆ÷´úÀíÔÚKubeBus L4ÉÏÕìÌý£¬µ±ÊÕµ½ÓÉKubeBus¿Í»§¶Ëת·¢µÄHTTPÇëÇóºó£¬Ëü½«ÒÀ´Îת·¢ÇëÇóÄ¿±ê±¾µØHttp
WebService¡£Ö®ºó£¬HttpÏìÓ¦½«Í¨¹ý·þÎñÆ÷´úÀíºÍ¿Í»§¶Ë´úÀí·µ»Øµ½Http¿Í»§¶Ë¡£
ʹÓÃKubeBus¿Í»§»úºÍ·þÎñÆ÷´úÀí£¬¹¹½¨ÁËÁíÒ»¸ö¡°KubeBusÖ®ÉϵÄHttp²ã¡±¡£ÔËÐÐÔÚÔÆ»ò±ßÔµ½ÚµãÉϵÄHttp
web·þÎñ¿ÉÒÔ×¢²áµ½KubeBus£¬²¢ÇÒHttp¿Í»§¶Ë¿ÉÒÔ´ÓÔÆ¡¢±ßÔµ½Úµã»òInternetÀ´·ÃÎÊ·þÎñ¡£
À´×ÔÔÆ»ò²»Í¬±ßÔµ½ÚµãµÄ²»Í¬×â»§µÄHttp web·þÎñ¿ÉÒÔ×¢²áµ½KubeBus¡£Ò»¸öweb·þÎñ±»±êʶΪ<Tenant
ld, Edge½ÚµãÃû£¬WebServiceName>¡£×âÔ¼ÊÇ×â»§µÄÈ«¾Ö±êʶ·û;±ßÔµ½ÚµãÃûÊÇ×â»§·¶Î§ÄÚΨһµÄ±ßÔµ½ÚµãÃû;Web·þÎñÃû³ÆÊǽڵ㼶±ðµÄΩһ·þÎñÃû³Æ£¬KubeBusʹÓÃÈ«¾Ö±êʶ·ûURLģʽÀ´±êʶHtp
Web·þÎñ(Èçͼ5Ëùʾ)¡£
3.2 ±ßÔµÔªÊý¾Ý·þÎñ
ÓÉÓÚµ½ÔƵıßÔµ½ÚµãÊÇWANÁ¬½ÓµÄ£¬ËùÒÔÁ¬½Ó¿ÉÄÜÊDz»¿É¿¿µÄ²¢ÇÒ´ø¿íµÍºÍ¼Û¸ñ°º¹ó¡£
ΪÁ˽â¾ö¹ãÓòÍøµÄ¿É¿¿ÎÊÌ⣬±ß·þÎñÊÇÒªÇó×Ô¶¯ÔËÐС£±ßÔµµÄ·þÎñ¼´Ê¹ÊDZßÔµ½ÚµãÒ²ÐèÒªÖØÐ³ɹ¦ÔËÐÐÖØÆôºóÀëÏß¡£Òò´Ë£¬±ßÔµ·þÎñµÄÅäÖÃÐèÒªÔÚ±ßÔµ½ÚµãÖб£³Ö³Ö¾ÃÐÔ£¬µ±±ßÔµ½áµãºÍÔÆÖÐÐĵÄÁ¬½Ó»Ö¸´Ö®ºó£¬ÅäÖÿÉÒÔ´ÓÔÆÍ¬²½µ½ÍøÂç±ßÔµ£»
ΪÁ˽â¾ö¹ãÓòÍøµÄµÍ´ø¿íÎÊÌ⣬Êý¾ÝΪͬ²½ÅäÖô«ÊäµÄ¾íÓ¦±»¼õµ½×îС¡£Òò´Ë,ÔöÁ¿Í¬²½±ÈÍêÕû¿ìÕÕ¸üºÏÊÊ¡£²»½öÅäÖÃÐèÒª´ÓÔÆ´«Ë͵½±ßÔµ£¬±ßÔµ·þÎñµÄ״̬ҲÐèÒª´Ó±ßÔµ´«Ë͵½ÔÆ¡£
±ßÔµÔªÊý¾Ý·þÎñÊÇΪÕâÁ½¸öÐèÇó¶ø¹¹½¨µÄ¡£±ßÔµÔªÊý¾Ý·þÎñ°üÀ¨ÔÚ±ßÔµ¶ËÔËÐеÄÔªÊý¾Ý´æ´¢ºÍͬ²½·þÎñ(SyncService)£¬ÔÚÔÆ¶ËÒ²ÓÐÏàÓ¦µÄÔªÊý¾Ý´æ´¢¡£½«±ßÔµ·þÎñµÄÅäÖÃдµ½ÔƶËÔªÊý¾Ý´æ´¢ÖУ¬Ê¹ÅäÖøü¸Ä¹ý³Ì×÷ΪÒì²½¹ý³Ì½øÐС£¼´Ê¹±ßÔµÍÑ»ú£¬Ð´²Ù×÷ÈÔÈ»³É¹¦;µ±±ßÔµ½ÚµãºÍÔÆÖ®¼äµÄÍøÂçÁ¬½Ó»Ö¸´ºó£¬Sync·þÎñ´ÓÔÆÔªÊý¾Ý´æ´¢ÇëÇó×ÔÉϴγɹ¦Í¬²½ÒÔÀ´µÄÅäÖøü¸Ä£¬²¢½«ÆäдÈë±¾µØÔªÊý¾Ý´æ´¢¡£Í¬²½×îÖÕÓ¦¸ÃÊÇÒ»Öµġ£Òò´ËÔªÊý¾Ý´æ´¢ÐèÒªÖ§³ÖÔ×ÓдºÍÔöÁ¿¼ìË÷¡£
KubeEdgeÑ¡ÔñEtcd[8]×÷ΪԪÊý¾Ý´æ´¢¡£ÕâÊÇÒòΪEtcdÖ§³ÖÊÂÎñÐÔд£¬²¢ÇÒÓжà¸ö°æ±¾²¢·¢¿ØÖÆAPI½Ó¿ÚÀ´¼ìË÷ÔöÁ¿¸ü¸Ä£¬¼´»ùÓÚÐÞ¶©µÄGet/Watch·½·¨¡£
ͼ6 ÅäÖÃͬ²½Ëã·¨
´ÓÔÆµ½±ßÔµµÄÅäÖÃͬ²½Ëã·¨Èçͼ6Ëùʾ¡£Í¬²½¹ý³ÌÊÇÒ»¸öÑ»·¡£Ñ»·ÓÐ3¸ö²½Öè¡£Ê×ÏÈ£¬´Ó±ßÔµ½Úµã±¾µØEtcd´æ´¢ÖжÁÈ¡ÉÏÒ»´Î³É¹¦Í¬²½µÄ×îºóÒ»¸öͬ²½ÐÞ¶©(LSR);µÚ¶þ£¬LSRºóµÄ¸ü¸ÄºÍÐÂÐÞ¶©À´×ÔÔÆEtcd
Store;×îºó£¬½«Ð޸ĵÄÄÚÈݺÍеÄÐÞ¸ÄÄÚÈÝдÈë±ßÔµ½Úµã±¾µØEtcd´æ´¢Çø¡£Ð´ÖеÄÐÂÐÞ¶©½«ÔÚÏÂÒ»´ÎÑ»·µü´úÖгÉΪLSR¡£¸ÃËã·¨ÔÚͬ²½¹ý³Ì±ÀÀ£µÄÈκÎʱ¿Ì¶¼ÄÜʵÏÖ×îÖÕµÄÒ»ÖÂÐÔºÍÔ×ÓÐÔ¡£ÒòΪֻÓиü¸ÄµÄÊý¾ÝÐèҪͬ²½£¬Í¬²½ËùÏûºÄµÄ´ø¿í±»×îС»¯¡£±ßÔµµ½ÔƵķþÎñ״̬ͬ²½Ëã·¨ÓëÖ®ÏàËÆ¡£
3.3 Kubernetes ±ßÔµÀ©Õ¹
ÔÚÿ¸ö½ÚµãÉÏÔËÐÐÒ»¸ö´úÀí(Kubelet)¡£Ëü´ÓKubeMaster»ñȡӦÓóÌÐòÅäÖ㬹ÜÀíÓ¦ÓóÌÐòÉúÃüÖÜÆÚ£¬²¢ÏòKubeMaster±¨¸æÓ¦ÓóÌÐòµÄ״̬¡£Kubernetes±ßÔµÀ©Õ¹ÊÇΪÁ˽â¾ö±ßÔµ»·¾³ÖÐWANÍøÂçÁ¬½ÓµÄÌØ¶¨ÌØÐÔ¶øÉè¼ÆµÄ¡£Ëü½«Kubelet·ÖΪÁ½²¿·Ö:EdgeControllerÔÚÔÆ¶ËÔËÐУ¬AppEngineÔÚ±ßÔµ½ÚµãÔËÐС£EdgeControllerÓôú±í±ßÔµ½ÚµãÏòKubeMasterË÷ȡӦÓÃÅäÖÃ;È»ºóͨ¹ýEdgeMetadataService½«¸ü¸ÄºóµÄÅäÖô«µÝ¸øAppEngine;Ö®ºó£¬AppEngine½«»ùÓÚ´æ´¢ÔÚEdgeMetadataServiceÖеÄÓ¦ÓóÌÐòÅäÖÃÀ´´¦ÀíÓ¦ÓóÌÐòÉúÃüÖÜÆÚ¡£AppEngine»¹½«Í¨¹ýEdgeMetadataServiceºÍEdgeControllerÏòKubuMaster±¨¸æÓ¦ÓóÌÐò״̬¡£ÓÉÓÚÔÆºÍEdgeÖ®¼äµÄÊý¾Ý½»»»Êǽ¨Á¢ÔÚEdgeMetadataServiceÉϵģ¬ËùÒÔ¿ÉÒÔÔÚÒ첽ģÐÍÖÐÍê³É£¬Ö»ÐèÒª´«µÝ¸ü¸Ä¼´¿É½ÚÊ¡´ø¿í¡£
4 ʵÑé
ÎÒÃÇÔÚ²âÊÔ»·¾³ÖÐÆÀ¹ÀÁËKubeEdgeµÄÐÔÄÜ£¬Èçͼ7Ëùʾ¡£KubeMasterºÍVM1/VM2ÔÚÒ»¸ö×ÓÍøÖÐÔËÐУ¬EdgelºÍEdge2ÔÚ²»Í¬µÄ×ÓÍøÖÐÔËÐС£ËûÃǶ¼ÊÇͨ¹ý»¥ÁªÍøÁ¬½Óµ½KubeBus@CloudµÄ¡£KubueBus@CloudÔÚAWSµÄÒ»¸öÖÐÑëÐéÄâ»úÖÐÔËÐС£
ͼ 7 ʵÑéÐÔÄܲâÊÔ»·¾³
ÎÒÃÇÓÃPing²âÊÔÁËËüÃÇÖ®¼äµÄÍøÂçÑÓ³Ù¡£²âÊÔ½á¹ûÈçͼ8Ëùʾ¡£
ÔÚÕâÀï²åÈëͼƬÃèÊö´Ó½á¹û¿ÉÒÔ¿´³ö£¬±ßÔµÓëvmÖ®¼äµÄÑÓ³ÙÖ÷ÒªÀ´×ÔinternetÑÓ³Ù¡£KubeBus¶ÔÑÓ³ÙµÄÓ°Ïì·Ç³£Ð¡¡£
»ùÓÚ´Ë£¬ÎÒÃDZȽÏÁ˱ßÔµ½ÚµãºÍVMÖ®¼äµÄ²¿ÊðÑÓ³Ù¡£ÎÒÃÇÖ»²âÁ¿KubeMaster»ñÈ¡²¿ÊðÇëÇóºÍKubelet/AppEngine»ñÈ¡½á¹ûÖ®¼äµÄÑÓ³Ù¡£VMµÄÑÓ³ÙԼΪ2Ã룬¶ø±ßÔµµÄEdeeÑÓ³ÙΪ3Ãë¡£ÎÒÃÇ¿ÉÒÔ¿´µ½Edse¶Ô²¿ÊðÑÓ³ÙµÄÓ°ÏìµÄÑÓ³ÙÊÇ¿ÉÒÔ½ÓÊܵġ£Ó²¼þµÄÅäÖÃÐÅÏ¢ÈçÏÂËùʾ£º
ͼ9 Ó²¼þÅäÖÃ
KubeEdge×÷ÎªÔÆµÄÀ©Õ¹¹¹½¨ÁËÒ»¸ö»ù±¾µÄ±ßÔµ»ù´¡ÉèÊ©¡£Ëü¼ÙÉè±ßÔµ½ÚµãÐèҪͨ¹ýÔÆ½øÐÐͨÐÅ¡£ÊÂʵÉÏ£¬±ßÔµ½ÚµãÖ®¼ä¿ÉÄÜÊÇÖ±½ÓÁ¬½ÓµÄ£¬¶ø±ßÔµ½Úµã¿ÉÒÔ×÷Ϊ¼¯Èº¹¤×÷£¬¼´Ê¹ÓëÔÆÖÐÐĶϿªÁ¬½ÓÒ²ÊÇÈç´Ë¡£¼Æ»®Ê¹ÓÃÒÔÏÂÌØÐÔÀ´ÔöÇ¿ÆôÓñßÔµ¼¯ÈºµÄ¹¦ÄÜ¡£
1.±ßÔµÍøÂ磺KubeBusΪ±ßÔµ½ÚµãºÍÔÆÖеÄÈÝÆ÷ÍøÂç´´ÔìÁËÒ»¸öVPN»·¾³¡£ÔÚµ±Ç°µÄÄ£Ð͵±ÖУ¬±ßÔµ½Úµã¼äµÄÁ¬½Ó½«Í¨¹ýKubeBus@Cloud½øÐС£Á½¸ö±ßÔµ½ÚµãÖ®¼ä¿ÉÄÜ´æÔÚÖ±½ÓÁ¬½Ó¡£ÀýÈ磬±ßÔµ½Úµã¿ÉÄܾßÓй«¹²IPµØÖ·£¬ÒÔ±ãÁíÒ»¸ö±ßÔµ½Úµã¿ÉÒÔÖ±½Ó´´½¨µ½ËüµÄTCPÁ¬½Ó;2¸ö±ßÔµ½ÚµãÒ²¿ÉÒÔ½¨Á¢»ùÓÚTCP¶´´©¼¼ÊõµÄÖ±½ÓÁ¬½Ó;»òÕßÁ½¸ö±ßÔµ½ÚµãÖ®¼ä¿ÉÄÜ´æÔÚרÓÃÁ¬½Ó¡£Í¨¹ýÖ±½ÓÁ¬½Ó£¬±ßÔµÍøÂçÍØÆË½á¹¹½«ÊÇÒ»¸ö·Ç¼¯ÖÐÊ½Íø¸ñÍøÂç¡£KubeBusÐèÒªÖ§³Ö±ßÔµÍøÂæµÄ´´½¨£¬ÈçTCP´©¿×ºÍ¸ßЧµÄ°ü·Óɵȡ£
2.È¥ÖÐÐÄ»¯µÄ±ßÔµÔªÊý¾Ý·þÎñ:±ßÔµÍøÂ罫ÊÇÒ»¸öÈ¥ÖÐÐÄ»¯µÄ±ßÔµÍø¸ñÍøÂç¡£µ±ÓëÔÆµÄÁ¬½Ó²»¿ÉÓÃʱ£¬±ßÔµ½ÚµãÖ®¼äµÄÁ¬½Ó¿ÉÄÜÈÔÈ»ÓÐЧ£¬±ßÔµ½ÚµãÖ®¼äÈÔÓ¦Ï໥Ð×÷£¬¸ßЧ¹¤×÷¡£ÔÚ±ßÔµÍø¸ñÍøÂçÖУ¬ÎªÁËʵÏÖ±ßÔµ½ÚµãÖ®¼äµÄÔªÊý¾Ý½»»»£¬ÐèÒª¶Ô±ßÔµ½Úµã½øÐÐÈ¥ÖÐÐÄ»¯µÄEdgeMetadataService¡£ÀýÈ磬±ß½Úµã¿ÉÒÔͨ¹ýÁ¬½Óµ½ÁíÒ»¸ö±ß½ÚµãÀ´Á¬½Ó±ßÍø¸ñÍøÂç¡£ÔÚdecentraledgemetadataserviceÖ§³ÖÏ£¬ÔÆÍÑ»úʱ£¬µ½Ð±ßÔµ½ÚµãµÄ·ÓÉÓ¦¸Ã´«²¥µ½ÆäËû±ßÔµ½Úµã¡£
3.È¥ÖÐÐÄ»¯±ßÔµ¼¯Èº:»ùÓÚ±ßÔµÍø¸ñÍøÂ磬µ±ÖÐÐÄÔÆ×÷Ϊһ¸ö¼¯ÈºÍÑ»úʱ£¬±ßÔµ½ÚµãÐèÒª×ÔÖ÷¹¤×÷¡£¿¼Âǵ½ÍøÂçÍØÆË¡¢×ÊÔ´ÏÞÖÆºÍÔ¤ÏÈÅäÖõÄÈÎÎñÓÅÏȼ¶£¬ÔÚÒ»¸ö±ßÔµ½ÚµãÉÏÔËÐеķþÎñ¿ÉÒÔÖØÐµ÷¶Èµ½ÆäËû½ÚµãÉÏ£¬ÒÔʵÏÖ¸ºÔؾùºâ¡¢¿É¿¿ÐÔ¡£ÎªÁËʵÏÖÕâһĿ±ê£¬ÐèÒª¶Ô±ßÔµ¼¯Èº½øÐÐÈ¥ÖÐÐÄ»¯¡£
5 conclusion
Ëæ×Ÿü¶àµÄÊý¾Ý´Ó±ßÔµ¶ËÉú³É£¬¸ü¶àÔ±¾ÔÚÔÆÖÐÖ´ÐеļÆË㽫±»ÍÆË͵½±ßÔµ¶Ë¡£±ßÔµ»·¾³ÔÚÍøÂçÍØÆË¡¢Á¬½ÓºÍÐÔÄÜ·½ÃæÓëÔÆ²»Í¬¡£±ßÔµ»ù´¡ÉèÊ©ÊÇÍÆ¶¯ÔƼÆËã¸ßЧ±ßÔµµÄ¹Ø¼ü¡£±¾ÎÄÌá³öÁËKubeEdge×÷ΪһÖÖ±ßÔµ»ù´¡ÉèÊ©¡£»ù´¡ÉèÊ©±»ÈÏΪÊÇÔÆ»ù´¡ÉèÊ©µÄÀ©Õ¹¡£Ëüͨ¹ý½«ÔÆÖеıßÔµ½ÚµãºÍVM×÷Ϊµ¥¸ö¼¯ÈºÁ¬½ÓÆðÀ´£¬¹¹½¨ÁËÓëÔÆÀàËÆµÄ±ßÔµÖ´Ðл·¾³¡£Ëü¿ÉÒÔÌæ´úÏÖÓеĻùÓÚ·¢²¼/¶©ÔĵıßÔµ»ù´¡ÉèÊ©¡£
|