±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½²½âService
MeshµÄ¸ÅÄʵÏÖÔÀí£¬Ï£ÍûÄܶÔÄúÓÐËù°ïÖú¡£
±¾ÎÄÀ´×Ô²©¿ÍÔ°£¬ÓÉ»ðÁú¹ûÈí¼þÁõ衱à¼ÍƼö |
|
ʲôÊÇService Mesh£¿
Service MeshµÄ¸ÅÄî×îÔçÊÇÓÉBuoyant¹«Ë¾µÄCEO William MorganÔÚһƪÎÄÕÂÀïÌá³ö£¬Ëû¸ø³öµÄ·þÎñÍø¸ñµÄ¶¨ÒåÊÇ£º
A service mesh is a dedicated infrastructure layer for handling service-to-service communication. It¡¯s responsible for the reliable delivery of requests through the complex topology of services that comprise a modern, cloud native application. In practice, the service mesh is typically implemented as an array of lightweight network proxies that are deployed alongside application code, without the application needing to be aware.
Service MeshÊÇÒ»ÖÖÐÂÐ͵ÄÓÃÓÚ´¦Àí·þÎñÓë·þÎñÖ®¼äͨÐŵļ¼Êõ£¬ÓÈÆäÊÊÓÃÒÔÔÆÔÉúÓ¦ÓÃÐÎʽ²¿ÊðµÄ·þÎñ£¬Äܹ»±£Ö¤·þÎñÓë·þÎñÖ®¼äµ÷ÓõĿɿ¿ÐÔ¡£ÔÚʵ¼Ê²¿Êðʱ£¬Service Meshͨ³£ÒÔÇáÁ¿¼¶µÄÍøÂç´úÀíµÄ·½Ê½¸úÓ¦ÓõĴúÂ벿ÊðÔÚÒ»Æð£¬´Ó¶øÒÔÓ¦ÓÃÎÞ¸ÐÖªµÄ·½Ê½ÊµÏÖ·þÎñÖÎÀí¡£
Service MeshÒÔÇáÁ¿¼¶µÄÍøÂç´úÀíµÄ·½Ê½ÓëÓ¦ÓõĴúÂ벿ÊðÔÚÒ»Æð£¬ÓÃÓÚ±£Ö¤·þÎñÓë·þÎñÖ®¼äµ÷ÓõĿɿ¿ÐÔ£¬ÕâÓ봫ͳµÄ΢·þÎñ¼Ü¹¹ÓÐ×ű¾ÖʵÄÇø±ð£¬Õâô×öÖ÷ÒªÊdzöÓÚÁ½¸öÔÒò¡£
1.¿çÓïÑÔ·þÎñµ÷ÓõÄÐèÒª¡£ÔÚ´ó¶àÊý¹«Ë¾ÄÚͨ³£¶¼´æÔÚ¶à¸öÒµÎñÍŶӣ¬Ã¿¸öÍŶÓÒµÎñËù²ÉÓõĿª·¢ÓïÑÔÒ»°ã¶¼²»Ïàͬ£¬ÒÔ΢²©µÄÒµÎñΪÀý£¬Òƶ¯·þÎñ¶ËµÄÒµÎñÖ÷Òª²ÉÓõÄÊÇPHPÓïÑÔ¿ª·¢£¬APIƽ̨µÄÒµÎñÖ÷Òª²ÉÓõÄÊÇJavaÓïÑÔ¿ª·¢£¬Òƶ¯·þÎñ¶Ëµ÷ÓÃAPIƽ̨ʹÓõÄÊÇHTTPÇëÇó£¬Èç¹ûÒª½øÐзþÎñ»¯£¬¸Ä³ÉRPCµ÷Ó㬾ÍÐèÒªÒ»ÖÖ¼ÈÖ§³ÖPHPÓïÑÔÓÖÖ§³ÖÖ§³ÖJavaÓïÑԵĵķþÎñ»¯¿ò¼Ü¡£
2.ÔÆÔÉúÓ¦Ó÷þÎñÖÎÀíµÄÐèÒª¡£ÔÚ΢·þÎñÔ½À´Ô½¶à¿ªÊ¼ÈÝÆ÷»¯£¬²¢Ê¹ÓÃKubernetesÀàËÆµÄÈÝÆ÷ƽ̨¶Ô·þÎñ½øÐйÜÀí£¬Öð²½³¯ÔÆÔÉúÓ¦Óõķ½Ïò½ø»¯¡£¶ø´«Í³µÄ·þÎñÖÎÀíÒªÇóÔÚÒµÎñ´úÂëÀO³É·þÎñ¿ò¼ÜµÄSDK£¬ÕâÏÔÈ»ÓëÔÆÔÉúÓ¦ÓõÄÀíÄîÏà㣣¬Òò´ËÆÈÇÐÐèÒªÒ»ÖÖ¶ÔÒµÎñ´úÂëÎÞÇÖÈëµÄÊʺÏÔÆÔÉúÓ¦ÓõķþÎñÖÎÀí·½Ê½¡£
ÔÚÕâÖÖ±³¾°Ï£¬Buoyant¹«Ë¾¿ª·¢µÄµÚÒ»´úService Mesh²úÆ·LinkerdÓ¦Ô˶øÉú¡£´ÓÏÂͼÖпÉÒÔ¿´µ½£¬·þÎñAÒªµ÷Ó÷þÎñB£¬¾¹ýLinkerdÀ´´úÀíת·¢£¬·þÎñAºÍ·þÎñBµÄÒµÎñ´úÂë²»ÐèÒª¹ØÐÄ·þÎñ¿ò¼Ü¹¦ÄܵÄʵÏÖ¡£Îª´ËLinkerdÐèÒª¾ß±¸¸ºÔؾùºâ¡¢ÈÛ¶Ï¡¢³¬Ê±ÖØÊÔ¡¢¼à¿ØÍ³¼ÆÒÔ¼°·þÎñ·Óɵȹ¦ÄÜ¡£ÕâÑùµÄ»°£¬¶ÔÓÚ¿çÓïÑÔ·þÎñµ÷ÓÃÀ´Ëµ£¬¼´Ê¹·þÎñÏû·ÑÕߺͷþÎñÌṩÕß²ÉÓõÄÓïÑÔ²»Í¬£¬Ò²²»ÐèÒª¼¯³É¸÷×ÔÓïÑÔµÄSDK¡£

