äŒæãçµãããIstio Service Mesh ã·ãªãŒãºã® XNUMX åç®ã®æçš¿ã«æ»ããŸãã
ä»æ¥ã®ãããã¯ã¯ãµãŒããããã¬ãŒã«ãŒã§ãããã·ã¢èªã®é»æ°å·¥åŠã«ç¿»èš³ãããšããµãŒããããã¬ãŒã«ãŒããäžè¬çšèªã§ã¯ããµãŒããããã¬ãŒã«ãŒããæå³ããŸãã Istio ã§ã®ã¿ããã®ãã·ã³ã¯ç絡ãŸãã¯éè² è·ã®åè·¯ã§ã¯ãªããé害ã®ããã³ã³ãããåæããŸããã
ãããçæ³çã«ã©ã®ããã«æ©èœããã
ãã€ã¯ããµãŒãã¹ããããšãã° OpenShift ãã©ãããã©ãŒã å 㧠Kubernetes ã«ãã£ãŠç®¡çãããå Žåãè² è·ã«å¿ããŠèªåçã«ã¹ã±ãŒã«ã¢ããããã³ã¹ã±ãŒã«ããŠã³ãããŸãã ãã€ã¯ããµãŒãã¹ã¯ãããå ã§å®è¡ããããããXNUMX ã€ã®ãšã³ããã€ã³ãäžã«ã³ã³ããåããããã€ã¯ããµãŒãã¹ã®è€æ°ã®ã€ã³ã¹ã¿ã³ã¹ãååšããããšãã§ããKubernetes ããªã¯ãšã¹ããã«ãŒãã£ã³ã°ãããããã®éã§è² è·åæ£ãè¡ããŸãã ãããŠãçæ³çã«ã¯ãããããã¹ãŠãå®ç§ã«æ©èœããã¯ãã§ãã
ãã€ã¯ããµãŒãã¹ã¯å°ãããŠäžæçãªãã®ã§ããããšãèŠããŠããŸãã äžææ§ãšã¯ãããã§ã¯çŸãããæ¶ãããããããšã®å®¹æããæå³ããŸãããéå°è©äŸ¡ãããããšããããããŸãã ãããå ã§ãã€ã¯ããµãŒãã¹ã®å¥ã®ã€ã³ã¹ã¿ã³ã¹ãèªçãããæ¶æ» ãããããããšã¯éåžžã«äºæ³ãããããšã§ãããOpenShift ãš Kubernetes ã¯ãããããŸãåŠçãããã¹ãŠãããŸãæ©èœããŸããããããçè«äžã®è©±ã§ãã
å®éã®ä»çµã¿
ããã§ããã€ã¯ããµãŒãã¹ã®ç¹å®ã®ã€ã³ã¹ã¿ã³ã¹ (ã³ã³ãããŒ) ã䜿çšã§ããªããªã£ããšæ³åããŠãã ãããå¿çããªãã (ãšã©ãŒ 503)ããããã¯ããã«äžå¿«ãªããšã«ãå¿çã¯ããŸãããé床ãé ãããŸãã ã€ãŸããåé¡ãçºçãããããªã¯ãšã¹ãã«å¿çããªããªã£ããããŸãããããŒã«ããèªåçã«åé€ãããããã§ã¯ãããŸããã ãã®å Žåã¯ã©ãããã°ããã§ãããã? åè©Šè¡ããã«ã¯? ã«ãŒãã£ã³ã° ã¹ããŒã ããåé€ããå¿ èŠããããŸãã? ãããŠããé ãããããšã¯äœãæå³ããŸãã?ãã®æ°åã¯ã©ããããã§ã誰ãããã決å®ããã®ã§ãããã? äžæŠäŒæ©ããŠãåŸã§ããäžåºŠè©ŠããŠã¿ãŠã¯ãããã§ãããã? ãããããªããã©ããããåŸã§ããïŒ
Istio ã®ããŒã«ã®æåºãšã¯äœã§ãã
ãããŠããã㧠Istio ããµãŒããã ãã¬ãŒã«ãŒä¿è·ãã·ã³ã䜿çšããŠæå©ã«æ¥ãŸããããã¯ãã«ãŒãã£ã³ã°ãšè² è·åæ£ã®ãªãœãŒã¹ ããŒã«ããé害ã®ããã³ã³ãããäžæçã«åé€ããããŒã«ã®æåºæé ãå®è£ ããŸãã
Istio ã¯å€ãå€æ€åºæŠç¥ã䜿çšããŠãã©ã€ã³ããå€ããŠããã«ãŒã ããããæ€åºããã¹ãªãŒã ãŠã£ã³ããŠãšåŒã°ããæå®ãããæéããªãœãŒã¹ ããŒã«ããããããåé€ããŸãã
OpenShift ãã©ãããã©ãŒã äžã® Kubernetes ã§ãããã©ã®ããã«æ©èœãããã瀺ãããã«ããªããžããªå
ã®äŸããéåžžã«åäœããŠãããã€ã¯ããµãŒãã¹ã®ã¹ã¯ãªãŒã³ã·ã§ããããå§ããŸãããã
ã¯ã©ãã·ã¥ã«åãã
ããŒã«ã®æåºãå®è¡ããåã«ãIstio ã«ãŒãã£ã³ã° ã«ãŒã«ãäœæããå¿ èŠããããŸãã ãããéã§ãªã¯ãšã¹ãã 50/50 ã®æ¯çã§åæ£ããããšããŸãã ããã«ã次ã®ããã« v2 ã³ã³ããã®æ°ã XNUMX ã€ãã XNUMX ã€ã«å¢ãããŸãã
oc scale deployment recommendation-v2 --replicas=2 -n tutorial
次ã«ããã©ãã£ãã¯ããããé㧠50/50 ã®æ¯çã§åæ£ãããããã«ã«ãŒãã£ã³ã° ã«ãŒã«ãèšå®ããŸãã
ãã®ã«ãŒã«ã®çµæã¯æ¬¡ã®ããã«ãªããŸãã
ãã®ç»é¢ã 50/50 ã§ã¯ãªã 14:9 ã§ãããšããäºå®ã«æ¬ ç¹ãèŠã€ããããšãã§ããŸãããæéã®çµéãšãšãã«ç¶æ³ã¯æ¹åãããŸãã
äžå ·åãèµ·ãã
次ã«ã2 ã€ã® v1 ã³ã³ããã®ãã¡ 2 ã€ãç¡å¹ã«ããŠãæ£åžžãª v2 ã³ã³ããã XNUMX ã€ãæ£åžžãª vXNUMX ã³ã³ããã XNUMX ã€ãé害ã®ãã vXNUMX ã³ã³ããã XNUMX ã€ã«ãªãããã«ããŸãã
äžå ·åã®ä¿®æ£
ã³ã³ããã«æ¬ é¥ããããããããŒã«ã®æåºã®ææãæ¥ãŸããã éåžžã«åçŽãªæ§æã䜿çšããŠããã®å€±æããã³ã³ãããŒãã«ãŒãã£ã³ã° ã¹ããŒã ãã 15 ç§éé€å€ããã³ã³ãããŒãæ£åžžãªç¶æ ã«æ»ãããšãæåŸ ããŸã (åèµ·åãŸãã¯ããã©ãŒãã³ã¹ã®åŸ©å ã®ãããã)ã ãã®æ§æãšãã®äœæ¥ã®çµæã¯æ¬¡ã®ããã«ãªããŸãã
ã芧ã®ãšããã倱æãã v2 ã³ã³ããã¯ããŒã«ããåé€ãããããããªã¯ãšã¹ãã®ã«ãŒãã£ã³ã°ã«ã¯äœ¿çšãããªããªããŸããã ãã ãã15 ç§åŸã«ã¯èªåçã«ããŒã«ã«æ»ããŸãã å®éãç§ãã¡ã¯ããŒã«ã®æåºãã©ã®ããã«æ©èœãããã瀺ããã°ããã§ãã
建ç¯ãäœãå§ããŸããã
ããŒã«ã®æåºã Istio ã®ç£èŠæ©èœãšçµã¿åãããããšã§ãé害ã®ããã³ã³ãããèªåçã«çœ®ãæãããã¬ãŒã ã¯ãŒã¯ã®æ§ç¯ãéå§ããŠãããŠã³ã¿ã€ã ãé害ããªããããšã¯ã§ããªãã«ããŠããåæžããããšãã§ããŸãã
â
NASA ã«ã¯ã倱æã¯éžæè¢ã§ã¯ãªãããšãã声é«ãªã¢ãããŒãããããã®èè
ã¯ãã©ã€ããã£ã¬ã¯ã¿ãŒã§ãããšèããããŠããŸãã
äžã§æžããããã«ãIstio ã¯ãµãŒããã ãã¬ãŒã«ãŒã®æŠå¿µãå®è£ ããŠãããããã¯ç©çäžçã§ååã«å®èšŒãããŠããŸãã ãããŠãé»æ°ãµãŒããã ãã¬ãŒã«ãŒãåè·¯ã®åé¡ã»ã¯ã·ã§ã³ããªãã«ããã®ãšåãããã«ããšã³ããã€ã³ãã«äœãåé¡ãããå Žå (ããšãã°ããµãŒããŒãã¯ã©ãã·ã¥ãããããµãŒããŒãå£ãå§ãããããå Žå)ãIstio ã®ãœãããŠã§ã¢ ãµãŒããã ãã¬ãŒã«ãŒã¯ããªã¯ãšã¹ãã®ã¹ããªãŒã ãšåé¡ã®ããã³ã³ããã®éã®æ¥ç¶ãéããŸããæžéããã
ããã«ãXNUMX çªç®ã®ã±ãŒã¹ã§ã¯ãXNUMX ã€ã®ã³ã³ããã®ãã¬ãŒããããã«ã¢ã¯ã»ã¹ãããµãŒãã¹ã«é£éçãªé 延ãåŒãèµ·ããããã®çµæãã·ã¹ãã å šäœã®ããã©ãŒãã³ã¹ãäœäžããã ãã§ãªããç¹°ãè¿ãã®ãã§ã«å®è¡é床ãé ããµãŒãã¹ã«ãªã¯ãšã¹ããéä¿¡ãããšãç¶æ³ãæªåããã ãã§ãã
çè«äžã®ãµãŒããããã¬ãŒã«ãŒ
ãµãŒããã ãã¬ãŒã«ãŒã¯ããšã³ããã€ã³ããžã®ãªã¯ãšã¹ãã®ãããŒãå¶åŸ¡ãããããã·ã§ãã ãã®ãã€ã³ããåäœããªããªãããæå®ãããèšå®ã«ãã£ãŠã¯é床ãäœäžãå§ãããšããããã·ã¯ã³ã³ãããšã®æ¥ç¶ãåæããŸãã ãã®åŸããã©ãã£ãã¯ã¯åã«è² è·åæ£ã«ããä»ã®ã³ã³ããã«ãªãã€ã¬ã¯ããããŸãã æ¥ç¶ã¯ãç¹å®ã®ã¹ãªãŒã ãŠã£ã³ã㊠(ããšãã° XNUMX åé) ã®ééãããŸãŸã«ãªãããã®åŸã¯ååéãããšèŠãªãããŸãã 次ã®ãªã¯ãšã¹ããéä¿¡ããããšãããšãæ¥ç¶ã®ãã®åŸã®ç¶æ ã決ãŸããŸãã ãµãŒãã¹ã«ãã¹ãŠåé¡ããªãå Žåãæ¥ç¶ã¯åäœç¶æ ã«æ»ããåã³éããããŸãã ããã§ããµãŒãã¹ã«åé¡ãããå Žåã¯ãæ¥ç¶ãåæãããã¹ãªãŒã ãŠã£ã³ããŠãåã³æå¹ã«ãªããŸãã ç°¡ç¥åããããµãŒããã ãã¬ãŒã«ãŒã®ç¶æ å³ã¯æ¬¡ã®ããã«ãªããŸãã
ããã§éèŠãªã®ã¯ãããã¯ãã¹ãŠãããã°ã·ã¹ãã ã¢ãŒããã¯ãã£ã®ã¬ãã«ã§çºçãããšããããšã§ãã ãããã£ãŠãããæç¹ã§ãå¿çãšããŠããã©ã«ãå€ãæäŸããããå¯èœã§ããã°ãµãŒãã¹ã®ååšãç¡èŠãããªã©ãã¢ããªã±ãŒã·ã§ã³ã« Circuit Breaker ã§åäœããããã«æããå¿
èŠããããŸãã ããã«ã¯ãã«ã¯ããã ãã¿ãŒã³ã䜿çšãããŸãããããã«ã€ããŠã¯ãã®èšäºã®ç¯å²ãè¶
ããŠããŸãã
ãµãŒããããã¬ãŒã«ãŒã®å®è·µ
ããšãã°ãOpenShift äžã§ã¬ã³ã¡ã³ããŒã·ã§ã³ ãã€ã¯ããµãŒãã¹ã® 1 ã€ã®ããŒãžã§ã³ãå®è¡ããŸãã ããŒãžã§ã³ 2 ã¯æ£åžžã«åäœããŸãããvXNUMX ã§ã¯ãµãŒããŒã®é床äœäžãã·ãã¥ã¬ãŒãããããã«é
延ãçµã¿èŸŒã¿ãŸãã çµæã衚瀺ããã«ã¯ãããŒã«ã䜿çšããŸã
siege -r 2 -c 20 -v customer-tutorial.$(minishift ip).nip.io
ãã¹ãŠãæ©èœããŠããããã«èŠããŸãããã³ã¹ãã¯ãããã§ãããã? äžèŠãããšãããå¯çšæ§ã¯ 100% ã§ããããã«èŠããŸãããããèŠãŠã¿ããšãæ倧ãã©ã³ã¶ã¯ã·ã§ã³æé㯠12 ç§ã«ããªããŸãã ããã¯æããã«ããã«ããã¯ã§ãããæ¡åŒµããå¿
èŠããããŸãã
ãããè¡ãã«ã¯ãIstio ã䜿çšããŠãé ãã³ã³ãããŒãžã®åŒã³åºããæé€ããŸãã ããã¯ãCircuit Breaker ã䜿çšãã察å¿ããæ§æãã©ã®ããã«èŠãããã§ãã
httpMaxRequestsPerConnection ãã©ã¡ãŒã¿ãå«ãæåŸã®è¡ã¯ãæ¢åã®æ¥ç¶ã«å ããŠå¥ã® (503 çªç®ã®) æ¥ç¶ãäœæããããšãããšãã«æ¥ç¶ãåæããå¿
èŠãããããšã瀺ããŸãã ç§ãã¡ã®ã³ã³ããã¯é
ããµãŒãã¹ãã·ãã¥ã¬ãŒãããŠããããããã®ãããªç¶æ³ãå®æçã«çºçããIstio 㯠XNUMX ãšã©ãŒãè¿ããŸãããããã siege ã§è¡šç€ºãããå
容ã§ãã
OKããµãŒããããã¬ãŒã«ãŒã¯ã§ããã次ã¯äœãããïŒ
ããã§ããµãŒãã¹èªäœã®ãœãŒã¹ã³ãŒãã«ã¯äžå觊ããã«èªåã·ã£ããããŠã³ãå®è£ ããŸããã ãµãŒããã ãã¬ãŒã«ãŒãšäžèšã®ããŒã«æåºæé ã䜿çšãããšããã¬ãŒã ã³ã³ãããŒãéåžžã«æ»ããŸã§ãªãœãŒã¹ ããŒã«ããåé€ããæå®ããé »åºŠã§ã¹ããŒã¿ã¹ã確èªã§ããŸãããã®äŸã§ã¯ããã㯠XNUMX åã§ã (sleepWindow ãã©ã¡ãŒã¿ãŒ)ã
503 ãšã©ãŒã«å¿çããã¢ããªã±ãŒã·ã§ã³ã®æ©èœã¯äŸç¶ãšããŠãœãŒã¹ ã³ãŒã ã¬ãã«ã§èšå®ãããŠããããšã«æ³šæããŠãã ããã ãµãŒããããã¬ãŒã«ãŒã䜿çšããã«ã¯ãç¶æ³ã«å¿ããŠããŸããŸãªæŠç¥ããããŸãã
次ã®æçš¿ã§ã¯: ãã§ã«çµã¿èŸŒãŸããŠããããŸã㯠Istio ã«ç°¡åã«è¿œå ã§ãããã¬ãŒã¹ãšã¢ãã¿ãªã³ã°ãããã³ã·ã¹ãã ã«æå³çã«ãšã©ãŒãå°å
¥ããæ¹æ³ã«ã€ããŠèª¬æããŸãã
åºæïŒ habr.com