Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Service Meshʵ¼ùÖ®Istio³õÌåÑé
 
  2604  次浏览      27
 2019-9-11
 
±à¼­ÍƼö:

±¾ÎÄÀ´×Ôcsdn£¬±¾ÎĽéÉÜ·ÖΪÁ½¸ö²¿·Ö£¬µÚÒ»²¿·ÖΪ΢·þÎñÏà¹Ø¸ÅÄî½éÉÜ£¬µÚ¶þ²¿·ÖΪIstio¾ßÌåʵ¼ù¡£

΢·þÎñ¹úÄÚ·¢Õ¹±³¾°£º

2014Ä꣬Martin Fowler׫дµÄ¡¶Microservices¡·Ê¹µÃÐí¶à¹úÄÚµÄÏÈÐÐÕß½Ó´¥µ½Î¢·þÎñÕâ¸ö¸ÅÄî²¢½«ÆäÒýÈë¹úÄÚ£¬2015ÄêÔ½À´Ô½¶àµÄÈËͨ¹ý¸÷ÖÖÇþµÀÁ˽⵽΢·þÎñµÄ¸ÅÄî²¢ÓÐÈË¿ªÊ¼ÔÚÉú²ú»·¾³ÖÐÂ䵨£¬2016-2017Ä꣬΢·þÎñµÄ¸ÅÄî±»Ô½À´Ô½¶àµÄÈËÈϿɣ¬´ø¶¯ÁËÒ»´óÅú¹«Ë¾ÒÔ΢·þÎñºÍÈÝÆ÷ΪºËÐÄ¿ªÊ¼¼¼Êõ¼Ü¹¹µÄÈ«Ãæ¸ïС£

ÖÁ½ñ΢·þÎñÒѾ­ÀúÁËÁ½´ú·¢Õ¹£¬µÚÒ»´úÒÔSpring CloudΪ´ú±íµÄ΢·þÎñ¿ª·¢¿ò¼Ü£¬¸Ã¿ò¼ÜÔÚ΢·þÎñ·¢Õ¹µÄǰ¼¸ÄêÒ»¶È¶ÀÁì·çɧ£¬ÉõÖÁÔÚ²¿·ÖÈËȺÖгÉΪ΢·þÎñµÄ´úÃû´Ê£¬µ«ÊÂʵÉϸÃ΢·þÎñ¿ò¼Ü²¢²»ÊÇΨһʵÏÖ΢·þÎñµÄ·½Ê½£»µÚ¶þ´ú΢·þÎñ¼¼ÊõΪ·þÎñÍø¸ñ£¨Service Mesh£©£¬ËüµÄ³öÏÖ½â¾öÁ˴󲿷ֿª·¢ÈËÔ±ÔÚʹÓÃSpring CloudÖÐÓöµ½µÄ²»×ãºÍÍ´µã¡£

Service MeshÊÇÈçºÎ½â¾öÕâЩÎÊÌâµÄ£¬ÓÖÊǺÎÒÔÓ®µÃÖڶ࿪·¢ÕßµÄÖ§³ÖÄØ£¿±ÊÕß¾ÍÕâЩÎÊÌâ¸ø´ó¼Ò·ÖÏíһƪÒÔIstioΪ´ú±íµÄµÚ¶þ´ú΢·þÎñʵ¼ù¡£

Ò»¡¢Î¢·þÎñºÍIstio

Service Mesh»ù±¾¸ÅÄî

·þÎñÍø¸ñÊÇÒ»¸ö»ù´¡ÉèÊ©²ã£¬Ö÷ÒªÓÃÓÚ´¦Àí·þÎñ¼äµÄͨÐÅ¡£ÔÆÔ­ÉúÓ¦ÓÃÓÐן´ÔӵķþÎñÍØÆË£¬·þÎñÍø¸ñ¸ºÔðÔÚÕâÐ©ÍØÆËÖÐʵÏÖÇëÇóµÄ¿É¿¿´«µÝ¡£ÔÚʵ¼ùÖУ¬·þÎñÍø¸ñͨ³£ÊµÏÖΪһ×éÇáÁ¿¼¶ÍøÂç´úÀí£¬ËüÃÇÓëÓ¦ÓóÌÐò²¿ÊðÔÚÒ»Æð£¬¶ø¶ÔÓ¦ÓóÌÐò͸Ã÷¡£

