ã€ã³ã¿ãŒãããäž
ããã§ã¯ãXNUMX ãè¶
ãããã€ã¯ããµãŒãã¹äžã«æ§ç¯ãããã³ã³ããå
ã®æ°åã®ã¢ããªã±ãŒã·ã§ã³ããµããŒããã dotCloud ãã©ãããã©ãŒã ã«ã€ããŠèª¬æããŸãã éçºãšç«ã¡äžãã§ééãã課é¡ãšããµãŒãã¹ ã¡ãã·ã¥ãã©ã®ããã«åœ¹ç«ã€ã (ãŸãã¯åœ¹ã«ç«ããªãã) ã«ã€ããŠèª¬æããŸãã
dotCloudã®æŽå²
dotCloud ã®æŽå²ãšãã®ãã©ãããã©ãŒã ã®ã¢ãŒããã¯ãã£ã®éžæã«ã€ããŠã¯æžããŸãããããããã¯ãŒã¯å±€ã«ã€ããŠã¯ããŸã話ããŠããŸããã§ããã èªæžã«æ²¡é ããããªãå Žåã¯ã
ãã©ãã£ãã¯ãã©ã®ããã«ã㊠dotCloud ãã©ãããã©ãŒã ã«èªå°ããããã説æããŸãã ããã¯ç¹ã«ã¯ãŒã«ã ã£ãããã§ã¯ãããŸãã (ã·ã¹ãã ã¯åœæãšããŠã¯ããŸãæ©èœããŸããã!)ãäž»ã«ãææ°ã®ããŒã«ã䜿ãã°ãæã®éã§ãã©ãã£ãã¯ãã«ãŒãã£ã³ã°ããæ¹æ³ãå¿ èŠãªå Žåããã®ãããªèšèšã¯å°èŠæš¡ãªããŒã ã§ãçæéã§ç°¡åã«å®è£ ã§ããããã§ãããã€ã¯ããµãŒãã¹ãã¢ããªã±ãŒã·ã§ã³ã®æã ããããããšã§ããã¹ãŠãèªåã§éçºããå Žåãšæ¢åã®ãµãŒãã¹ ã¡ãã·ã¥ã䜿çšããå Žåã«äœãèµ·ããããšãããªãã·ã§ã³ãæ¯èŒã§ããŸãã æšæºçãªéžæã¯ãèªåã§äœããè³Œå ¥ããããšã§ãã
ãã¹ãåã¢ããªã±ãŒã·ã§ã³ã®ãã©ãã£ã㯠ã«ãŒãã£ã³ã°
dotCloud äžã®ã¢ããªã±ãŒã·ã§ã³ã¯ãHTTP ããã³ TCP ãšã³ããã€ã³ããå ¬éã§ããŸãã
HTTPãšã³ããã€ã³ã ããŒããã©ã³ãµã¯ã©ã¹ã¿æ§æã«åçã«è¿œå ããã
ãã¡ã€ã³åã dotCloud ããŒã ãã©ã³ãµãŒãæããŠããå Žåãã¯ã©ã€ã¢ã³ãã¯é©åãªãã¡ã€ã³ãä»ã㊠HTTP ãšã³ããã€ã³ãã«æ¥ç¶ããŸãã ç¹ã«ãªãã
TCPãšã³ããã€ã³ã ããŒãçªå·ã«é¢é£ä»ããããç°å¢å€æ°ãä»ããŠãã®ã¹ã¿ãã¯å ã®ãã¹ãŠã®ã³ã³ããã«æž¡ãããŸãã
ã¯ã©ã€ã¢ã³ãã¯ãé©åãªãã¹ãå (gateway-X.dotcloud.com ãªã©) ãšããŒãçªå·ã䜿çšã㊠TCP ãšã³ããã€ã³ãã«æ¥ç¶ã§ããŸãã
ãã®ãã¹ãåã¯ãnatsããµãŒã㌠ã¯ã©ã¹ã¿ãŒã«è§£æ±ºãããŸã (ãµãŒã㌠ã¯ã©ã¹ã¿ãŒãšã¯é¢ä¿ãããŸãã)ã
Kubernetes ã«ç²ŸéããŠããå Žåã¯ããããããµãŒãã¹ãæãåºãã§ãããã
dotCloud ãã©ãããã©ãŒã ã«ã¯åçã®ãµãŒãã¹ããããŸããã§ãã
ãã¹ãŠãéåžžã«ã·ã³ãã«ã«æ§æãããŠããŸãããHTTP ããã³ TCP ã«ãŒãã£ã³ã° ãããã¯ãŒã¯ã®åæå®è£ ã¯ããããããããããããæ°çŸè¡ã® Python ã§ããã ãã©ãããã©ãŒã ãæé·ããè¿œå ã®èŠä»¶ãçŸããã«ã€ããŠæŽç·ŽããããåçŽãª (åçŽãª) ã¢ã«ãŽãªãºã ã
æ¢åã®ã³ãŒãã®å€§èŠæš¡ãªãªãã¡ã¯ã¿ãªã³ã°ã¯å¿
èŠãããŸããã§ããã ç¹ã«ã
ããã¯ææ°ã®ãµãŒãã¹ ã¡ãã·ã¥ãšã©ãéãã®ã§ãããã?
éå® å¯èŠæ§ã TCP ã«ãŒãã£ã³ã° ã¡ãã·ã¥ã®ã¡ããªã¯ã¹ã¯ãŸã£ãããããŸããã§ããã HTTP ã«ãŒãã£ã³ã°ã«é¢ããŠã¯ãåŸã®ããŒãžã§ã³ã§ã¯ãšã©ãŒ ã³ãŒããšå¿çæéã«ãã詳现㪠HTTP ã¡ããªã¯ã¹ãå°å ¥ãããŸããããææ°ã®ãµãŒãã¹ ã¡ãã·ã¥ã¯ããã«é²åããããšãã° Prometheus ãªã©ã®ã¡ããªã¯ã¹åéã·ã¹ãã ãšã®çµ±åãæäŸããŸãã
å¯èŠæ§ã¯ãéçšäžã®èŠ³ç¹ (åé¡ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ã«åœ¹ç«ã€) ã ãã§ãªããæ°æ©èœããªãªãŒã¹ããããšãã«ãéèŠã§ãã å®å
šã«ã€ããŠè©±ã
ã«ãŒãã£ã³ã°å¹ç ãéãããŠããŸãã dotCloud ã«ãŒãã£ã³ã° ã¡ãã·ã¥ã§ã¯ããã¹ãŠã®ãã©ãã£ãã¯ãå°çšã«ãŒãã£ã³ã° ããŒãã®ã¯ã©ã¹ã¿ãŒãééããå¿ èŠããããŸããã ããã¯ãè€æ°ã® AZ (ã¢ãã€ã©ããªã㣠ãŸãŒã³) å¢çãè¶ããå¯èœæ§ããããã¬ã€ãã³ã·ãå€§å¹ ã«å¢å ããããšãæå³ããŸããã ããŒãžããšã« XNUMX ãè¶ ãã SQL ã¯ãšãªãäœæããã¯ãšãªããšã« SQL ãµãŒããŒãžã®æ°ããæ¥ç¶ãéãã³ãŒãã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ãèŠããŠããŸãã ããŒã«ã«ã§å®è¡ãããšããŒãžã¯å³åº§ã«èªã¿èŸŒãŸããŸãããdotCloud ã§ã¯å TCP æ¥ç¶ (ããã³åŸç¶ã® SQL ã¯ãšãª) ã«æ°åããªç§ããããããèªã¿èŸŒã¿ã«æ°ç§ããããŸãã ãã®ç¹å®ã®ã±ãŒã¹ã§ã¯ãæ°žç¶çãªæ¥ç¶ã«ãã£ãŠåé¡ã解決ãããŸããã
ææ°ã®ãµãŒãã¹ ã¡ãã·ã¥ã¯ããã®ãããªåé¡ãžã®å¯ŸåŠã«åªããŠããŸãã ãŸãæåã«ãæ¥ç¶ãã«ãŒãã£ã³ã°ãããŠããããšã確èªããŸãã ãœãŒã¹ã§ã è«ççãªæµãã¯åãã§ãã ÐºÐ»ÐžÐµÐœÑ â ÐŒÐµÑ â ÑеÑвОÑ
ãã ããã¡ãã·ã¥ã¯ãªã¢ãŒã ããŒãã§ã¯ãªãããŒã«ã«ã§åäœãããããæ¥ç¶ã¯ ÐºÐ»ÐžÐµÐœÑ â ЌеÑ
ããŒã«ã«ã§éåžžã«é«éã§ã (ããªç§ã§ã¯ãªããã€ã¯ãç§)ã
ææ°ã®ãµãŒãã¹ ã¡ãã·ã¥ã§ã¯ãããã¹ããŒããªè² è·åæ£ã¢ã«ãŽãªãºã ãå®è£ ãããŠããŸãã ããã¯ãšã³ãã®ç¶æ ãç£èŠããããšã§ãããå€ãã®ãã©ãã£ãã¯ãããé«éãªããã¯ãšã³ãã«éä¿¡ã§ããããã«ãªããå šäœçãªããã©ãŒãã³ã¹ãåäžããŸãã
ã»ãã¥ãªã㣠ãè¯ãã§ãã dotCloud ã«ãŒãã£ã³ã° ã¡ãã·ã¥ã¯å®å šã« EC2 Classic äžã§å®è¡ããããã©ãã£ãã¯ã¯æå·åãããŸããã§ãã (誰ãã EC2 ãããã¯ãŒã¯ ãã©ãã£ãã¯ã«ã¹ããã¡ãŒãèšçœ®ã§ããå Žåããã§ã«å€§ããªåé¡ã«é¥ã£ãŠãããšããæ³å®ã«åºã¥ããŠããŸã)ã ææ°ã®ãµãŒãã¹ ã¡ãã·ã¥ã¯ãçžäº TLS èªèšŒãšãã®åŸã®æå·åãªã©ã«ããããã¹ãŠã®ãã©ãã£ãã¯ãééçã«ä¿è·ããŸãã
ãã©ãããã©ãŒã ãµãŒãã¹ã®ãã©ãã£ãã¯ã«ãŒãã£ã³ã°
ããŠãã¢ããªã±ãŒã·ã§ã³éã®ãã©ãã£ãã¯ã«ã€ããŠèª¬æããŸããããdotCloud ãã©ãããã©ãŒã èªäœã«ã€ããŠã¯ã©ããªã®ã§ãããã?
ãã©ãããã©ãŒã èªäœã¯ãããŸããŸãªæ©èœãæ åœããçŽ XNUMX ã®ãã€ã¯ããµãŒãã¹ã§æ§æãããŠããŸããã ä»ã®ãµãŒãã¹ããã®ãªã¯ãšã¹ããåãå ¥ããŠãããã®ãããã°ãä»ã®ãµãŒãã¹ã«æ¥ç¶ãããã®ã®æ¥ç¶èªäœã¯åãä»ããªãããã¯ã°ã©ãŠã³ã ã¯ãŒã«ãŒãããŸãã ãããã®å ŽåããåãµãŒãã¹ã¯æ¥ç¶ããå¿ èŠãããã¢ãã¬ã¹ã®ãšã³ããã€ã³ããç¥ã£ãŠããå¿ èŠããããŸãã
å€ãã®é«ã¬ãã«ã®ãµãŒãã¹ã¯ãäžèšã®ã«ãŒãã£ã³ã° ã¡ãã·ã¥ã䜿çšããå ŽåããããŸãã å®éãXNUMX ãè¶ ãã dotCloud ãã€ã¯ããµãŒãã¹ã®å€ãã¯ãdotCloud ãã©ãããã©ãŒã èªäœã«éåžžã®ã¢ããªã±ãŒã·ã§ã³ãšããŠãããã€ãããŠããŸãã ããããå°æ°ã®äœã¬ãã« ãµãŒãã¹ (ç¹ã«ããã®ã«ãŒãã£ã³ã° ã¡ãã·ã¥ãå®è£ ãããµãŒãã¹) ã«ã¯ãäŸåé¢ä¿ãå°ãªããããåçŽãªãã®ãå¿ èŠã§ãã (ãªããªãããµãŒãã¹èªäœãæ©èœããããšã«äŸåã§ããªãããã§ããå€ãè¯ãé¶ãå ãåµãå ãã®åé¡ã§ã)ã
ãããã®äœã¬ãã«ã®ããã·ã§ã³ã¯ãªãã£ã«ã«ãªãµãŒãã¹ã¯ãããã€ãã®äž»èŠãªããŒãã§ã³ã³ãããçŽæ¥å®è¡ããããšã«ãã£ãŠãããã€ãããŸããã ãã®å Žåãæšæºã®ãã©ãããã©ãŒã ãµãŒãã¹ (ãªã³ã«ãŒãã¹ã±ãžã¥ãŒã©ãŒãã©ã³ããŒ) ã¯äœ¿çšãããŸããã§ããã ææ°ã®ã³ã³ãã ãã©ãããã©ãŒã ã«äŸãããšã次ã®ããã«ããŠã³ã³ãããŒã« ãã¬ãŒã³ãå®è¡ãããããªãã®ã§ãã docker run
ã¿ã¹ã¯ã Kubernetes ã«å§ä»»ããã®ã§ã¯ãªããããŒãäžã§çŽæ¥å®è¡ããŸãã ã³ã³ã»ãããšããŠã¯ããªã䌌ãŠããŸã
ãããã®ãµãŒãã¹ã¯åçŽãã€ç²éãªæ¹æ³ã§å ¬éãããŸãããYAML ãã¡ã€ã«ã«ã¯ãµãŒãã¹ã®ååãšã¢ãã¬ã¹ããªã¹ããããŠããŸããã åã¯ã©ã€ã¢ã³ãã¯ãå±éçšã«ãã® YAML ãã¡ã€ã«ã®ã³ããŒãååŸããå¿ èŠããããŸããã
äžæ¹ã§ãZookeeper ãªã©ã®å€éšããŒ/å€ã¹ãã¢ã®ãµããŒããå¿ èŠãšããªããããéåžžã«ä¿¡é Œæ§ãé«ããªããŸã (åœæ㯠etcd ã Consul ãååšããªãã£ãããšãæãåºããŠãã ãã)ã äžæ¹ã§ããµãŒãã¹ã®ç§»è¡ãé£ãããªã£ãã 移åãè¡ããããã³ã«ããã¹ãŠã®ã¯ã©ã€ã¢ã³ãã¯æŽæ°ããã YAML ãã¡ã€ã«ãåä¿¡ããŸã (å Žåã«ãã£ãŠã¯åèµ·åããŸã)ã ããŸãå¿«é©ã§ã¯ãããŸãã!
ãã®åŸãåã¯ã©ã€ã¢ã³ããããŒã«ã« ãããã· ãµãŒããŒã«æ¥ç¶ããæ°ããã¹ããŒã ã®å®è£
ãéå§ããŸããã ã¢ãã¬ã¹ãšããŒãã®ä»£ããã«ããµãŒãã¹ã®ããŒãçªå·ãç¥ãå¿
èŠãããã ãã§ã次ã®æ¹æ³ã§æ¥ç¶ã§ããŸãã localhost
ã ããŒã«ã« ãããã·ã¯ãã®æ¥ç¶ãåŠçããå®éã®ãµãŒããŒã«è»¢éããŸãã ããã¯ãšã³ããå¥ã®ãã·ã³ã«ç§»åãããã¹ã±ãŒãªã³ã°ãããããå Žåããã¹ãŠã®ã¯ã©ã€ã¢ã³ããæŽæ°ããã®ã§ã¯ãªããããããã¹ãŠã®ããŒã«ã« ãããã·ã®ã¿ãæŽæ°ããå¿
èŠããããŸãã åèµ·åã¯å¿
èŠãªããªããŸããã
(TLS æ¥ç¶ã®ãã©ãã£ãã¯ãã«ãã»ã«åããåä¿¡åŽã«å¥ã®ãããã· ãµãŒããŒãé
眮ããåä¿¡åŽãµãŒãã¹ã®åå ãªã㧠TLS 蚌ææžãæ€èšŒããããšãèšç»ãããŠããŸãããåä¿¡åŽãµãŒãã¹ã¯ãæ¥ç¶ã®ã¿ãåãå
¥ããããã«æ§æãããŠããŸã) localhost
ã ããã«ã€ããŠã¯åŸã§è©³ãã説æããŸãïŒã
ããã¯éåžžã«ãã䌌ãŠããŸã
ç§ã¯å人çã«ãSmartStack 㯠IstioãLinkerdãConsul Connect ãªã©ã®ã·ã¹ãã ã®å身ã§ãããšèããŠããŸãããããã¯ãã¹ãŠåããã¿ãŒã³ã«åŸã£ãŠããããã§ãã
- åããŒãã§ãããã·ãå®è¡ããŸãã
- ã¯ã©ã€ã¢ã³ãã¯ãããã·ã«æ¥ç¶ããŸãã
- ããã¯ãšã³ããå€æŽããããšãã³ã³ãããŒã« ãã¬ãŒã³ã¯ãããã·æ§æãæŽæ°ããŸãã
- ⊠å©çïŒ
ãµãŒãã¹ ã¡ãã·ã¥ã®ææ°ã®å®è£
ä»æ¥ãåæ§ã®ã°ãªãããå®è£
ããå¿
èŠãããå Žåãåæ§ã®ååã䜿çšã§ããŸãã ããšãã°ããµãŒãã¹åã空éå
ã®ã¢ãã¬ã¹ã«ãããã³ã°ããŠå
éš DNS ãŸãŒã³ãèšå®ããŸãã 127.0.0.0/8
ã 次ã«ãã¯ã©ã¹ã¿ãŒå
ã®åããŒã㧠HAProxy ãå®è¡ããåãµãŒãã¹ ã¢ãã¬ã¹ (ãã®ãµããããå
) ã§ã®æ¥ç¶ãåãå
¥ããŸãã 127.0.0.0/8
) ããã³è² è·ãé©åãªããã¯ãšã³ãã«ãªãã€ã¬ã¯ã/ãã©ã³ã¹ããŸãã HAProxyæ§æãå¶åŸ¡å¯èœ
ããã Istio ã®ä»çµã¿ãšã»ãšãã©åãã§ãã ãã ããããã€ãã®éãããããŸã:
- çšé
ç¹äœ¿ä»£ç人 HAProxy ã®ä»£ããã«ã - etcd ã Consul ã§ã¯ãªããKubernetes API çµç±ã§ããã¯ãšã³ãæ§æãä¿åããŸãã
- ãµãŒãã¹ã«ã¯ã127.0.0.0/8 ã§ã¯ãªããå éšãµããããäžã®ã¢ãã¬ã¹ (Kubernetes ClusterIP ã¢ãã¬ã¹) ãå²ãåœãŠãããŸãã
- ã¯ã©ã€ã¢ã³ããšãµãŒããŒéã®çžäº TLS èªèšŒãè¿œå ããè¿œå ã³ã³ããŒãã³ã (Citadel) ããããŸãã
- ãµãŒããã ãã¬ãŒã¯ãåæ£ãã¬ãŒã¹ãã«ããªã¢ ãããã€ã¡ã³ããªã©ã®æ°æ©èœããµããŒãããŸãã
ããã€ãã®éããç°¡åã«èŠãŠã¿ãŸãããã
ç¹äœ¿ä»£ç人
Envoy Proxy 㯠Lyft (ã¿ã¯ã·ãŒåžå Žã«ããã Uber ã®ç«¶åäŒæ¥ - çŽ XNUMX äžå) ã«ãã£ãŠäœæãããŸããã ãããã]ã ããã¯ä»ã®ãããã· (HAProxyãNginxãTraefik ãªã©) ãšå€ãã®ç¹ã§äŒŒãŠããŸãããLyft ãç¬èªã«äœæããã®ã¯ãä»ã®ãããã·ã«ã¯ãªãæ©èœãå¿ èŠã§ãããæ¡åŒµãããããæ°ãããããã·ãäœæããæ¹ãè³¢æã§ãããšæãããããã§ããæ¢åã®ãã®ã
Envoy ã¯åç¬ã§ã䜿çšã§ããŸãã ä»ã®ãµãŒãã¹ã«æ¥ç¶ããå¿ èŠãããç¹å®ã®ãµãŒãã¹ãããå Žåã¯ããã®ãµãŒãã¹ã Envoy ã«æ¥ç¶ããããã«æ§æããä»ã®ãµãŒãã¹ã®å Žæã䜿çšã㊠Envoy ãåçã«æ§æããã³åæ§æãããšåæã«ãå¯èŠæ§ãªã©ã®å€ãã®åªããè¿œå æ©èœãå©çšã§ããŸãã ã«ã¹ã¿ã ã¯ã©ã€ã¢ã³ã ã©ã€ãã©ãªã䜿çšããããã³ãŒãã«åŒã³åºããã¬ãŒã¹ãæ¿å ¥ããããã代ããã«ãEnvoy ã«ãã©ãã£ãã¯ãéä¿¡ããEnvoy ãã¡ããªã¯ã¹ãåéããŸãã
ãã ããEnvoy ã¯æ¬¡ã®ããã«åäœããããšãã§ããŸãã ããŒã¿ãã¬ãŒã³ ãµãŒãã¹ ã¡ãã·ã¥ã® (ããŒã¿ ãã¬ãŒã³)ã ããã¯ãEnvoy ããã®ãµãŒãã¹ ã¡ãã·ã¥çšã«æ§æãããããšãæå³ããŸã ã³ã³ãããŒã«ãã¬ãŒã³ (ã³ã³ãããŒã«ãã¬ãŒã³)ã
ã³ã³ãããŒã«ãã¬ãŒã³
ã³ã³ãããŒã« ãã¬ãŒã³ã®å ŽåãIstio 㯠Kubernetes API ã«äŸåããŸãã ãã㯠confd ã䜿çšããã®ãšããŸãå€ãããŸãããetcd ãŸã㯠Consul ã«äŸåããŠãããŒã¿ ã¹ãã¢å ã®ããŒã®ã»ãããæ€çŽ¢ããŸãã Istio ã¯ãKubernetes API ãéã㊠Kubernetes ãªãœãŒã¹ã®ã»ããã調ã¹ãŸãã
ãããšãã®éïŒå人çã«ããã¯äŸ¿å©ã ãšæããŸãã
Kubernetes API ãµãŒããŒã¯ãAPI ãªãœãŒã¹ã®ã¹ãã¬ãŒãžãããŒãžã§ã³ç®¡çãæ€èšŒãæŽæ°ãã»ãã³ãã£ã¯ã¹ãæäŸããããã ãµãŒããŒãã§ãã
Istio 㯠Kubernetes ãšé£æºããããã«èšèšãããŠããŸãã Kubernetes ã®å€éšã§äœ¿çšããå Žåã¯ãKubernetes API ãµãŒã㌠(ããã³ etcd ãã«ã㌠ãµãŒãã¹) ã®ã€ã³ã¹ã¿ã³ã¹ãå®è¡ããå¿ èŠããããŸãã
ãµãŒãã¹ã¢ãã¬ã¹
Istio 㯠Kubernetes ãå²ãåœãŠã ClusterIP ã¢ãã¬ã¹ã«äŸåããŠãããããIstio ãµãŒãã¹ã¯å
éšã¢ãã¬ã¹ (ç¯å²å€) ãåãåããŸãã 127.0.0.0/8
).
Istio ã䜿çšããªã Kubernetes ã¯ã©ã¹ã¿ãŒå ã®ç¹å®ã®ãµãŒãã¹ã® ClusterIP ã¢ãã¬ã¹ãžã®ãã©ãã£ãã¯ã¯ãkube-proxy ã«ãã£ãŠã€ã³ã¿ãŒã»ããããããããã·ã®ããã¯ãšã³ãã«éä¿¡ãããŸãã æè¡çãªè©³çŽ°ã«èå³ãããå Žåã¯ãkube-proxy ã iptables ã«ãŒã« (ãŸãã¯ãæ§ææ¹æ³ã«å¿ã㊠IPVS ããŒã ãã©ã³ãµãŒ) ãã»ããã¢ããããŠãClusterIP ã¢ãã¬ã¹ã«åããæ¥ç¶ã®å®å IP ã¢ãã¬ã¹ãæžãæããŸãã
Istio ã Kubernetes ã¯ã©ã¹ã¿ãŒã«ã€ã³ã¹ããŒã«ããããšãã³ã³ãããŒãå°å
¥ããŠç¹å®ã®ã³ã³ã·ã¥ãŒããŒãããã«ã¯åå空éå
šäœã«å¯ŸããŠæ瀺çã«æå¹ã«ãããŸã§ãäœãå€ãããŸããã sidecar
ã«ã¹ã¿ã ãããã«ã ãã®ã³ã³ãã㯠Envoy ã€ã³ã¹ã¿ã³ã¹ãèµ·åããä»ã®ãµãŒãã¹ã«åãããã©ãã£ãã¯ãã€ã³ã¿ãŒã»ãããããã®ãã©ãã£ãã¯ã Envoy ã«ãªãã€ã¬ã¯ãããäžé£ã® iptables ã«ãŒã«ãèšå®ããŸãã
Kubernetes DNS ãšçµ±åãããšãã³ãŒãããµãŒãã¹åã§æ¥ç¶ã§ããããã«ãªãããã¹ãŠããæ£åžžã«åäœãããããšã«ãªããŸãã ã€ãŸããã³ãŒãã¯æ¬¡ã®ãããªã¯ãšãªãçºè¡ããŸãã http://api/v1/users/4242
ãããã api
ïœã®ãªã¯ãšã¹ãã解決ãã 10.97.105.48
ã®å Žåãiptables ã«ãŒã«ã¯ 10.97.105.48 ããã®æ¥ç¶ãã€ã³ã¿ãŒã»ããããããŒã«ã«ã® Envoy ãããã·ã«ãªãã€ã¬ã¯ããããªã¯ãšã¹ããå®éã® API ããã¯ãšã³ãã«è»¢éããŸãã ãµãïŒ
è¿œå ã®ããªã«
Istio ã¯ãmTLS (çžäº TLS) ãä»ãããšã³ãããŒãšã³ãã®æå·åãšèªèšŒãæäŸããŸãã ãšåŒã°ããã³ã³ããŒãã³ã èŠå¡.
ã³ã³ããŒãã³ãããããŸã ãããµãŒEnvoy ããªã¯ãšã¹ãã§ãããã® ããããã® ãªã¯ãšã¹ãã¯ãããããŒãããã¯ãšã³ãã®è² è·ãªã©ã®ããŸããŸãªèŠå ã«å¿ããŠããã®ãªã¯ãšã¹ãã«ã€ããŠç¹å¥ãªæ±ºå®ãäžãå¿ èŠããããŸã... (å¿é ããªãã§ãã ãããMixer ãå®è¡ãç¶ããæ¹æ³ã¯ãããããããããšãã¯ã©ãã·ã¥ããŠã Envoy ã¯åäœãç¶ããŸã)代çãšããŠåé¡ãããŸããïŒã
ãããŠãã¡ãããå¯èŠæ§ã«ã€ããŠã觊ããŸãããEnvoy ã¯åæ£ãã¬ãŒã¹ãæäŸããªãããèšå€§ãªéã®ã¡ããªã¯ã¹ãåéããŸãã ãã€ã¯ããµãŒãã¹ ã¢ãŒããã¯ãã£ã§ã¯ãåäžã® API ãªã¯ãšã¹ãããã€ã¯ããµãŒãã¹ AãBãCãD ãçµç±ããå¿ èŠãããå Žåããã°ã€ã³æã«åæ£ãã¬ãŒã¹ã«ãã£ãŠäžæã®èå¥åããªã¯ãšã¹ãã«è¿œå ããããã®èå¥åãããããã¹ãŠã®ãã€ã¯ããµãŒãã¹ãžã®ãµããªã¯ãšã¹ããéããŠä¿åãããŸããé¢é£ãããã¹ãŠã®é話ããã®é 延ãªã©ããã£ããã£ã§ããŸãã
éçºãããè³Œå ¥ããã
Istio ã¯è€éã§ãããšããè©å€ããããŸãã å¯Ÿç §çã«ããã®æçš¿ã®åé ã§èª¬æããã«ãŒãã£ã³ã° ã¡ãã·ã¥ã®æ§ç¯ã¯ãæ¢åã®ããŒã«ã䜿çšããããšã§æ¯èŒçç°¡åã§ãã ã§ã¯ã代ããã«ç¬èªã®ãµãŒãã¹ ã¡ãã·ã¥ãäœæããããšã¯æå³ãããã®ã§ãããã?
ããçšåºŠã®ããŒãºãããå Žå (å¯èŠæ§ããµãŒããã ãã¬ãŒã«ãŒããã®ä»ã®åŸ®åŠãªæ©èœã¯å¿ èŠãããŸãã)ãç¬èªã®ããŒã«ãéçºããããšãèããŸãã ããããKubernetes ã䜿çšããå ŽåãKubernetes ã¯ãã§ã«ãµãŒãã¹æ€åºãšè² è·åæ£ã®ããã®åºæ¬çãªããŒã«ãæäŸããŠãããããKubernetes ã¯å¿ èŠãªãå¯èœæ§ããããŸãã
ããããé«åºŠãªèŠä»¶ãããå Žåã¯ããµãŒãã¹ ã¡ãã·ã¥ããè³Œå ¥ãããæ¹ãã¯ããã«è¯ãéžæè¢ã®ããã«æããŸãã (Istio ã¯ãªãŒãã³ãœãŒã¹ã§ãããããããã¯å¿ ããããè³Œå ¥ããšããããã§ã¯ãããŸããããIstio ãç解ããå±éãã管çããããã«ãšã³ãžãã¢ãªã³ã°æéãæè³ããå¿ èŠããããŸãã)
IstioãLinkerdããŸã㯠Consul Connect ãéžæããå¿ èŠããããŸãã?
ãããŸã§ã¯ Istio ã«ã€ããŠã®ã¿èª¬æããŸãããããµãŒãã¹ ã¡ãã·ã¥ã¯ããã ãã§ã¯ãããŸããã 人æ°ã®ãã代æ¿å -
äœãéžæããã«ã¯ïŒ
æ£çŽã«èšããšãåãããŸããã çŸæç¹ã§ã¯ãç§ã«ã¯ãã®è³ªåã«çããã®ã«ååãªèœåããããšã¯èããŠããŸããã ããã€ããããŸã
ææãªã¢ãããŒãã® XNUMX ã€ã¯ã次ã®ãããªããŒã«ã䜿çšããããšã§ãã
Istio ãš SuperGloo ãå°ãè©ŠããŠã¿ãŸããã次ã®èšäºã§ã¯ãSuperGloo ã䜿çšããŠæ¢åã®ã¯ã©ã¹ã¿ãŒã« Istio ãŸã㯠Linkerd ãè¿œå ããæ¹æ³ãšãåŸè
ãã©ã®ããã«æ©èœãããã瀺ããããšæããŸããæ§æãæžãæããããšãªãããããµãŒãã¹ ã¡ãã·ã¥ãå¥ã®ãµãŒãã¹ ã¡ãã·ã¥ã«ç§»è¡ã§ããŸãã
åºæïŒ habr.com