±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚsohu£¬±¾ÎÄ×÷ΪÁ˽â
Istio µÄÈëÃŽéÉܽéÉÜʲôÊÇ Istio£¬Istio Ϊʲô×î½üÕâô»ð£¬ÒÔ¼°
Istio ÄܸøÎÒÃÇ´øÀ´Ê²Ã´ºÃ´¦£¬Ï£Íû¶ÔÄúÄÜÓÐËù°ïÖú¡£ |
|
ʲôÊÇ Istio£¿
¹Ù·½¶Ô Istio µÄ½éÉÜŨËõ³ÉÁËÒ»¾ä»°£º
An open platform to connect, secure, control and
observe services.
·Òë¹ýÀ´£¬¾ÍÊÇ¡±Á¬½Ó¡¢°²È«¼Ó¹Ì¡¢¿ØÖƺ͹۲ì·þÎñµÄ¿ª·Åƽ̨¡°¡£¿ª·Åƽ̨¾ÍÊÇÖ¸Ëü±¾ÉíÊÇ¿ªÔ´µÄ£¬·þÎñ¶ÔÓ¦µÄÊÇ΢·þÎñ£¬Ò²¿ÉÒÔ´ÖÂÔµØÀí½âΪµ¥¸öÓ¦Óá£

ÖмäµÄËĸö¶¯´Ê¾ÍÊÇ Istio µÄÖ÷Òª¹¦ÄÜ£¬¹Ù·½Ò²¸÷ÓÐÒ»¾ä»°µÄ˵Ã÷¡£ÕâÀïÔÙ²ûÊÍһϣº
Á¬½Ó£¨Connect£©£ºÖÇÄÜ¿ØÖÆ·þÎñÖ®¼äµÄµ÷ÓÃÁ÷Á¿£¬Äܹ»ÊµÏÖ»Ò¶ÈÉý¼¶¡¢AB ²âÊԺͺìºÚ²¿ÊðµÈ¹¦ÄÜ
°²È«¼Ó¹Ì£¨Secure£©£º×Ô¶¯Îª·þÎñÖ®¼äµÄµ÷ÓÃÌṩÈÏÖ¤¡¢ÊÚȨºÍ¼ÓÃÜ¡£
¿ØÖÆ£¨Control£©£ºÓ¦ÓÃÓû§¶¨ÒåµÄ policy£¬±£Ö¤×ÊÔ´ÔÚÏû·ÑÕßÖй«Æ½·ÖÅä¡£
¹Û²ì£¨Observe£©£º²é¿´·þÎñÔËÐÐÆÚ¼äµÄ¸÷ÖÖÊý¾Ý£¬±ÈÈçÈÕÖ¾¡¢¼à¿ØºÍ tracing£¬Á˽â·þÎñµÄÔËÐÐÇé¿ö¡£
ËäÈ»ÌýÆðÀ´·Ç³£¸ß¼¶£¬¹¦Äܷdz£Ç¿´ó£¬µ«ÊÇÒ»¹ÉÄÔ³öÏÖÕâô¶àÃû´Ê£¬»¹¶¼ÊǷdz£ÐéµÄ¸ÅÄ˵Á˸úû˵һÑù¡£ÒªÏëÀí½âÉÏÃæÕ⼸¾ä»°µÄº¬Ò壬ÎÒÃÇ»¹ÊÇ´Óͷ˵Æð£¬ÏÈÁÄÁÄ
Service Mesh¡£
NOTE£ºÆäʵ Istio µÄÔ´Í·ÊÇ΢·þÎñ£¬µ«ÕâÓÖÊÇÒ»¸ö±È½Ï´óµÄ»°Ì⣬Ŀǰ¿ÉÒԲο¼ÍøÂçÉϸ÷ÖÖÎÄÕ¡£Èç¹ûÓлú»á£¬ÎÒÃÇÔÙÀ´ÁÄÁÄ΢·þÎñ¡£
ʲôÊÇ Service Mesh
Ò»°ã½éÉÜ Service Mesh µÄÎÄÕ¶¼»á´ÓÍøÂç²ãµÄÓÖÒ»¸ö³éÏó˵Æð£¬°Ñ Service Mesh
¿´×ö½¨Á¢ÔÚ TCP ²ãÖ®ÉϵÄ΢·þÎñ²ã¡£ÎÒÕâ´Î»»¸ö˼·£¬´Ó Service Mesh µÄ¼¼Êõ¸ù»ù¡ª¡ªÍøÂç´úÀíÀ´·ÖÎö¡£
˵ÆðÍøÂç´úÀí£¬ÎÒÃÇ»áÏëµ½·Ç½£¬Èç¹û¶ÔÈí¼þ¼Ü¹¹±È½ÏÊìϤµÄ»áÏëµ½ Nginx µÈ·´Ïò´úÀíÈí¼þ¡£
ÆäÊµÍøÂç´úÀíµÄ·¶Î§±È½Ï¹ã£¬¿ÉÒԿ϶¨µÄ˵£¬ÓÐÍøÂç·ÃÎʵĵط½¾Í»áÓдúÀíµÄ´æÔÚ¡£
Wikipedia ¶Ô´úÀíµÄ¶¨ÒåÈçÏ£º
In computer networks, a proxy server is a server
(a computer system or an application) that acts as
an intermediary for requests from clients seeking
resources from other servers.
NOTE£º´úÀí¿ÉÒÔÊÇǶÌ׵ģ¬Ò²¾ÍÊÇ˵ͨÐÅË«·½ A¡¢B Öмä¿ÉÒÔ¶à¶à²ã´úÀí£¬¶øÕâЩ´úÀíµÄ´æÔÚÓпÉÄܶÔ
A¡¢B ÊÇ͸Ã÷µÄ¡£