ͼ1չʾÁË·þÎñÍø¸ñµÄÍØÆË£¬µ±Î¢·þÎñÊýÁ¿Ôö¶à´ïµ½¼¸Ê®ÉϰÙʱ£¬·þÎñÍø¸ñ¾Í»á³ÊÏÖ·þÎñÍø¸ñ×´£¬ÆäÖÐÂÌɫΪ΢·þÎñ£¬À¶É«Îª·þÎñÍø¸ñ£¬·þÎñÍø¸ñÒÔµäÐ͵Äsidecar·½Ê½²¿ÊðÔÚ΢·þÎñÅÔ¡£

sidecar£ºÒ»ÖÖµ¥½Úµã¡¢¶àÈÝÆ÷µÄÓ¦ÓÃÉè¼ÆÐÎʽ¡£sidecarÖ÷ÕÅÒÔ¶îÍâµÄÈÝÆ÷À´À©Õ¹»òÔöÇ¿Ö÷ÈÝÆ÷£¬¶øÕâ¸ö¶îÍâµÄÈÝÆ÷±»³ÆÎªsidecarÈÝÆ÷¡£

Istio»ù±¾¸ÅÄî

IstioÊÇÓÉGoogle¡¢IBM¡¢LyftÁªºÏ¿ª·¢µÄ¿ªÔ´ÏîÄ¿£¬2017Äê5Ô·¢²¼µÚÒ»¸örelease 0.1.0£¬ ËüÊÇÒ»¸öÍêÈ«¿ªÔ´µÄ·þÎñÍø¸ñ£¬¿ÉÒÔ͸Ã÷µÄ·Ö²ãµ½ÏÖÓеķֲ¼Ê½Ó¦ÓÃÖУ¬ËüÒ²ÊÇÒ»¸öƽ̨£¬°üÀ¨ÔÊÐíËü¼¯³Éµ½ÈκÎÈÕÖ¾¼Ç¼ƽ̨£¬Ò£²â»ò²ßÂÔϵͳµÄAPI¡£Istio ¶àÑù»¯¹¦Äܼ¯Äܹ»¸ßЧµÄÔËÐÐÔÚ·Ö²¼Ê½Î¢·þÎñ¼Ü¹¹ÖУ¬²¢Í¬Ê±Ìṩ±£»¤¡¢Á¬½ÓºÍ¼à¿ØÎ¢·þÎñµÈ·½·¨¡£

Istio»ù±¾¼Ü¹¹

ÓÉͼ2¿ÉÖª£¬Istio¼Ü¹¹ÔÚÍø¸ñÂß¼­ÉÏÖ÷Òª·ÖΪ¿ØÖÆÆ½Ã棨Control Plane API£©ºÍÊý¾ÝÆ½Ãæ£¨Data Plane£©¡£

¿ØÖÆÆ½Ã棺¸ºÔð¹ÜÀíºÍÅäÖôúÀíÀ´Â·ÓÉÁ÷Á¿¡£Ö÷Òª·ÖΪÈý¸ö×é¼þPilot¡¢Mixer¡¢Citadel£¬ÓÉÓÚÆª·ùÓÐÏÞ£¬´Ë´¦¶Ô¸ÅÄî½øÐмòµ¥½éÉÜ£º

Pilot£ºÎªEnvoy sidecarÌṩ·þÎñ·¢ÏÖ¹¦ÄÜ£¬ÎªÖÇÄÜ·Óɺ͵¯ÐÔÌṩ¹ÜÀí¹¦ÄÜ£¬Ëü½«¿ØÖÆÁ÷Á¿ÐÐΪµÄ¸ß¼¶Â·ÓÉת»¯ÎªÌض¨ÓÚEnvoyµÄÅäÖ㬲¢ÔÚÔËÐÐʱ½«ËüÃÇ´«²¥µ½sidecar¡£

Mixer£º¶ÀÁ¢ÓÚÆ½Ì¨£¬¸ºÔðÔÚService MeshÉÏÖ´ÐзÃÎÊ¿ØÖƺÍʹÓòßÂÔ£¬²¢´ÓEnvoy´úÀíºÍÆäËü·þÎñÖÐÊÕ¼¯Ò£²âÊý¾Ý¡£