¶ø¶ÔÓÚÔÆÔÉúÓ¦ÓÃÀ´Ëµ£¬¿ÉÒÔÔÚÿ¸ö·þÎñ²¿ÊðµÄʵÀýÉÏ£¬¶¼Í¬µÈµÄ²¿ÊðÒ»¸öLinkerdʵÀý¡£±ÈÈçÏÂÃæÕâÕÅͼ£¬·þÎñAÒªÏëµ÷Ó÷þÎñB£¬Ê×Ïȵ÷Óñ¾µØµÄLinkerdʵÀý£¬¾¹ý±¾µØµÄLinkedʵÀýת·¢¸ø·þÎñBËùÔÚ½ÚµãÉϵÄLinkerdʵÀý£¬×îºóÔÙÓÉ·þÎñB±¾µØµÄLinkerdʵÀý°ÑÇëÇóת·¢¸ø·þÎñB¡£ÕâÑùµÄ»°£¬ËùÓеķþÎñµ÷Óö¼µÃ¾¹ýLinkerd½øÐдúÀíת·¢£¬ËùÓеÄLinkerd×éºÏÆðÀ´¾ÍÏñÒ»¸öÍø¸ñÒ»Ñù£¬ÕâÒ²ÊÇΪʲôÎÒÃǰÑÕâÏî¼¼Êõ³ÆÎªService Mesh£¬Ò²¾ÍÊÇ¡°·þÎñÍø¸ñ¡±µÄÔÒò¡£