¼òµ¥À´Ëµ£¬ÍøÂç´úÀí¿ÉÒÔ¼òµ¥Àà±È³ÉÏÖʵÉú»îÖеÄÖн飬±¾À´ÐèҪͨÐŵÄË«·½ÒòΪ¸÷ÖÖÔÒòÔÚÖмäÔÙ¼ÓÉÏÒ»µÀ¹Ø¿¨¡£±¾À´Ë«·½¾ÍÄÜÍê³ÉµÄͨÐÅ£¬ÎªºÎ·ÇÒª¶à´ËÒ»¾ÙÄØ£¿
ÄÇÊÇÒòΪ´úÀí¿ÉÒÔΪÕû¸öͨÐÅ´øÀ´¸ü¶àµÄ¹¦ÄÜ£¬±ÈÈ磺
À¹½Ø£º´úÀí¿ÉÒÔÑ¡ÔñÐÔÀ¹½Ø´«ÊäµÄÍøÂçÁ÷Á¿£¬±ÈÈçһЩ¹«Ë¾ÏÞÖÆÔ±¹¤ÔÚÉϰàµÄʱºò²»ÄÜ·ÃÎÊijЩÓÎÏ·»òÕßµçÉÌÍøÕ¾£¬ÔÙ±ÈÈç°ÑÎÒÃǺÍÊÀ½ç¸ôÀ뿪À´µÄ
GFW£¬»¹ÓÐÔÚÊý¾ÝÖÐÐÄÖоܾø¶ñÒâ·ÃÎʵÄÍø¹Ø¡£
ͳ¼Æ£º¼ÈÈ»ËùÓеÄÁ÷Á¿¶¼¾¹ý´úÀí£¬ÄÇô´úÀíÒ²¿ÉÒÔÓÃÀ´Í³¼ÆÍøÂçÖеÄÊý¾ÝÐÅÏ¢£¬±ÈÈçÁ˽âÄÄЩÈËÔÚ·ÃÎÊÄÄÐ©ÍøÕ¾£¬Í¨ÐŵÄÓ¦´ðÑӳٵȡ£
»º´æ£ºÈç¹ûͨÐÅË«·½±È½Ï¡±Ô¶¡°£¬·ÃÎʱȽÏÂý£¬ÄÇô´úÀí¿ÉÒÔ°Ñ×î½ü·ÃÎʵÄÊý¾Ý»º´æÔÚ±¾µØ£¬ºóÃæµÄ·ÃÎʲ»Ó÷ÃÎʺó¶ËÀ´×öµ½¼ÓËÙ¡£CDN
¾ÍÊÇÕâ¸ö¹¦ÄܵĵäÐͳ¡¾°¡£
·Ö·¢£ºÈç¹ûij¸öͨÐÅ·½Óжà¸ö·þÎñÆ÷ºó¶Ë£¬´úÀí¿ÉÒÔ¸ù¾ÝijЩ¹æÔòÀ´Ñ¡ÔñÈçºÎ°ÑÁ÷Á¿·¢Ë͸ø¶à¸ö·þÎñÆ÷£¬Ò²¾ÍÊÇÎÒÃdz£ËµµÄ¸ºÔؾùºâ¹¦ÄÜ£¬±ÈÈçÖøÃûµÄ
Nginx Èí¼þ¡£
Ìø°å£ºÈç¹û A¡¢B Ë«·½ÒòΪijЩÔÒò²»ÄÜÖ±½Ó·ÃÎÊ£¬¶ø´úÀí¿ÉÒÔºÍË«·½Í¨ÐÅ£¬ÄÇôͨ¹ý´úÀí£¬Ë«·½¿ÉÒÔÈÆ¹ýÔÀ´µÄÏÞÖÆ½øÐÐͨÐÅ¡£ÕâÓ¦¸ÃÊǹã´óÖйúÍøÃñ±È½ÏÊìϤµÄ³¡¾°¡£
×¢È룺¼ÈÈ»´úÀí¿ÉÒÔ¿´µ½Á÷Á¿£¬ÄÇôËüÒ²¿ÉÒÔÐÞ¸ÄÍøÂçÁ÷Á¿£¬¿ÉÒÔ×Ô¶¯ÔÚÊÕµ½µÄÁ÷Á¿ÖÐÌí¼ÓһЩÊý¾Ý£¬±ÈÈçÓÐЩ¿í´øÌṩÉ̵ĵ¯´°¹ã¸æ¡£
¡¡
²»ÊÇÒª½² Service Mesh Âð£¿ÎªÊ²Ã´³¶ÁËÒ»¶Ñ´úÀíµÄÊÂÇ飿ÒòΪ Service Mesh ¿ÉÒÔ¿´×öÊÇ´«Í³´úÀíµÄÉý¼¶°æ£¬ÓÃÀ´½â¾öÏÖÔÚ΢·þÎñ¿ò¼ÜÖгöÏÖµÄÎÊÌ⣬¿ÉÒÔ°Ñ
Service Mesh ¿´×öÊÇ·Ö²¼Ê½µÄ΢·þÎñ´úÀí¡£
ÔÚ´«Í³Ä£Ê½Ï£¬´úÀíÒ»°ãÊǼ¯ÖÐʽµÄµ¥¶ÀµÄ·þÎñÆ÷£¬ËùÓеÄÇëÇó¶¼ÒªÏÈͨ¹ý´úÀí£¬È»ºóÔÙÁ÷Èëת·¢µ½Êµ¼ÊµÄºó¶Ë¡£
¶øÔÚ Service Mesh ÖУ¬´úÀí±ä³ÉÁË·Ö²¼Ê½µÄ£¬Ëü³£×¤ÔÚÁËÓ¦ÓõÄÉí±ß£¨×î³£¼ûµÄ¾ÍÊÇ Kubernetes
Sidecar ģʽ£¬Ã¿Ò»¸öÓ¦ÓÃµÄ Pod Öж¼ÔËÐÐ×ÅÒ»¸ö´úÀí£¬¸ºÔðÁ÷Á¿Ïà¹ØµÄÊÂÇ飩¡£
ÕâÑùµÄ»°£¬Ó¦ÓÃËùÓеÄÁ÷Á¿¶¼±»´úÀí½Ó¹Ü£¬ÄÇôÕâ¸ö´úÀí¾ÍÄÜ×öµ½ÉÏÃæÌáµ½µÄËùÓпÉÄܵÄÊÂÇ飬´Ó¶ø´øÀ´ÎÞÏÞµÄÏëÏóÁ¦¡£