Citadel£ºÍ¨¹ýÄÚÖÃÉí·ÝºÍƾ֤¹ÜÀíÒÔÌṩ·þÎñÓë·þÎñ¼äµÄÉí·ÝÑéÖ¤²¢ÇÒ¿ÉÒÔÉý¼¶Service MeshÖÐδ¼ÓÃܵÄÁ÷Á¿¡£

Êý¾ÝÆ½Ãæ£ºÓÉÒ»×éÒÔsidecar·½Ê½²¿ÊðµÄÖÇÄÜ´úÀí×é³É£¬ÕâЩ´úÀí¿ÉÒÔµ÷½ÚºÍ¿ØÖÆÎ¢·þÎñ¼°MixerÖ®¼äËùÓеÄÍøÂçͨÐÅ¡£IstioĬÈÏʹÓÃEnvoy×öÖÇÄÜ´úÀí£¬µ±È»Ò²Ö§³ÖÆäËü´úÀí£¬ÀýÈçLinkerd¡¢NginmeshµÈ¡£

Envoy£ºC++¿ª·¢µÄ¸ßÐÔÄÜ´úÀí£¬ÓÃÓÚµ÷½âService MeshÖÐËùÓеÄÈëÕ¾ºÍ³öÕ¾Á÷Á¿¡£Envoyº¬ÓÐÐí¶àµÄÄÚÖù¦ÄÜ£º¶¯Ì¬·þÎñ·¢ÏÖ¡¢¸ºÔؾùºâ¡¢ÈÛ¶ÏÆ÷¡¢½¡¿µ¼ì²é¡¢HTTP/2ºÍgRPC´úÀíµÈ¡£EnvoyÔÚIstioÖб»²¿ÊðΪsidecar£¬ºÍ¶ÔÓ¦µÄ΢·þÎñÔÚͬһ¸öKubernetes PodÖУ¬Istio½«Æä¹¦ÄÜÌí¼Óµ½sidecarÖÐÀ´¶Ô΢·þÎñ½øÐйÜÀí¶øÎÞÐè¸ü¸Ä΢·þÎñÓ¦ÓôúÂ룬Æðµ½Ò»¸öÎÞÇÖÈëʽµÄ×÷Óá£

¶þ¡¢ÎªÊ²Ã´ÒªÊ¹ÓÃIstio£¿

Ëæ×Å΢·þÎñ¹æÄ£µÄÔö³¤£¬Æä¸´ÔÓÐÔÒ²Ô½À´Ô½¸ß£¬ÆäÖÐÃæÁÙÐí¶àÐèÇó£¬ÀýÈç·þÎñ·¢ÏÖ¡¢¹ÊÕϻָ´¡¢¼à¿Ø¡¢¸ºÔؾùºâ¡¢ÏÞÁ÷¡¢·ÃÎÊ¿ØÖƵȣ¬IstioÌṩÁËÒ»Ì廯µÄ·½°¸£¬Í¨¹ýΪÕû¸öService MeshÌṩ¹ÜÀíÀ´Âú×ã΢·þÎñÓ¦ÓÃÖи´Ôӱ任µÄÐèÇ󣬯äÖÐÌṩÁËÐí¶à·Ç³£¹Ø¼üµÄÐèÇó£º

Á÷Á¿¹ÜÀí£º¿ØÖÆ·þÎñÖ®¼äÁ÷Á¿ºÍAPIµ÷Óã¬Ê¹µÃµ÷Óøü¿É¿¿¡£

¿É¹Û²ìÐÔ£ºÁ˽â·þÎñÖ®¼äÒÀÀµ¹ØÏµ£¬ÒÔ¼°ËüÃÇÖ®¼äÁ÷Á¿µÄ±¾ÖʺÍÁ÷Ïò¡£

²ßÂÔÖ´ÐУº²ßÂÔÓ¦ÓÃÓÚ΢·þÎñÖ®¼ä»¥¶¯£¬È·±£·ÃÎʲßÂÔµÃÒÔÖ´ÐУ¨Ö´ÐÐÊÇͨ¹ýÅäÖÃÍø¸ñ¶ø²»ÊÇÐ޸ijÌÐò´úÂ룩¡£

·þÎñÉí·Ý°²È«£ºÎªÍø¸ñÖеķþÎñÌṩ¿É¿¿Éí·ÝÑéÖ¤£¬²¢Ìṩ±£»¤Á÷Á¿µÄÄÜÁ¦¡£

Èý¡¢ÊÔÓÃIstio

