±à¼ÍƼö: |
±¾ÎÄÖ÷Ҫ̽ÌÖIstioÀ´Ô´¼°ÊµÕ½£¬Istio¿ÉÒÔ¼ò»¯Spring
Cloud×é¼þ£¬ÎªÎ¢·þÎñÔËά¼õÇḺµ£
±¾ÎÄÀ´×ÔÓÚËѺü£¬ÓÉ»ðÁú¹ûÈí¼þç÷ç÷±à¼¡¢ÍƼö |
|
Ò»¡¢IstioµÄÀ´Ô´

Ëæ×Å΢·þÎñ¼Ü¹¹µÄÆÕ¼°£¬Ô½À´Ô½¶àµÄÓ¦ÓÃÒѾ²ð·Ö³ÉÁË΢·þÎñµÄ¼Ü¹¹¡£¶øÎ¢·þÎñ¼Ü¹¹Â䵨µÄÒ»¸öÄѵ㣬¾ÍÊÇÈçºÎÈ÷þÎñºÍ·þÎñÖ®¼ä½øÐÐÎȶ¨µÄͨÐÅ¡£

²¿Êð΢·þÎñÖ®ºó£¬ÈçºÎ×ö·þÎñµÄ¸ºÔؾùºâ¡¢ÈÝ´íÐÔ¡¢·þÎñ¼à¿Ø¡¢ÈÕÖ¾×·×ÙÒÔ¼°È۶ϵȹ¦Äܶ¼ÐèÒª¿¼ÂÇÖÜÈ«¡£

»¹ºÃ£¬ÏÖÔÚÒѾÓкܶ࿪Դ¹¤¾ß°ïÄã×öÕâÑùµÄÊÂÇé¡£ÀýÈ磺
NetflixµÄEurekaʵÏÖ·þÎñ×¢²á£¬ËüµÄÓÅÊÆÔÚÓÚʵÏÖ¿çÊý¾ÝÖÐÐĵķþÎñ×¢²á£»
Ribbon ¨C ¿Í»§¶ËµÄ¸ºÔؾùºâ£»
Hystrix ¨C ΢·þÎñµÄÈÛ¶ÏÆ÷£»
Zipkin ¨C ·Ö²¼Ê½µÄ×·×Ù×é¼þ£»
Prometheus ¨C ¼à¿Ø×é¼þ£»
Grafana ¨C Êý¾Ý¿ÉÊÓ»¯µÄ¹¤¾ß£»

ÓÚÊÇ£¬ÔÚдÍêÎÒµÄ΢·þÎñÖ®ºó£¬ÎÒÒýÈëÁ˸ü¶àµÄ×é¼þ£¬´øÀ´Á˼«´óµÄ²¿Êð¸´ÔÓ¶È£¬Ã¿¸ö×é¼þ¶¼ÐèÒª¸ß¿ÉÓᢸºÔؾùºâ¡¢ÈÛ¶Ï¡¢ÈÕÖ¾ÊÕ¼¯µÈµÈ¡£
ΪÁËÈÃÒµÎñÍŶӷµè±¹éÕæ£¬½«ËùÓо«Á¦¼¯ÖÐÔÚÒµÎñ´úÂë¶ø²»ÊÇÅäºÏ΢·þÎñ×é¼þд´óÁ¿·Ç¹¦ÄÜÐÔÐèÇóµÄ´úÂ룬IstioÓ¦Ô˶øÉú¡£

IstioÊǹȸ衢IBM¡¢LyftµÈ¹«Ë¾¹±Ï׵ĿªÔ´Service Mesh×é¼þ¡£ËüʵÏÖµÄÄ¿±ê¾ÍÊÇÈÃÒµÎñ¿ª·¢²»ÔÙ¹Ø×¢Î¢·þÎñÖ®¼äÈçºÎµ÷ÓᢹÜÀí¡¢¼à¿ØµÈ·Ç¹¦ÄÜÐÔÐèÇ󣬶øÊÇÈÃIstioÀ´´¦ÀíÕâЩÎÊÌâ¡£IstioºÍKubernetesÓÐÌìÈ»µÄÖ§³Ö¡£
IstioÄÜÇáËɽâ¾öÀ¶ÂÌ·¢²¼ºÍ½ð˿ȸ·¢²¼µÄÎÊÌâ¡£
½ð˿ȸ·¢²¼ÓÐʲôÓã¿ËüµÄ×î´óʵ¼ÊÒâÒ壬ÊÇÈÃÔËά²»ÓÃÔÚÒ¹Àï¼Ó°àÉÏÏߣ¬¶øÊÇÄܹ»ÔÚ°×Ì칤×÷ʱ¼ä½øÐÐÉÏÏß¡£ÏÈÉÏÏß1%µÄ½Úµã£¬Èç¹ûʧ°ÜÁË£¬Á¢¿Ì»Ø¹ö¡£ÉÔºó»áÏêϸ½âÊÍIstioÈçºÎÖ§³ÖÀ¶ÂÌ·¢²¼¡¢½ð˿ȸ·¢²¼¡£