´ËÍ⣬ÔÀ´µÄ´úÀí¶¼ÊÇ»ùÓÚÍøÂçÁ÷Á¿µÄ£¬Ò»°ã¶¼Êǹ¤×÷ÔÚ IP »òÕß TCP ²ã£¬ºÜÉÙ¹ØÐľßÌåµÄÓ¦ÓÃÂß¼¡£
µ«ÊÇ Service Mesh ÖУ¬´úÀí»áÖªµÀÕû¸ö¼¯ÈºµÄËùÓÐÓ¦ÓÃÐÅÏ¢£¬²¢ÇÒ¶îÍâÌí¼ÓÁËÈȸüС¢×¢Èë·þÎñ·¢ÏÖ¡¢½µ¼¶ÈÛ¶Ï¡¢ÈÏÖ¤ÊÚȨ¡¢³¬Ê±ÖØÊÔ¡¢ÈÕÖ¾¼à¿ØµÈ¹¦ÄÜ£¬ÈÃÕâЩͨÓõŦÄܲ»±ØÃ¿¸öÓ¦Óö¼×Ô¼ºÊµÏÖ£¬·ÅÔÚ´úÀíÖм´¿É¡£
»»¾ä»°Ëµ£¬Service Mesh ÖеĴúÀí¶Ô΢·þÎñÖеÄÓ¦ÓÃ×öÁ˶¨ÖÆ»¯µÄ¸Ä½ø£¡

¾ÍÕâÑù£¬½è×Å΢·þÎñºÍÈÝÆ÷»¯µÄ¶«·ç£¬´«Í³µÄ´úÀíÒ¡ÉíÒ»±ä£¬³ÉÁËÈç½ñÖËÊÖ¿ÉÈ鵀 Service Mesh¡£
Ó¦ÓÃ΢·þÎñÖ®ºó£¬Ã¿¸öµ¥¶ÀµÄ΢·þÎñ¶¼»áÓкܶั±¾£¬¶øÇÒ¿ÉÄÜ»áÓжà¸ö°æ±¾£¬Õâô¶à΢·þÎñÖ®¼äµÄÏ໥µ÷Óú͹ÜÀí·Ç³£¸´ÔÓ£¬µ«ÊÇÓÐÁË
Service Mesh£¬ÎÒÃÇ¿ÉÒÔ°ÑÕâ¿éÄÚÈÝͳһÔÚ´úÀí²ã¡£

ÓÐÁË¿´ÆðÀ´ËÄͨ°Ë´ïµÄ·Ö²¼Ê½´úÀí£¬ÎÒÃÇ»¹ÐèÒª¶ÔÕâЩ´úÀí½øÐÐͳһµÄ¹ÜÀí¡£
ÊÖ¶¯¸üÐÂÿ¸ö´úÀíµÄÅäÖ㬶ԴúÀí½øÐÐÉý¼¶»òÕßά»¤ÊǸö²»¿É³ÖÐøµÄÊÂÇ飬ÔÚÇ°ÃæµÄ»ù´¡ÉÏ£¬ÔÚ¼ÓÉÏÒ»¸ö¿ØÖÆÖÐÐÄ£¬Ò»¸öÍêÕûµÄ
Service Mesh ¾Í³ÉÁË¡£
¹ÜÀíÔ±Ö»ÐèÒª¸ù¾Ý¿ØÖÆÖÐÐÄµÄ API À´ÅäÖÃÕû¸ö¼¯ÈºµÄÓ¦ÓÃÁ÷Á¿¡¢°²È«¹æÔò¼´¿É£¬´úÀí»á×Ô¶¯ºÍ¿ØÖÆÖÐÐÄ´ò½»µÀ¸ù¾ÝÓû§µÄÆÚÍû¸Ä±ä×Ô¼ºµÄÐÐΪ¡£