Istioʵ¼ùÖ÷Òª·ÖΪÈý²½£¬µÚÒ»²½ÏÂÔØ²¢²¿ÊðIstio£»µÚ¶þ²½²¿ÊðBookinfo΢·þÎñ£»µÚÈý²½Í¨¹ýÖ¸¶¨yamlÎļþ²âÊÔIstioµÄ¹¦ÄÜÌØÐÔ¡£

Ö÷ÒªÅäÖû·¾³ÈçÏ£º

²Ù×÷ϵͳ£ºUbuntu 16.04

Kubernetes¶ÔÓ¦°æ±¾£º

ͼ3 Kubernetes¹¤¾ß°æ±¾

Kubernetes¼¯ÈºÎª£º

ͼ4 Kubernetes½ÚµãÐÅÏ¢

µÚÒ»²½ °²×°Istio

ÔÚÖÕ¶ËÊ×ÏÈ»ñÈ¡×îеÄIstio°²×°°ü£º

curl -L https://git.io/getLatestIstio | sh -

½øÈë°²×°°üĿ¼ºó½øÈëinstall/kubernetes/Ŀ¼°²×°KubernetesËùÐèyamlÎļþ£¬Èçͼ5Ëùʾ£º

ͼ5 Istio°²×°°ü

ʹÓÃkubectlÔËÐÐistio-demo.yamlÎļþ£¨ÓÐËÄÖÖ·½Ê½°²×°£¬¶ÔÓ¦Óв»Í¬µÄyamlÎļþ£¬´Ë´¦Ñ¡ÔñĬÈϲ»ÆôÓÃTLSÉí·ÝÑéÖ¤µÄ°²×°·½Ê½£¬ÆôÓÃTLS°²×°·½Ê½µÄyamlÎļþΪistio-demo-auth.yaml£©£¬°²×°¹ý³ÌÈçͼ6Ëùʾ£º

kubectl create ¨Cf istio-demo.yaml

ͼ6 Istio°²×°¹ý³Ì

ÏÔʾÒѰ²×°³É¹¦£¨ÓÉÓÚ°²×°ÄÚÈݽ϶ֻ࣬½ØÍ¼ÁËÆäÖÐÒ»²¿·Ö£©£¬Ö®ºó²é¿´ÒѲ¿ÊðµÄIstio PodÔËÐÐ×´¿ö£º

kubectl get po -o wide --all-namespaces

ͼ7 IstioÖÐÔËÐеÄPod

ÓÉͼ7¿ÉÒÔ¿´³öKubernetesÖÐÃüÃû¿Õ¼äΪistio-systemµÄPod£¬ÆäÖаüº¬Ðí¶à×é¼þ£¬ÈçÓÃÓÚ¼à¿ØµÄGrafana¡¢Prometheus£¬ÓÃÓÚ·þÎñ²é¿´µÄServiceGraph£¬ÒÔ¼°Istio×é¼þcitadel¡¢mixer¡¢pilotµÈ¡£

¿ÉÒÔÔٲ鿴Istio°²×°°üÖа²×°µÄservice£¬ÆäÖÐPORTSÀ¸¿ÉÒԲ鿴·þÎñ¶ÔÍⱩ¶µÄ¶Ë¿ÚºÅ£¬ÒÔ±ãÔÚÍⲿ·ÃÎÊ£¬Èçͼ8Ëùʾ£º

kubectl get svc -n istio-system

ͼ8 IstioÖÐÔËÐеÄservice

ΪÁËʹÓÃIstioµÄÃüÁîÐй¤¾ßistioctl£¬ÐèÒªÖ¸¶¨»·¾³±äÁ¿ÒÔ±ãºóÆÚʹÓãº

export PATH=/home/xxxx/istio-1.0.0/bin:$PATH

ÏÂÃæ¿ÉÒÔ¼òµ¥¿´¿´istioctlµÄÃüÁîʹÓã¬Èçͼ9Ëùʾ£º

ͼ9 istioctl»ù±¾ÃüÁî

µÚ¶þ²½ ²¿ÊðBookinfo΢·þÎñ

BookinfoÊÇIstioÌṩµÄÒ»¸öÑùÀýÓ¦Óã¬ËüÓÉËĸöµ¥¶ÀµÄ΢·þÎñ¹¹³É£¬ÓÃÀ´ÑÝʾ¶àÖÖ Istio ÌØÐÔ£º