Service MeshµÄʵÏÖÔÀí
Service MeshʵÏֵĹؼü¾ÍÔÚÓÚÁ½µã£ºÒ»¸öÊÇÉÏÃæÌáµ½µÄÇáÁ¿¼¶µÄÍøÂç´úÀíÒ²½ÐSideCar£¬ËüµÄ×÷ÓþÍÊÇת·¢·þÎñÖ®¼äµÄµ÷Óã»Ò»¸öÊÇ»ùÓÚSideCarµÄ·þÎñÖÎÀíÒ²±»½Ð×÷Control Plane£¬ËüµÄ×÷ÓÃÊÇÏòSideCar·¢Ë͸÷ÖÖÖ¸ÁÒÔÍê³É¸÷ÖÖ·þÎñÖÎÀí¹¦ÄÜ¡£ÏÂÃæÎÒ¾ÍÀ´Ïêϸ½²½âÕâÁ½µãÊÇÈçºÎʵÏֵġ£
1.SideCar
ÎÒÃÇÊ×ÏÈÀ´¿´Ò»Ï£¬ÔÚ´«Í³µÄ΢·þÎñ¼Ü¹¹Ï·þÎñµ÷ÓõÄÔÀí¡£Äã¿ÉÒÔ¿´ÏÂÃæÕâÕÅͼ£¬·þÎñÏû·ÑÕßÕâ±ß³ýÁË×ÔÉíµÄÒµÎñÂ߼ʵÏÖÍ⣬»¹ÐèÒª¼¯³É²¿·Ö·þÎñ¿ò¼ÜµÄÂß¼£¬±ÈÈç·þÎñ·¢ÏÖ¡¢¸ºÔؾùºâ¡¢È۶Ͻµ¼¶¡¢·â×°µ÷Óõȣ¬¶ø·þÎñÌṩÕßÕâ±ß³ýÁËʵÏÖ·þÎñµÄÒµÎñÂß¼Í⣬ҲҪ¼¯³É²¿·Ö·þÎñ¿ò¼ÜµÄÂß¼£¬±ÈÈçÏ̳߳ء¢ÏÞÁ÷½µ¼¶¡¢·þÎñ×¢²áµÈ¡£

¶øÔÚService Mesh¼Ü¹¹ÖУ¬·þÎñ¿ò¼ÜµÄ¹¦Äܶ¼¼¯ÖÐʵÏÖÔÚSideCarÀ²¢ÔÚÿһ¸ö·þÎñÏû·ÑÕߺͷþÎñÌṩÕߵı¾µØ¶¼²¿ÊðÒ»¸öSideCar£¬·þÎñÏû·ÑÕߺͷþÎñÌṩÕßÖ»¹Ü×Ô¼ºµÄÒµÎñʵÏÖ£¬·þÎñÏû·ÑÕßÏò±¾µØµÄSideCar·¢ÆðÇëÇ󣬱¾µØµÄSideCar¸ù¾ÝÇëÇóµÄ·¾¶Ïò×¢²áÖÐÐIJéѯ£¬µÃµ½·þÎñÌṩÕߵĿÉÓýڵãÁбíºó£¬ÔÙ¸ù¾Ý¸ºÔؾùºâ²ßÂÔÑ¡ÔñÒ»¸ö·þÎñÌṩÕ߽ڵ㣬²¢ÏòÕâ¸ö½ÚµãÉϵÄSideCarת·¢ÇëÇ󣬷þÎñÌṩÕß½ÚµãÉϵÄSideCarÍê³ÉÁ÷Á¿Í³¼Æ¡¢ÏÞÁ÷µÈ¹¦Äܺó£¬ÔÙ°ÑÇëÇóת·¢¸ø±¾µØ²¿ÊðµÄ·þÎñÌṩÕß½ø³Ì£¬´Ó¶øÍê³ÉÒ»´Î·þÎñÇëÇó¡£Õû¸öÁ÷³ÌÄã¿ÉÒԲο¼ÏÂÃæÕâÕÅͼ¡£