NOTE£ºËùÒÔÄãÒ²¿ÉÒÔÀí½â Service Mesh ÖеĴúÀí»áÇÀÁË Nginx µÄÉúÒ⣬ÕâÒ²ÊÇΪÁË
Nginx Ò²Òª¿ªÊ¼×ö NginMesh µÄÔÒò¡£
ÔÙÀ´¿´ Istio
Á˽âÁË Service Mesh µÄ¸ÅÄÎÒÃÇÔÙÀ´¿´ Istio £¬Ò²Ðí¾Í»áÇå³þºÜ¶à¡£Ê×ÏÈÀ´¿´ Istio
¹Ù·½¸ø³öµÄ¼Ü¹¹Í¼£º

¿ÉÒÔ¿´µ½£¬Istio ¾ÍÊÇÎÒÃÇÉÏÊöÌáµ½µÄ Service Mesh ¼Ü¹¹µÄÒ»ÖÖʵÏÖ£¬·þÎñÖ®¼äµÄͨÐÅ£¨±ÈÈçÕâÀïµÄ
Service A ·ÃÎÊ Service B£©»áͨ¹ý´úÀí£¨Ä¬ÈÏÊÇ Envoy£©À´½øÐС£
¶øÇÒÖмäµÄÍøÂçÐÒéÖ§³Ö HTTP/1.1£¬HTTP/2£¬gRPC »òÕß TCP£¬¿ÉÒÔ˵¸²¸ÇÁËÖ÷Á÷µÄͨÐÅÐÒé¡£
¿ØÖÆÖÐÐÄ×öÁ˽øÒ»²½µÄϸ·Ö£¬·Ö³ÉÁË Pilot¡¢Mixer ºÍ Citadel£¬ËüÃǵĸ÷×Ô¹¦ÄÜÈçÏ£º
Pilot£ºÎª Envoy ÌṩÁË·þÎñ·¢ÏÖ£¬Á÷Á¿¹ÜÀíºÍÖÇÄÜ·ÓÉ£¨AB ²âÊÔ¡¢½ð˿ȸ·¢²¼µÈ£©£¬ÒÔ¼°´íÎó´¦Àí£¨³¬Ê±¡¢ÖØÊÔ¡¢ÈÛ¶Ï£©¹¦ÄÜ¡£
Óû§Í¨¹ý Pilot µÄ API ¹ÜÀíÍøÂçÏà¹ØµÄ×ÊÔ´¶ÔÏó£¬Pilot »á¸ù¾ÝÓû§µÄÅäÖúͷþÎñµÄÐÅÏ¢°ÑÍøÂçÁ÷Á¿¹ÜÀí±ä³É
Envoy ÄÜʶ±ðµÄ¸ñʽ·Ö·¢µ½¸÷¸ö Sidecar ´úÀíÖС£
Mixer£ºÎªÕû¸ö¼¯ÈºÖ´ÐзÃÎÊ¿ØÖÆ£¨ÄÄЩÓû§¿ÉÒÔ·ÃÎÊÄÄЩ·þÎñ£©ºÍ Policy ¹ÜÀí£¨Rate Limit£¬Quota
µÈ£©£¬²¢ÇÒÊÕ¼¯´úÀí¹Û²ìµ½µÄ·þÎñÖ®¼äµÄÁ÷Á¿Í³¼ÆÊý¾Ý¡£
Citadel£ºÎª·þÎñÖ®¼äÌṩÈÏÖ¤ºÍÖ¤Êé¹ÜÀí£¬¿ÉÒÔÈ÷þÎñ×Ô¶¯Éý¼¶³É TLS ÐÒé¡£
´úÀí»áºÍ¿ØÖÆÖÐÐÄͨÐÅ£¬Ò»·½Ãæ¿ÉÒÔ»ñÈ¡ÐèÒªµÄ·þÎñÖ®¼äµÄÐÅÏ¢£¬ÁíÒ»·½ÃæÒ²¿ÉÒԻ㱨·þÎñµ÷ÓÃµÄ Metrics
Êý¾Ý¡£
ÖªµÀÁË Istio µÄºËÐļܹ¹£¬ÔÙÀ´¿´¿´ËüµÄ¹¦ÄÜÃèÊö¾Í·Ç³£ÈÝÒ×Àí½âÁË£º
Á¬½Ó£º¿ØÖÆÖÐÐÄ¿ÉÒÔ´Ó¼¯ÈºÖлñÈ¡ËùÓзþÎñµÄÐÅÏ¢£¬²¢·Ö·¢¸ø´úÀí£¬ÕâÑù´úÀí¾ÍÄܸù¾ÝÓû§µÄÆÚÍûÀ´Íê³É·þÎñÖ®¼äµÄͨÐÅ£¨×Ô¶¯µØ·þÎñ·¢ÏÖ¡¢¸ºÔؾùºâ¡¢Á÷Á¿¿ØÖƵȣ©¡£
°²È«¼Ó¹Ì£ºÒòΪËùÓеÄÁ÷Á¿¶¼ÊÇͨ¹ý´úÀíµÄ£¬ÄÇô´úÀí½ÓÊÕµ½²»¼ÓÃܵÄÍøÂçÁ÷Á¿Ö®ºó£¬¿ÉÒÔ×Ô¶¯×öÒ»´Î·â×°£¬°ÑËüÉý¼¶³É°²È«µÄ¼ÓÃÜÁ÷Á¿¡£
¿ØÖÆ£ºÓû§¿ÉÒÔÅäÖø÷ÖÖ¹æÔò£¨±ÈÈç RBAC ÊÚȨ¡¢°×Ãûµ¥¡¢Rate Limit »òÕß Quota µÈ£©£¬µ±´úÀí·¢ÏÖ·þÎñÖ®¼äµÄ·ÃÎʲ»·ûºÏÕâЩ¹æÔò£¬¾ÍÖ±½Ó¾Ü¾øµô¡£
¹Û²ì£ºËùÓеÄÁ÷Á¿¶¼¾¹ý´úÀí£¬Òò´Ë´úÀí¶ÔÕû¸ö¼¯ÈºµÄ·ÃÎÊÇé¿öÖªµÀµÃÒ»Çå¶þ³þ£¬Ëü°ÑÕâЩÊý¾ÝÉϱ¨µ½¿ØÖÆÖÐÐÄ£¬ÄÇô¹ÜÀíÔ±¾ÍÄܹ۲쵽Õû¸ö¼¯ÈºµÄÁ÷Á¿Çé¿öÁË
Istio ½â¾öʲôÎÊÌâ
ËäÈ»¿´ÆðÀ´·Ç³£ìſᣬ¹¦ÄÜÒ²ºÜÇ¿´ó£¬µ«ÊÇÒ»¸ö¼Ü¹¹ºÍ²úÆ·³öÀ´¶¼ÊÇÒª½â¾ö¾ßÌåµÄÎÊÌâ¡£ËùÒÔÕⲿ·ÖÎÒÃÇÀ´¿´¿´Î¢·þÎñ¼Ü¹¹ÖеÄÄÑÌâÒÔ¼°
Istio ¸ø³öµÄ´ð°¸¡£
Ê×ÏÈ£¬ÔÀ´µÄµ¥¸öÓ¦Óòð·Ö³ÉÁËÐí¶à·ÖÉ¢µÄ΢·þÎñ£¬ËüÃÇÖ®¼äÏ໥µ÷ÓòÅÄÜÍê³ÉÒ»¸öÈÎÎñ£¬¶øÒ»µ©Ä³¸ö¹ý³Ì³ö´í£¨×é¼þÔ½¶à£¬³ö´íµÄ¸ÅÂÊÒ²¾ÍÔ½´ó£©£¬¾Í·Ç³£ÄÑÒÔÅŲ顣
Óû§ÇëÇó³öÏÖÎÊÌâÎÞÍâºõÁ½¸öÎÊÌ⣺´íÎóºÍÏìÓ¦Âý¡£Èç¹ûÇëÇó´íÎó£¬ÄÇôÎÒÃÇÐèÒªÖªµÀÄǸö²½Öè³ö´íÁË£¬Õâô¶àµÄ΢·þÎñÖ®¼äµÄµ÷ÓÃÔõôȷ¶¨ÄĸöÓе÷Óóɹ¦£¿ÄĸöûÓе÷Óóɹ¦ÄØ£¿
Èç¹ûÊÇÇëÇóÏìӦ̫Âý£¬ÎÒÃǾÍÐèÒªÖªµÀµ½µ×ÄÄЩµØ·½±È½ÏÂý£¿Õû¸öÁ´Â·µÄµ÷Óø÷½×¶ÎºÄʱÊǶàÉÙ£¿ÄÄЩµ÷ÓÃÊDz¢·¢Ö´Ðеģ¬ÄÄЩÊÇ´®Ðеģ¿ÕâЩÎÊÌâÐèÒªÎÒÃÇÄܷdz£Çå³þÕû¸ö¼¯ÈºµÄµ÷ÓÃÒÔ¼°Á÷Á¿Çé¿ö¡£