productpage£ºproductpage΢·þÎñ»áµ÷ÓÃdetailsºÍreviewsÁ½¸ö΢·þÎñ£¬ÓÃÀ´Éú³ÉÒ³Ãæ¡£

details£º´Ë΢·þÎñ°üº¬Êé¼®µÄÐÅÏ¢¡£

reviews£º´Ë΢·þÎñ°üº¬Êé¼®µÄÏà¹ØÆÀÂÛ£¬Ëü»áµ÷ÓÃratings΢·þÎñ¡£

ratings£º´Ë΢·þÎñ°üº¬Êé¼®ÆÀ¼ÛµÄÆÀ¼¶ÐÅÏ¢¡£

ÆäÖÐreviews΢·þÎñ°üº¬Èý¸ö°æ±¾£º

v1°æ±¾²»»áµ÷ÓÃratings΢·þÎñ¡£

v2°æ±¾µ÷ÓÃratings²¢Ê¹ÓÃ5¸öºÚÉ«ÐÇÐÍͼ±êÏÔʾÆÀ·ÖÐÅÏ¢¡£

v3°æ±¾µ÷ÓÃratings²¢Ê¹ÓÃ5¸öºìÉ«ÐÇÐÍͼ±êÏÔʾÆÀ·ÖÐÅÏ¢¡£

ͼ10 Bookinfo¼Ü¹¹Í¼

ÆäÖÐËùÓеÄ΢·þÎñ¶¼ºÍEnvoy sidecar¼¯³ÉÔÚÒ»Æð£¬ËùÓзþÎñµÄ³öÈëÁ÷Á¿¶¼±»Envoy½Ù³Ö£¬ÕâÑùIstioµÄ¿ØÖÆÆ½Ãæ¾Í¿ÉÒÔΪӦÓÃÌṩ·þÎñ·ÓÉ¡¢Ò£²âÊý¾ÝÊÕ¼¯ÒÔ¼°²ßÂÔʵʩµÈÄÚÈÝ¡£

ÓÉÓÚ֮ǰÒѾ­ÏÂÔØÁËbookinfoÏà¹ØyamlÎļþ£¬ËùÒÔÖ±½ÓÖ´ÐоͺÃÁË£¬Èçͼ11¡¢12Ëùʾ£º

kubectl create ¨Cf bookinfo.yaml
kubectl create ¨Cf bookinfo-gateway.yaml

ͼ11 ÔËÐÐBookinfo

ͼ12 ÔËÐÐbookinfo-gateway

²é¿´KubernetesÖÐBookinfoÓ¦ÓÃÔËÐÐ×´¿ö£¬Èçͼ13Ëùʾ£º

ͼ13 BookinfoÔËÐеÄPod

²é¿´BookinfoÖÐservice²¿ÊðÇé¿ö£¬Èçͼ14Ëùʾ£º

kubectl get svc

ͼ14 BookinfoÔËÐеÄservice

ÖÁ´ËBookinfoÓ¦ÓÃÒѲ¿ÊðÍê±Ï£¬ÄÇôÈçºÎ·ÃÎÊBookinfoÖеÄ΢·þÎñÄØ£¿Í¨¹ýÇ°ÃæËù½²¿ÉÖªBookinfoÓжÔÓ¦µÄWeb΢·þÎñproductpage£¬¿ÉÒÔͨ¹ýÒÔÏ·½Ê½·ÃÎÊ£º

Ê×ÏÈÈ·¶¨IngressµÄIPºÍ¶Ë¿Ú£º

port£º

export INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')

secure port£º

export SECURE_INGRESS_PORT=$(kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}')

host£º

export INGRESS_HOST=$(kubectl get po -l istio=ingressgateway -n istio-system -o 'jsonpath={.items[0].status.hostIP}')

GATEWAY_URL£º

export GATEWAY_URL=$INGRESS_HOST:$INGRESS_PORT

¾ßÌå²Ù×÷Èçͼ15Ëùʾ£¬¿ÉÖªÍø¹ØÈë¿ÚΪ20.0.0.13:31380¡£

ͼ15 ÅäÖÃIngressµØÖ·

²âÊÔBookinfoÓ¦ÓõÄÔËÐÐÇé¿ö£¬·µ»Ø200ΪÕý³££¬Èçͼ16Ëùʾ£º

curl -o /dev/null -s -w "%{http_code}\n" http://${GATEWAY_URL}/productpage