IstioÌṩControl Plane£¬È÷þÎñºÍ·þÎñÖ®¼äÄܹ»ÊµÏÖʵʱÇëÇ󣬲¢ÇÒÖ§³ÖÁË×Ô¶¨ÒåµÄ·ÓɹæÔò¡¢ÖØÊÔ»úÖÆ¡¢ÈÛ¶Ï»úÖÆ¡¢ÐÔÄÜ¼à¿ØÒÔ¼°×·×Ù¡£¶øÖ®Ç°ÕâЩÊÂÇé¶¼ÊÇÓɳÌÐòÔ±´¦Àí£¨Spring Cloud×é¼þ£©¡£

ʹÓÃIstioÖ®ºó£¬ÔÙÀ´¿´ÎÒÃǵÄ΢·þÎñ×é¼þ¼Ü¹¹Í¼£¬Äã»á·¢ÏÖ£¬Ö®Ç°µÄAPIÍø¹Ø¡¢·þÎñ×¢²áÖÐÐÄ¡¢¸ºÔؾùºâ¡¢È۶ϵÈ×é¼þ¶¼²»ÐèÒªÁË£¬ÕâЩ¶¼ÓÉIstioÀ´´¦Àí¡£
û´í£¬Istio¾ÍÊÇÒªÀ´È¡´ú²¿ÃÅSpring CloudµÄ¹¦ÄÜ¡£

ËùÒÔÄãµÄ΢·þÎñ»áֻʣÏ·þÎñ±¾ÉíºÍÒ»¸ö´úÀí£¨SideCar£©¡£IstioʹÓÃEnvoy×÷Ϊ´úÀíʵÏÖ·þÎñµÄ¶¯Ì¬·¢ÏÖ¡¢¸ºÔؾùºâ¡¢È۶ϵȵȡ£EnvoyÊÇ»ùÓÚC++¿ª·¢µÄ4/7²ã´úÀí¡£

ÔÚKubernetes¼¯ÈºÀÄã¿ÉÒÔΪÿ¸ö΢·þÎñͨ¹ýÒ»¸öPolicyÎļþÃèÊö´úÀí·þÎñ£¬Istio Pilot»áͳһÊÕ¼¯ËùÓеĴúÀí×¢²áÐÅÏ¢£¬ÓÃÀ´½øÐзþÎñÖ®¼äµÄÇëÇóµ÷¶È¡£IstioµÄµ÷¶È»úÖÆÈçÏ£º
Service Mesh½âÎöËùÓеÄÇëÇ󣬲¢°ÑÕâЩÇëÇó·¢Ë͵½±¾µØµÄ´úÀí£»
¸ºÔؾùºâ»á½«ÇëÇó·Ö·¢µ½Ä³¸ö´úÀíʵÀý£»
´úÀíʵÀý»á½øÐмì²é£¬ÀýÈçACL¡¢QuotaµÈµÈ£»
Èç¹û³É¹¦£¬Ä¿±ê·þÎñ·µ»Ø½á¹û¸øÇëÇóµ÷ÓÃÕß¡£

ËùÓеķþÎñ×·×ÙÐÅÏ¢¿ÉÒÔͳһͨ¹ýIstio Mixer½øÐÐÊÕ¼¯£¬²¢·¢Ë͵½Prometheus£¬ÓÃGrafana½øÐÐÊý¾Ý¿ÉÊÓ»¯Õ¹Ê¾¡£
¶þ¡¢Istioʵս