´ËÍ⣬΢·þÎñ²ð·Ö³ÉÕâô¶à×é¼þ£¬Èç¹ûµ¥¸ö×é¼þ³ö´íµÄ¸ÅÂʲ»±ä£¬ÄÇôÕûÌåÓеط½³ö´íµÄ¸ÅÂʾͻáÔö´ó¡£·þÎñµ÷ÓõÄʱºòÈç¹ûûÓдíÎó´¦Àí»úÖÆ£¬ÄÇô»áµ¼Ö·dz£¶àµÄÎÊÌâ¡£
±ÈÈçÈç¹ûÓ¦ÓÃûÓÐÅäÖó¬Ê±²ÎÊý£¬»òÕßÅäÖõij¬Ê±²ÎÊý²»¶Ô£¬Ôò»áµ¼ÖÂÇëÇóµÄµ÷ÓÃÁ´³¬Ê±µþ¼Ó£¬¶ÔÓÚÓû§À´Ëµ¾ÍÊÇÇëÇó¿¨×¡ÁË¡£
Èç¹ûûÓÐÖØÊÔ»úÖÆ£¬ÄÇôÒòΪ¸÷ÖÖÔÒòµ¼ÖµÄż·¢¹ÊÕÏÒ²»áµ¼ÖÂÖ±½Ó·µ»Ø´íÎó¸øÓû§£¬Ôì³É²»ºÃµÄÓû§ÌåÑé¡£
´ËÍ⣬Èç¹ûijЩ½ÚµãÒì³££¨±ÈÈçÍøÂçÖжϣ¬»òÕ߸ºÔغܸߣ©£¬Ò²»áµ¼ÖÂÓ¦ÓÃÕûÌåµÄÏìӦʱ¼ä±ä³¤£¬¼¯Èº·þÎñÓ¦¸ÃÄÜ×Ô¶¯±Ü¿ªÕâЩ½ÚµãÉϵÄÓ¦Óá£
×îºó£¬Ó¦ÓÃÒ²ÊÇ»á³öÏÖ Bug µÄ£¬¸÷ÖÖ Bug »áµ¼ÖÂijЩӦÓò»¿É·ÃÎÊ¡£ÕâЩÎÊÌâÐèҪÿ¸öÓ¦ÓÃÄܼ°Ê±·¢ÏÖÎÊÌ⣬²¢×öºÃ¶ÔÓ¦µÄ´¦Àí´ëÊ©¡£