ͼ16 ²âÊÔBookinfoÔËÐÐÇé¿ö

ÔÚChromeä¯ÀÀÆ÷ÖÐÊäÈ룬Èçͼ17Ëùʾ£ºhttp://192.168.19.13:31380/productpage¡£

ͼ17 BookinfoÓ¦ÓÃWeb½çÃæ

ÉÏͼ¿ÉÒÔ¿´³öBookinfoÓ¦ÓÃÓÉ4¸ö΢·þÎñ×é³É£¬¼´web΢·þÎñÒ³Ãæproductpage¡¢Ò³Ãæ×ó±ß²¿·ÖΪBook Details·þÎñ£¬Óұ߲¿·ÖΪBook Reviews·þÎñ£¬ reviews·þÎñĿǰΪv1״̬¼´ÎÞÐǼ¶ÆÀ·Ö¡£ÓÉÓÚδÉèÖÃÇëÇó·ÓÉ£¬¶àË¢ÐÂÒ³Ãæ¼¸´Î£¬ÇëÇó·ÓÉÁ÷Á¿»áËæ»úµÄÔÚreviews·þÎñv1¡¢v2¡¢v3ÖÐÇл»¡£

µÚÈý²½£ºÑéÖ¤Istio¹¦ÄÜ

ÇëÇó·ÓÉ

´ËÑùÀý»á°ÑBookinfoÓ¦ÓõĽøÈëÁ÷Á¿µ¼Ïòreviews·þÎñµÄv1°æ±¾£¬ÅäÖÃyamlÎļþÈçͼ18Ëùʾ£º

ͼ18 route-rule-all-v1.yamlÎļþ²¿·ÖÄÚÈÝ

ÖÕ¶ËÖ´ÐÐÒÔÏÂÃüÁÈçͼ19Ëùʾ£º

kubectl apply -f route-rule-all-v1.yaml

ͼ19 route-rule-all-v1.yamlÎļþÖ´Ðйý³Ì

´Ëʱ¶à´ÎË¢ÐÂÒ³Ãæ¾Í»á·¢ÏÖÿ´ÎË¢ÐÂreviews·þÎñʼÖÕΪv1°æ±¾¡£

Èç¹ûÏë¿´¾ßÌåµÄvirtualservicesºÍdestinationrules¿ÉÒÔͨ¹ýÃüÁî²é¿´£º

kubectl get virtualservices -o yaml
kubectl get destinationrules -o yaml

ÇëÇóÒ²¿ÉÒÔ»ùÓÚÓû§Éí·Ýȥ·ÓÉ£¬±ÈÈç¡°xx¡±µÇ¼¾ÍÊÇreviews·þÎñµÄv1°æ±¾£¬ÆäËüÓû§µÇ¼ÔòΪv2°æ±¾¡£

¹ÊÕÏ×¢Èë

´ËÑùÀý»áʹÓÃIstio²âÊÔBookinfoÓ¦Óõĵ¯ÐÔ£¬¾ßÌ巽ʽΪµ±Óû§jasonµÇ¼ʱÔÚreviews:v2ºÍratingsÖ®¼ä½øÐÐÑÓ³Ù×¢Èë¡£´ËÑùÀý¶ÔÓ¦yamlÎļþÈçͼ20Ëùʾ£º

ͼ20 route-rule-ratings-test-delay.yamlÎļþÄÚÈÝ

ÖÕ¶ËÖ´ÐÐÒÔÏÂÃüÁÈçͼ21Ëùʾ£º

kubectl replace -f route-rule-ratings-test-delay.yaml

ͼ21 route-rule-ratings-test-delay.yamlÎļþÖ´Ðйý³Ì

´ËʱÓÃjasonÕ˺ŵǼ¾Í»á·¢ÏÖÿ´ÎÇëÇó·Óɵ½reviews΢·þÎñ¶¼Òª6Ãë×óÓÒ£¬¿ÉÒÔ´ò¿ªchromeä¯ÀÀÆ÷¿ª·¢Õß¹¤¾ß²é¿´£¬²¢ÇÒreviews²¿·ÖÏÔʾ´íÎóÏûÏ¢£¬Èçͼ22Ëùʾ£º

ͼ22 ¹ÊÕÏ×¢ÈëÒ³ÃæÕ¹Ê¾

Á÷Á¿Ç¨ÒÆ