ÎÒÃÇ¿ÉÒÔ°Ñ·þÎñÏû·ÑÕß½ÚµãÉϵÄSideCar½Ð×÷ÕýÏò´úÀí£¬·þÎñÌṩÕß½ÚµãÉϵÄSideCar½Ð×÷·´Ïò´úÀí£¬ÄÇôService Mesh¼Ü¹¹µÄ¹Ø¼üµã¾ÍÔÚÓÚ·þÎñÏû·ÑÕß·¢³öµÄÇëÇóÈçºÎͨ¹ýÕýÏò´úÀíת·¢ÒÔ¼°·þÎñÌṩÕßÊÕµ½µÄÇëÇóÈçºÎͨ¹ý·´Ïò´úÀíת·¢¡£´ÓÎҵľÑéÀ´¿´£¬Ö÷ÒªÓÐÁ½ÖÖʵÏÖ·½°¸¡£
»ùÓÚiptablesµÄÍøÂçÀ¹½Ø¡£ÕâÖÖ·½°¸Çë¼ûÏÂͼ£¬½ÚµãAÉÏ·þÎñÏû·ÑÕß·¢³öµÄTCPÇëÇ󶼻ᱻÀ¹½Ø£¬È»ºó·¢Ë͸øÕýÏò´úÀí¼àÌýµÄ¶Ë¿Ú15001£¬ÕýÏò´úÀí´¦ÀíÍê³ÉºóÔÙ°ÑÇëÇóת·¢µ½½ÚµãBµÄ¶Ë¿Ú9080¡£½ÚµãB¶Ë¿Ú9080ÉϵÄËùÓÐÇëÇ󶼻ᱻÀ¹½Ø·¢Ë͸ø·´Ïò´úÀí¼àÌýµÄ¶Ë¿Ú15001£¬·´Ïò´úÀí´¦ÀíÍêºóÔÙת·¢¸ø±¾»úÉÏ·þÎñÌṩÕß¼àÌýµÄ¶Ë¿Ú9080¡£

²ÉÓÃÐÒéת»»µÄ·½Ê½¡£ÕâÖÖ·½°¸Çë¼ûÏÂͼ£¬½ÚµãAÉϵķþÎñÏû·ÑÕßÇëÇóÖ±½Ó·¢¸øÕýÏò´úÀí¼àÌýµÄ¶Ë¿Ú15001£¬ÕýÏò´úÀí´¦ÀíÍê³Éºó£¬ÔÙ°ÑÇëÇóת·¢µ½½ÚµãBÉÏ·´Ïò´úÀí¼àÌýµÄ¶Ë¿Ú15001£¬·´Ïò´úÀí´¦ÀíÍê³ÉºóÔÙ·¢Ë͸ø±¾»úÉϵķþÎñÌṩÕß¼àÌýµÄ¶Ë¿Ú9080¡£