Ó¦ÓÃÊýÁ¿µÄÔö¶à£¬¶ÔÓÚÈÕ³£µÄÓ¦Ó÷¢²¼À´ËµÒ²ÊǸöÄÑÌâ¡£Ó¦Óõķ¢²¼ÐèÒª·Ç³£½÷É÷£¬Èç¹ûÓ¦Óö¼ÊÇÒ»´ÎÐÔÉý¼¶µÄ£¬³öÏÖ´íÎó»áµ¼ÖÂÕû¸öÏßÉÏÓ¦Óò»¿ÉÓã¬Ó°Ï췶Χ̫´ó¡£
¶øÇÒ£¬ºÜ¶àÇé¿öÎÒÃÇÐèҪͬʱ´æÔÚ²»Í¬µÄ°æ±¾£¬Ê¹Óà AB ²âÊÔÑéÖ¤Äĸö°æ±¾¸üºÃ¡£
Èç¹û°æ±¾Éý¼¶¸Ä¶¯ÁË API£¬²¢ÇÒ»¥ÏàÓÐÒÀÀµ£¬ÄÇôÎÒÃÇ»¹Ï£ÍûÄÜ×Ô¶¯µØ¿ØÖÆ·¢²¼ÆÚ¼ä²»Í¬°æ±¾·ÃÎʲ»Í¬µÄµØÖ·¡£ÕâЩÎÊÌâ¶¼ÐèÒªÖÇÄܵÄÁ÷Á¿¿ØÖÆ»úÖÆ¡£

ΪÁ˱£Ö¤Õû¸öϵͳµÄ°²È«ÐÔ£¬Ã¿¸öÓ¦Óö¼ÐèҪʵÏÖÒ»Ì×ÏàËÆµÄÈÏÖ¤¡¢ÊÚȨ¡¢HTTPS¡¢ÏÞÁ÷µÈ¹¦ÄÜ¡£
Ò»·½Ãæ´ó¶àÊýµÄ³ÌÐòÔ±¶¼¶Ô°²È«Ïà¹ØµÄ¹¦Äܲ¢²»Éó¤»òÕ߸ÐÐËȤ£¬ÁíÍâÕâЩÍêÈ«ÏàËÆµÄÄÚÈÝÿ´Î¶¼ÒªÊµÏÖÒ»±éÊǷdz£ÈßÓàµÄ¡£Õâ¸öÎÊÌâÐèÒªÒ»¸öÄÜ×Ô¶¯¹ÜÀí°²È«Ïà¹ØÄÚÈݵÄϵͳ¡£

ÉÏÃæÌáµ½µÄÕâЩÎÊÌâÊDz»ÊǷdz£ÊìϤ£¿ËüÃǾÍÊÇ Istio ³¢ÊÔ½â¾öµÄÎÊÌ⣬Èç¹û°ÑÉÏÃæµÄÎÊÌâºÍ Istio
ÌṩµÄ¹¦ÄÜ×ö¸öÓ³É䣬Äã»á·¢ÏÖËüÃǷdz£Æ¥Å䣬±Ï¾¹ Istio ¾ÍÊÇΪÁ˽â¾ö΢·þÎñµÄÕâЩÎÊÌâ²Å³öÏֵġ£
ÓÃʲô×ËÊÆ½ÓÈë Istio£¿
ËäÈ» Istio Äܽâ¾öÄÇô¶àµÄÎÊÌ⣬µ«ÊÇÒýÈë Istio ²¢²»ÊÇûÓдú¼ÛµÄ¡£×î´óµÄÎÊÌâÊÇ Istio
µÄ¸´ÔÓÐÔ£¬Ç¿´óµÄ¹¦ÄÜÒ²Òâζ×Å Istio µÄ¸ÅÄîºÍ×é¼þ·Ç³£¶à£¬ÒªÏëÀí½âºÍÕÆÎÕ Istio £¬²¢³É¹¦ÔÚÉú²ú»·¾³Öв¿ÊðÐèÒª·Ç³£ÏêϸµÄ¹æ»®¡£
Ò»°ãÇé¿öÏ£¬¼¯Èº¹ÜÀíÍŶÓÐèÒª¶Ô Kubernetes ·Ç³£ÊìϤ£¬Á˽ⳣÓõÄʹÓÃģʽ£¬È»ºó²ÉÓÃÖð²½ÑݽøµÄ·½Ê½°Ñ
Istio µÄ¹¦ÄÜ·ÖÅúÕÆ¿ØÏÂÀ´¡£
µÚÒ»²½£¬×ÔÈ»ÊÇÔÚ²âÊÔ»·¾³´î½¨Ò»Ì× Istio µÄ¼¯Èº£¬Àí½âËùÓеĺËÐĸÅÄîºÍ×é¼þ¡£
Á˽â Istio ÌṩµÄ½Ó¿ÚºÍ×ÊÔ´£¬ÖªµÀËüÃǵÄÓô¦£¬Ë¼¿¼ÈçºÎÓ¦Óõ½×Ô¼ºµÄ³¡¾°ÖУ¬È»ºóÊÇÊìϤ Istio
µÄÔ´´úÂ룬¸ú½øÉçÇøµÄ Issues£¬Á˽âĿǰ»¹´æÔÚµÄ Issues ºÍ Bug£¬Ë¼¿¼ÈçºÎ¹æ±Ü»òÕßÐÞ¸´¡£
ÕâÒ»²½ÊÇ»ù´¡£¬ÐèÒª»ýÀÛµ½ Istio °²×°²¿Ê𡢺ËÐĸÅÄî¡¢¹¦ÄܺÍȱÏÝÏà¹ØµÄ֪ʶ£¬ÎªºóÃæ×öºÃ×¼±¸¡£
µÚ¶þ²½£¬¿ÉÒÔ¿¼ÂǽÓÈë Istio µÄ¹Û²ìÐÔ¹¦ÄÜ£¬°üÀ¨ Logging¡¢Tracing¡¢Metrics
Êý¾Ý¡£
Ó¦Óò¿Êðµ½¼¯ÈºÖУ¬Ñ¡ÔñÐԵأ¨Ò»°ãÊÇÁ÷Á¿±È½ÏС£¬Ó°Ï췶Χ²»´óµÄÓ¦Óã©ÎªÒ»Ð©Ó¦ÓÿªÆô Istio ×Ô¶¯×¢È빦ÄÜ£¬½Ó¹ÜÓ¦ÓõÄÁ÷Á¿£¬²¢°²×°
Prometheus ºÍ Zipkin µÈ¼à¿Ø×é¼þ£¬ÊÕ¼¯ÏµÍ³ËùÓÐµÄ¼à¿ØÊý¾Ý¡£
ÕâÒ»²½¿ÉÒÔÊÔ̽ÐÔµØÁ˽â Istio ¶ÔÓ¦ÓõÄÐÔÄÜÓ°Ï죬ͬʱ½¨Á¢·þÎñµÄÐÔÄܲâÊÔ»ù×¼£¬·¢ÏÖ·þÎñµÄÐÔÄÜÆ¿¾±£¬°ïÖú¿ìËÙ¶¨Î»Ó¦ÓÿÉÄܳöÏÖµÄÎÊÌâ¡£
´Ëʱ£¬ÕâЩ¹¦ÄÜ¿ÉÒÔÊǶÔÓ¦Óÿª·¢Õß͸Ã÷µÄ£¬Ö»ÐèÒª¼¯Èº¹ÜÀíÔ±¸ÐÖª£¬ÕâÑù¿ÉÒÔ¼õÉÙ¿ÉÄÜ´øÀ´µÄ·çÏÕ¡£
µÚÈý²½£¬ÎªÓ¦ÓÃÅäÖà Time Out ³¬Ê±²ÎÊý¡¢×Ô¶¯ÖØÊÔ¡¢È۶Ϻͽµ¼¶µÈ¹¦ÄÜ£¬Ôö¼Ó·þÎñµÄÈÝ´íÐÔ¡£
ÕâÑù¿ÉÒÔ±ÜÃâijЩӦÓôíÎó½øÐÐÕâЩÅäÖõ¼ÖÂÎÊÌâµÄ³öÏÖ£¬ÕâÒ»²½Íê³ÉºóÐèҪ֪ͨËùÓеÄÓ¦Óÿª·¢Õßɾ³ýµôÔÚÓ¦ÓôúÂëÖжÔÓ¦µÄ´¦ÀíÂß¼¡£ÕâÒ»²½ÐèÒª¿ª·¢Õߺͼ¯Èº¹ÜÀíԱͬʱ²ÎÓë¡£
µÚËIJ½£¬ºÍ Ingress¡¢Helm¡¢Ó¦ÓÃÉϼܵÈÏà¹Ø×é¼þºÍÁ÷³Ì¶Ô½Ó£¬Ê¹Óà Istio ½Ó¹ÜÓ¦ÓõÄÉý¼¶·¢²¼Á÷³Ì¡£
Èÿª·¢Õß¿ÉÒÔÅäÖÃÓ¦ÓûҶȷ¢²¼Éý¼¶µÄ²ßÂÔ£¬Ö§³ÖÓ¦ÓõÄÀ¶ÂÌ·¢²¼¡¢½ð˿ȸ·¢²¼ÒÔ¼° AB ²âÊÔ¡£
µÚÎå²½£¬½ÓÈ밲ȫ¹¦ÄÜ¡£ÅäÖÃÓ¦ÓÃµÄ TLS »¥ÐÅ£¬Ìí¼Ó RBAC ÊÚȨ£¬ÉèÖÃÓ¦ÓõÄÁ÷Á¿ÏÞÖÆ£¬ÌáÉýÕû¸ö¼¯ÈºµÄ°²È«ÐÔ¡£
ÒòΪ°²È«µÄÎÊÌâÅäÖñȽϷ±Ëö£¬¶øÇÒÓÅÏȼ¶Ò»°ã»á±È¹¦ÄÜÐÔÏà¹ØµÄÌØÐÔÒªµÍ£¬ËùÒÔÕâÀï·ÅÔÚÁË×îºó¡£
µ±È»Õâ¸ö²½ÖèÖ»ÊÇÒ»¸ö²Î¿¼£¬Ã¿¸ö¹«Ë¾ÐèÒª¸ù¾Ý×Ô¼ºµÄÇé¿ö¡¢ÈËÁ¦¡¢Ê±¼äºÍ½Ú×àÀ´µ÷Õû£¬ÕÒµ½ÊʺÏ×Ô¼ºµÄ·½°¸¡£
×ܽá
Istio µÄ¼Ü¹¹ÔÚÊý¾ÝÖÐÐĺͼ¯Èº¹ÜÀíÖзdz£³£¼û£¬Ã¿¸ö Agent ·Ö²¼ÔÚ¸÷¸ö½ÚµãÉÏ£¨¿ÉÒÔÊÇ·þÎñÆ÷¡¢ÐéÄâ»ú¡¢Pod¡¢ÈÝÆ÷£©¸ºÔð½ÓÊÕÖ¸Áî²¢Ö´ÐУ¬ÒÔ¼°»ã±¨ÐÅÏ¢¡£
¿ØÖÆÖÐÐĸºÔð»ã¾ÛÕû¸ö¼¯ÈºµÄÐÅÏ¢£¬²¢Ìṩ API ÈÃÓû§¶Ô¼¯Èº½øÐйÜÀí¡£
Kubernetes Ò²ÊÇÀàËÆµÄ¼Ü¹¹£¬SDN£¨Software Defined Network£©
Ò²ÊÇÈç´Ë¡£
ÏàÐÅÒÔºó»áÓиü¶àÀàËÆ¼Ü¹¹µÄ³öÏÖ£¬ÕâÊÇÒòΪÊý¾ÝÖÐÐÄÒª¹ÜÀíµÄ½ÚµãÔ½À´Ô½¶à£¬ÎÒÃÇÐèÒª°ÑÈÎÎñÖ´Ðзֲ¼µ½¸÷½Úµã£¨Agent
¸ºÔðµÄ¹¦ÄÜ£©¡£
ͬʱҲÐèÒª¶ÔÕû¸ö¼¯Èº½øÐйÜÀíºÍ¿ØÖÆ£¨Control Plane µÄ¹¦ÄÜ£©£¬ÍêȫȥÖÐÐÄ»¯µÄ¼Ü¹¹ÊÇÎÞ·¨Âú×ãºóÃæÕâ¸öÒªÇóµÄ¡£
Istio µÄ³öÏÖΪ¸ºÔðµÄ΢·þÎñ¼Ü¹¹¼õÇáÁ˺ܶàµÄ¸ºµ££¬¿ª·¢Õß²»ÓùØÐÄ·þÎñµ÷Óõij¬Ê±¡¢ÖØÊÔ¡¢Rate
Limit µÄʵÏÖ£¬·þÎñÖ®¼äµÄ°²È«¡¢ÊÚȨҲ×Ô¶¯µÃµ½Á˱£Ö¤¡£
¼¯Èº¹ÜÀíÔ±Ò²Äܹ»ºÜ·½±ãµØ·¢²¼Ó¦Óã¨AB ²âÊԺͻҶȷ¢²¼£©£¬²¢ÇÒÄÜÇå³þ¿´µ½Õû¸ö¼¯ÈºµÄÔËÐÐÇé¿ö¡£
µ«ÊÇÕâ²¢²»±íÃ÷ÓÐÁË Istio ¾Í¿ÉÒÔ¸ßÕíÎÞÓÇÁË£¬Istio Ö»ÊǰÑÔÀ´·ÖÉ¢ÔÚÓ¦ÓÃÄÚ²¿µÄ¸´ÔÓÐÔͳһ³éÏó³öÀ´·Åµ½ÁËͳһµÄµØ·½£¬²¢Ã»ÓÐÈÃÔÀ´µÄ¸´ÔÓÏûʧ²»¼û¡£
Òò´ËÎÒÃÇÐèҪά»¤ Istio Õû¸ö¼¯Èº£¬¶ø Istio µÄ¼Ü¹¹±È½Ï¸´ÔÓ£¬ÓÈÆäÊÇËüÒ»°ã»¹ÐèÒª¼ÜÔÚ Kubernetes
Ö®ÉÏ£¬ÕâÁ½¸öϵͳ¶¼±È½Ï¸´ÔÓ£¬¶øÇÒËüÃǵÄÎȶ¨ÐÔºÍÐÔÄÜ»áÓ°Ïìµ½Õû¸ö¼¯Èº¡£
Òò´ËÔÙ²ÉÓà Isito ֮ǰ£¬±ØÐë×öºÃÇå³þµÄ¹æ»®£¬È¨ºâËü´øÀ´µÄºÃ´¦ÊÇ·ñÔ¶´óÓÚ¶îÍâά»¤ËüµÄ»¨·Ñ£¬ÐèÒªÓÐÏà¹ØµÄÈ˲ŶÔÕû¸öÍøÂç¡¢Kubernetes
ºÍ Istio ¶¼±È½ÏÁ˽â²ÅÐС£ |