´ËÑùÀý»áʹÓÃIstio½«ËùÓÐÓû§µÄÁ÷Á¿°´ÕÕÈ¨ÖØ½øÐÐ×ªÒÆ£¬´ËÑùÀý¶ÔÓ¦µÄyamlÎļþÈçͼ23Ëùʾ£º

ͼ23 route-rule-reviews-50-v3.yamlÎļþÄÚÈÝ

ÓÉÉÏͼ¿ÉÖªµ±ÓÐÁ÷Á¿½øÈëʱ£¬°Ù·ÖÖ®ÎåÊ®Á÷Á¿Ç¨ÒƵ½reviews v1£¬ÁíÍâ°Ù·ÖÖ®ÎåÊ®Á÷Á¿Ç¨ÒƵ½reviews v3£¬ÖÕ¶ËÖ´ÐÐÒÔÏÂÃüÁÈçͼ21Ëùʾ£º

kubectl replace -f route-rule-reviews-50-v3.yaml

´ËʱˢÐÂÒ³Ãæ¾Í»á¿´µ½ÓÐÒ»°ëµÄ¸ÅÂÊÊÇreviews v3£¨ºìÉ«ÐÇ£©£¬Ò»°ë¸ÅÂÊÊÇreviews v1£¨ÎÞÆÀÐÇ£©¡£

É趨ÇëÇó³¬Ê±

´ËÑùÀýÊ×ÏȽ«Á÷Á¿È«²¿µ¼Èëreviews v2·þÎñ£¬ÔÙ¸øratings·þÎñÔö¼Ó2ÃëÑÓ³Ù£¬×îºóΪreviews·þÎñµ÷ÓÃÌí¼Ó0.5ÃëÇëÇó³¬Ê±£¬Ë³ÐòÈçͼ24-29Ëùʾ£º

ͼ24 Á÷Á¿µ¼Èëreviews v2

ͼ25 productpageÒ³ÃæÏÔʾreviews v2

ͼ26 ratings·þÎñÌí¼Ó2ÃëÑÓ³Ù

ͼ27 ratings·þÎñÌí¼ÓÑÓ³ÙWebÒ³ÃæÐ§¹û

ͼ28 reviews·þÎñÌí¼Ó0.5ÃëÇëÇó³¬Ê±

ͼ29 reviews·þÎñ¼Ó³¬Ê±WebÒ³ÃæÐ§¹û

×îÖÕË¢ÐÂÒ³ÃæÓÉͼ29ÏÔʾ£¬¿´µ½·µ»ØÊ±¼äΪ1Ãë×óÓÒ²¢ÇÒÆÀÂÛ²»¿ÉÓã¬ÕâÊÇÎªÊ²Ã´ÄØ?´ð°¸ÊÇproductpage·þÎñÓÐÓ²±àÂëÖØÊÔ£¬Òò´ËÔÚÒ³ÃæË¢ÐÂʱ£¬ÇëÇó·µ»ØÖ®Ç°ÐèÒªµ÷Óó¬Ê±reviews·þÎñÁ½´Î£¬Ã¿´ÎΪ0.5Ãë×óÓÒ£¬Á½´Î¾ÍΪ1Ãë×óÓÒÁË¡£

´ó¼ÒÏëÏóÏ£¬µ±Î¢·þÎñµÄÊýÁ¿Ôö¶àʱ£¬ÔËάÈËÔ±¸ù¾ÝÐèÇóÐèÒª¶Ô²¿·Ö΢·þÎñ½øÐÐA/B²âÊÔ£¬½ð˿ȸ·¢²¼»òÊÇÏÞÁ÷¡¢Á÷Á¿·ÖƬµÈ²Ù×÷£¬ÕâÎÞÒÉÔö¼ÓÁËÔËάÈËÔ±µÄ¹ÜÀí¸´ÔÓ¶È£¬Istio¿¼Âǵķdz£ÖÜÈ«£¬ÔÚ°²×°°üÖи½¼ÓÁË¼à¿Ø¡¢¸ú×ÙµÈ×é¼þ£¬ÒÔÏ·ֱðչʾ£º

Trace£º

ͼ30 BookinfoÓ¦Ó÷ֲ¼Ê½×·×ÙÒ³Ãæ

ͼ31 BookinfoÓ¦Ó÷ֲ¼Ê½×·×ÙÏêÏ¸Ò³Ãæ