¿É¼û£¬ÕâÁ½ÖÖ·½°¸×î´óµÄ²»Í¬Ö®´¦ÔÚÓÚ£¬Ò»¸öÊÇͨ¹ýiptablesÍøÂçÀ¹½ØÊµÏÖ´úÀíת·¢µÄ£¬Ò»¸öÊÇ¿¿Ö±½Ó°ÑÇëÇó·¢Ë͸ø´úÀíÀ´×ª·¢µÄ¡£»ùÓÚiptablesÍøÂçÀ¹½ØµÄ·½Ê½£¬ÀíÂÛÉÏ»áÓÐÒ»¶¨µÄÐÔÄÜËðºÄ£¬µ«ËüµÄÓŵãÊÇ´ÓÍøÂç²ãʵÏÖµ÷ÓÃÀ¹½Ø£¬ÄÜ×öµ½ÍêÈ«µÄÒµÎñÎÞ¸ÐÖª£¬ËùÒÔÊʺÏÔÆÔÉúÓ¦Ó᣶øÖ±½Ó°ÑÇëÇó·¢Ë͸ø´úÀíµÄ·½Ê½£¬ÒªÇó´úÀí²ã¼ÓÈëÒµÎñÂß¼£¬²ÅÄܰÑÇëÇóת·¢¸ø¶ÔÓ¦µÄ·þÎñÌṩÕß¼àÌýµÄ¶Ë¿Ú¡£
2.Control Plane
¼ÈÈ»SideCarÄÜʵÏÖ·þÎñÖ®¼äµÄµ÷ÓÃÀ¹½Ø¹¦ÄÜ£¬ÄÇô·þÎñÖ®¼äµÄËùÓÐÁ÷Á¿¶¼¿ÉÒÔͨ¹ýSideCarÀ´×ª·¢£¬ÕâÑùµÄ»°ËùÓеÄSideCar¾Í×é³ÉÁËÒ»¸ö·þÎñÍø¸ñ£¬ÔÙͨ¹ýÒ»¸öͳһµÄµØ·½Óë¸÷¸öSideCar½»»¥£¬¾ÍÄÜ¿ØÖÆÍø¸ñÖÐÁ÷Á¿µÄÔËתÁË£¬Õâ¸öͳһµÄµØ·½¾ÍÔÚSevice MeshÖоͱ»³ÆÎªControl Plane¡£ÈçÏÂͼËùʾ£¬Control PlaneµÄÖ÷Òª×÷ÓðüÀ¨ÒÔϼ¸¸ö·½Ã棺
·þÎñ·¢ÏÖ¡£·þÎñÌṩÕß»áͨ¹ýSideCar×¢²áµ½Control PlaneµÄ×¢²áÖÐÐÄ£¬ÕâÑùµÄ»°·þÎñÏû·ÑÕß°ÑÇëÇó·¢Ë͸øSideCarºó£¬SideCar¾Í»á²éѯControl PlaneµÄ×¢²áÖÐÐÄÀ´»ñÈ¡·þÎñÌṩÕß½ÚµãÁÐ±í¡£
¸ºÔؾùºâ¡£SideCar´ÓControl Plane»ñÈ¡µ½·þÎñÌṩÕß½ÚµãÁбíÐÅÏ¢ºó£¬¾ÍÐèÒª°´ÕÕÒ»¶¨µÄ¸ºÔؾùºâËã·¨´Ó¿ÉÓõĽڵãÁбíÖÐѡȡһ¸ö½Úµã·¢Æðµ÷Ó㬿ÉÒÔͨ¹ýControl Plane¶¯Ì¬ÐÞ¸ÄSideCarÖеĸºÔؾùºâÅäÖá£
ÇëÇó·ÓÉ¡£SideCar´ÓControl Plane»ñÈ¡µÄ·þÎñÌṩÕß½ÚµãÁÐ±í£¬Ò²¿ÉÒÔͨ¹ýControl PlaneÀ´¶¯Ì¬¸Ä±ä£¬±ÈÈçÐèÒª½øÐÐA/B²âÊÔ¡¢»Ò¶È·¢²¼»òÕßÁ÷Á¿Çл»Ê±£¬¾Í¿ÉÒÔ¶¯Ì¬µØ¸Ä±äÇëÇó·ÓÉ¡£
¹ÊÕÏ´¦Àí¡£·þÎñÖ®¼äµÄµ÷ÓÃÈç¹û³öÏÖ¹ÊÕÏ£¬¾ÍÐèÒª¼ÓÒÔ¿ØÖÆ£¬Í¨³£µÄÊÖ¶ÎÓг¬Ê±ÖØÊÔ¡¢È۶ϵȣ¬ÕâЩ¶¼¿ÉÒÔÔÚSideCarת·¢ÇëÇóʱ£¬Í¨¹ýControl Plane¶¯Ì¬ÅäÖá£
°²È«ÈÏÖ¤¡£¿ÉÒÔͨ¹ýControl Plane¿ØÖÆÒ»¸ö·þÎñ¿ÉÒÔ±»Ë·ÃÎÊ£¬ÒÔ¼°·ÃÎÊÄÄЩÐÅÏ¢¡£
¼à¿ØÉϱ¨¡£ËùÓÐSideCarת·¢µÄÇëÇóÐÅÏ¢£¬¶¼»á·¢Ë͵½Control Plane£¬ÔÙÓÉControl Plane·¢Ë͸ø¼à¿ØÏµÍ³£¬±ÈÈçPrometheusµÈ¡£
ÈÕÖ¾¼Ç¼¡£ËùÓÐSideCarת·¢µÄÈÕÖ¾ÐÅÏ¢£¬Ò²»á·¢Ë͵½Control Plane£¬ÔÙÓÉControl Plane·¢Ë͸øÈÕ־ϵͳ£¬±ÈÈçStackdriverµÈ¡£
Åä¶î¿ØÖÆ¡£¿ÉÒÔÔÚControl PlaneÀï¸ø·þÎñµÄÿ¸öµ÷Ó÷½ÅäÖÃ×î´óµ÷ÓôÎÊý£¬ÔÚSideCarת·¢ÇëÇó¸øÄ³¸ö·þÎñʱ£¬»áÉ󼯵÷ÓÃÊÇ·ñ³¬³ö·þÎñ¶ÔÓ¦µÄ´ÎÊýÏÞÖÆ¡£

|