ÏÈʵÏÖÒ»¸ö×î¼òµ¥µÄ΢·þÎñ£¬ÉÏÊö´úÂëÆô¶¯ÁËÒ»¸ö×î¼òµ¥µÄHTTP·þÎñÆ÷£¬×¢²áÁË"/meet"·¾¶£¬·ÃÎÊÕâ¸ö·þÎñ¼´¿ªÊ¼Sleep 250ºÁÃë¡£Õâ¸ö·þÎñÆô¶¯ºÍÒ»¸ö»áÒé·þÎñ¡£

ÔÙʵÏÖÒ»¸ö΢·þÎñ£¬Õâ¸ö΢·þÎñÆô¶¯HTTP¿Í»§¶Ë£¬×¢²á"/work"£¬ÊµÏÖ¶Ô»áÒé·þÎñµÄ·ÃÎÊ¡£
OK£¬¾ÍÕâÑù£¬ÎÒÃǴÁËÁ½¸ö¡°Î¢Ð¡µÄ¡±Î¢·þÎñ¡£²¢ÇÒ£¬ËüʵÏÖÁË·þÎñºÍ·þÎñÖ®¼äµÄµ÷Óá£ÎÒÃǽ«¿´¿´Ê¹ÓÃIstioÈçºÎʵÏÖ·þÎñºÍ·þÎñÖ®¼äµÄÖÇÄܵ÷Óá£
ÔÚÕâÀïÎÒÃÇΪWork·þÎñ½¨Á¢Á½¸ö°æ±¾µÄDocker¾µÏñ£¬×öÀ¶ÂÌ·¢²¼¡£Ä¬ÈÏÇé¿öÏ£¬µ±ÎÒÃǰÑV1°æ±¾µÄ·þÎñºÍV2°æ±¾µÄ·þÎñ¶¼ÔËÐÐÆðÀ´£¬Kubernetes»á½«Á÷Á¿¾ùÔȵķÖÅäµ½ÕâÁ½¸öʵÀý¡£

ÈçÉÏͼËùʾ£¬Í¬Ò»¸öÇëÇ󣬷µ»ØµÄ½á¹û²»Í¬£¬V1°æ±¾·µ»ØµÄÊÇ4¸ö»áÒ飬V2°æ±¾·µ»ØµÄÊÇ8¸ö»áÒé¡£
¼ÙÉèWork V2°æ±¾µÄ·þÎñÓÐÎÊÌ⣬ÎÒÃÇ£º
ÈçºÎ¶¯Ì¬µÄ½«Á÷Á¿¶¼Çл»µ½Meeting·þÎñµÄV1°æ±¾£¿

Ö»ÒªÖ´ÉÏÃæµÄÐÐistioctl create ¨Cf route-to-v1.yaml Îļþ£¬¼´¿ÉʵÏÖ½«ËùÓеÄÁ÷Á¿¶¼Çл»µ½V1°æ±¾¡£

ÈçÏÂͼËùʾ£º

ÈçºÎʵÏÖ×Ô¶¯ÖØÊÔ£¿

Èç¹û·þÎñ³öÏÖ503´íÎ󣬴ËʱÔÙÈ÷þÎñ½ÓÊÜÇëÇ󣬻áÔì³É·þÎñµÄÑ©±À¡£Õâʱ£¬Äã¿ÉÄܵÄÑ¡ÔñÊÇÈ÷þÎñ30ÃëÖ®ºóÔÙ½ÓÊÜÇëÇ󣬶ø²»ÊÇÔÚÏß³ÌÊýÁ¿´ïµ½·åÖµµÄʱºòÈÔÈ»½ÓÊÜÇëÇó¡£
ÈçºÎʵÏÖÈÛ¶Ï£¿

Spring CloudÌṩµÄHystrix×÷ΪÈ۶ϵŤ¾ß£¬ÔÚIstioÀÄã¿ÉÒÔ¶¨ÒåÄãµÄCircuitBreakerµÄ²ßÂÔ¡£±ÈÈ磬Èç¹û·þÎñ³öÏÖ²»ÄÜ·ÃÎʵÄÇé¿ö£¬Äã¿ÉÒÔÔÊÐí·þÎñ³öÏÖÁ¬Ðø5´Î´íÎ󣬲¢ÇÒÉèÖÃ×î´ó²¢·¢Á¬½ÓÊýΪ100£¬µ±Á¬½ÓÊý´ïµ½Õâ¸öÊýĿʱ£¬Istio²»»á½«Á÷Á¿µ¼Èëµ½Õâ¸ö·þÎñÀï¡£
ÈçºÎ×·×Ù·þÎñµÄµ÷ÓÃÕ»£¿

ʹÓÃZipkin¿ÉÒÔ½«·þÎñµÄµ÷ÓÃÕ»¿ÉÊÓ»¯£¬¿ÉÒÔÔÚÕâÀï·¢ÏÖ£¬ÔÚ·þÎñµ÷ÓÃÖ®¼äÓÐIstio-Mixer½øÐÐÁË·þÎñµÄCheck²Ù×÷£¬´Ë²Ù×÷ºÄʱ´ó¸Å1ºÁÃ룬Ëü´¦Àí¸ÃÄ¿±ê·þÎñÊÇ·ñ·ûºÏIstioµÄ·ÓɹæÔò£¬Èç¹ûͨ¹ý£¬ÔòÔËάĿ±ê·þÎñ½øÐÐÇëÇóµÄ´¦Àí£¬²¢·µ»Ø¸øµ÷Ó÷½¡£
ÈçºÎ¸ù¾Ý¿Í»§¶ËµÄÌØÕ÷½øÐÐÀ¶ÂÌ·¢²¼£¿
ÀýÈ磬½«ËùÓÐChromeµÄ¿Í»§¶ËÇëÇó¶¼·Ö·¢µ½V2°æ±¾£¬Ê£ÏµÄÇëÇó·¢Ë͵½V1°æ±¾£¿

Äã¿ÉÒÔÔÚÄãµÄIstio·ÓɹæÔòÀïÅäÖøù¾ÝUser-AgentµÄ¹Ø¼ü×Ö£¬×öÁ÷Á¿µÄ¹æ»®£¬¶ø²»ÐèÒªÐÞ¸ÄÈκÎÓ¦ÓõĴúÂë¡£Ö´ÐС°Istio apply -f¡±Ö®ºó¿ÉÒÔ¿´µ½ÒÔÏÂЧ¹û£º

ChromeµÄÓû§¿´µ½µÄÊÇV2°æ±¾£¬¶ø·ÇChromeµÄÓû§ÈÔÈ»¿´µ½µÄÊÇÀϰ汾£¬ÕâÑù¾ÍÄÜÇáËÉʵÏÖÀ¶ÂÌ·¢²¼¡£¶øÍ¨¹ýÅäÖñ¾´Î·¢²¼µÄ½ÚµãÊý£¬Äܹ»ÖÇÄܵØÈÃIstioÀ´·ÖÅä±ÈÈç2%µÄÁ÷Á¿¸øV2°æ±¾£¬×ö½ð˿ȸ·¢²¼µÄÑéÖ¤£¬Èç¹û³É¹¦ÁË£¬ÔÙ×Ô¶¯½øÐÐ10%½ÚµãµÄÉý¼¶ºÍÁ÷Á¿µ÷¶È¡£
Èý¡¢×ܽá

Istio»ù±¾ÊµÏÖÁËSpring CloudµÄºÜ¶à·Ç¹¦ÄÜÐÔµÄÐèÇó£¬Èç¹ûÊǽ«Î¢·þÎñ²¿Êðµ½Kubernetes¼¯Èº£¬Äã¿ÉÒÔʹÓÃIstioÀ´¼ò»¯ÄãµÄSpring Cloud×é¼þ£¬ÎªÄãµÄ΢·þÎñÔËά¼õÇḺµ££¬ÈÃÒµÎñÍŶӽ«¸ü¶àµÄ¾«Á¦·ÅÔÚÒµÎñ´úÂëÉÏ¡£
Èç¹ûÏë¿ìËÙÊÔÓÃIstio£¬×îºÃµÄ·½·¨ÊÇʹÓÃKubernetes Helm Chart½øÐÐÒ»¼üIstio²¿Êð£º"helm install incubator/istio"£¬¼´¿ÉÔÚÄãµÄKubernetes¼¯ÈºÀﲿÊðIstio·þÎñ¡£
|