Prometheus£º

ͼ32 IstioÇëÇó×ÜÊý

Service Graph£º

ͼ33 BookinfoÓ¦ÓÃserviceͼ±í

Grafana£º

ͼ34 Grafana¼à¿ØWebÒ³Ãæ

Istio»¹ÓÐÐí¶à¹¦ÄÜÌØÐÔÀýÈçÈÛ¶Ï»úÖÆ£¬¿ØÖÆIngressÁ÷Á¿µÈ£¬ÔÚ´ËÓÉÓÚÆª·ùÏÞÖÆ²»¶à×öÃèÊö£¬´ó¼Ò¸ÐÐËȤµÄ»°¿ÉÒÔÈ¥¹ÙÍø²é¿´https://istio.io/docs/tasks/¡£

ͼ35 IstioµÄ°²È«¼Ü¹¹

ËÄ¡¢×ܽá

ͨ¹ýÒÔÉ϶ÔIstioµÄʵ¼ù´ó¼Ò²»ÄÑ¿´³öIstioÏà±ÈÓÚSpring CloudµÄ¼¸¸öÓŵ㡣Ê×ÏÈÏà±ÈÓÚSpring Cloudѧϰ×é¼þÄÚÈݶ࣬Ãż÷¸ßµÄÍ´µã£¬IstioÊǷdz£ÈÝÒ×ÉÏÊֵģ¬Ö»ÐèÔÚKubernetesƽ̨ÉÏÅÜÒ»¸öyamlÎļþ¼´¿ÉÍê³É²¿Êð£»ÔÙÕßÏà±ÈÓÚSpring CloudÐèÒª°ÑÈÏÖ¤ÊÚȨ¡¢·Ö²¼Ê½×·×Ù¡¢¼à¿ØµÈÕâЩ¸ß¼¶¹¦ÄܼÓÈëµ½Ó¦ÓóÌÐòÄÚ²¿µ¼ÖÂÁËÓ¦Óñ¾Éí¸´ÔӶȵÄÍ´µã£¬·´¹ÛIstioÊǺÜÇáÁ¿¼¶µÄ£¬Ëü½«ÒÔÉÏÄÇЩ¸ß¼¶¹¦ÄÜ×÷Ϊ×é¼þÄÚÖÃÔÚIstioÖУ¬´Ó¶ø´ïµ½Á˶ÔÓ¦ÓóÌÐòµÄÎÞÇÖÈëÐÔ£¬Ö»ÐèÒªÅäÖÃÏàÓ¦µÄyamlÎļþ²¢Ï·¢ÖÁIstio¿ØÖÆÆ½ÃæÖ´ÐкóÐøµÄ²Ù×÷¼´¿É£¬²Ù×÷¹ý³ÌÓû§ÊÇÎÞ¸ÐÖªµÄ£»×îºóÏà±ÈÓÚSpring Cloud¶ÔJava»·¾³µÄ¹ý¶ÈÒÀÀµÒÔ¼°¿çÓïÑÔÍ´µã£¬IstioÒ²ÍêÃÀµÄ½â¾öÁË£¬ÆäÖ§³Ö¶àÖÖÓïÑÔ£¬°üÀ¨ÐÂÐ˱à³ÌÓïÑÔGolang¡¢Rust¡¢Node.js¡¢RÓïÑԵȡ£

ËäȻĿǰIstioÔÚÉçÇøÓÐÖÚ¶àµÄÖ§³ÖÕߣ¬µ«´ÓµÚÒ»¸ö°æ±¾µ½ÏÖÔÚÖ»Óв»µ½ Ò»Äê°ëµÄʱ¼ä£¬Ä¿Ç°Istio¹úÄÚÉú²úÂ䵨µÄ¹«Ë¾»¹Ïà¶Ô½ÏÉÙ£¬»ªÎªµÄCES Mesher¡¢ÐÂÀË΢²©µÄMotan¡¢Î¨Æ·»áµÄOSPµÈ¶¼ÒѾ­ÔÚʹÓ㬰¢ÀïÔÆºÍÌÚÑ¶ÔÆµÄ³ÖÐø¸ú½øÏàÐÅÒ²²»Ô¶ÁË£¬ IstioµÄδÀ´Ò»Æ¬¹âÃ÷£¬ÈÃÎÒÃǹ²Í¬ÆÚ´ý¡£

   
2604 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù