
ç¹å®ã®ã¢ããªã±ãŒã·ã§ã³ã«å¯ŸããŠKubernetesã¯ã©ã¹ã¿ãŒãèµ·åããå Žåãã¢ããªã±ãŒã·ã§ã³èªäœãããžãã¹ãããã³éçºè
ããã®ãªãœãŒã¹ã«å¯ŸããŠã©ã®ãããªèŠä»¶ãæç€ºããããçè§£ããå¿
èŠããããŸãã ãã®æ
å ±ãããã°ãã¢ãŒããã¯ãã£äžã®æ±ºå®ãäžãããšãã§ããŸããç¹ã«ãç¹å®ã®ã€ã³ã°ã¬ã¹ã³ã³ãããŒã©ãŒãéžæããããšãã§ããŸããã€ã³ã°ã¬ã¹ã³ã³ãããŒã©ãŒã®å€ãã¯ä»æ¥ãã§ã«ååšããŠããŸãã å€ãã®èšäº/ããã¥ã¡ã³ããªã©ãå匷ããããšãªãå©çšå¯èœãªãªãã·ã§ã³ã®åºæ¬çãªã¢ã€ãã¢ãåŸãããã«ãã¡ã€ã³ïŒçç£æºåå®äºïŒIngressã³ã³ãããŒã©ãŒãå«ããããšã§ãã®ã¬ãã¥ãŒãæºåããŸããã
å°ãªããšããããè©³çŽ°ãªæ
å ±ãšå®éã®å®éšã®åºçºç¹ã«ãªãããšãååãã¢ãŒããã¯ãã£ãœãªã¥ãŒã·ã§ã³ãéžæããã®ã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã 以åã¯ããããã¯ãŒã¯äžã®ä»ã®åæ§ã®è³æã調æ»ããŸããããå¥åŠãªããšã«ãå®å
šãªããããŠæãéèŠãª-æ§é åããã-åäžã®ã¬ãã¥ãŒã¯èŠã€ãããŸããã§ããã ã ããããã®ã®ã£ãããåããŠãã ããïŒ
åºæº
ååãšããŠãæ¯èŒãè¡ããæçšãªçµæãåŸãããã«ã¯ã察象åéã ãã§ãªããç ç©¶ãã¯ãã«ã決å®ããåºæºã®ç¹å®ã®ãªã¹ããçè§£ããå¿
èŠããããŸãã Ingress / Kubernetesã䜿çšããå¯èœæ§ã®ãããã¹ãŠã®ã±ãŒã¹ãåæãããµããããã«ãã³ã³ãããŒã©ãŒã®æãäžè¬çãªèŠä»¶ã匷調ããããšããŸãã-ãããã®å Žåã§ãããã¹ãŠã®è©³çްããã³è©³çްãåå¥ã«èª¿æ»ããå¿
èŠãããããšã«æ³šæããŠãã ããã
ãããããã¹ãŠã®ãœãªã¥ãŒã·ã§ã³ã§å®è£
ãããŠãããèæ
®ãããŠããªãã»ã©éŠŽæã¿ã®ããç¹åŸŽããå§ããŸãã
- ãµãŒãã¹ã®åççºèŠïŒãµãŒãã¹çºèŠïŒ;
- SSLçµäº;
- Websocketã§åäœããŸãã
æ¬¡ã«æ¯èŒãã€ã³ãã«ã€ããŠïŒ
ãµããŒããããŠãããããã³ã«
éžæã®åºæ¬çãªåºæºã®1ã€ã ãœãããŠã§ã¢ãæšæºã®HTTPã§åäœããªãå ŽåããäžåºŠã«å€ãã®ãããã³ã«ã§åäœããå¿
èŠãããå ŽåããããŸãã ã±ãŒã¹ãéæšæºã®å ŽåãåŸã§ã¯ã©ã¹ã¿ãŒãåæ§æããå¿
èŠããªãããã«ããã®èŠçŽ ãèæ
®ã«å
¥ããŠãã ããã ãã¹ãŠã®ã³ã³ãããŒã©ãŒã«ã€ããŠããµããŒãããããããã³ã«ã®ãªã¹ãã¯ç°ãªããŸãã
ãœãããŠã§ã¢ããŒã¹
ã³ã³ãããŒã©ãŒã®ããŒã¹ãšãªãããã€ãã®ã¢ããªã±ãŒã·ã§ã³ãªãã·ã§ã³ããããŸãã 人æ°ã®ãããã®ã¯nginxãtraefikãhaproxyãenvoyã§ãã äžè¬çãªã±ãŒã¹ã§ã¯ããã©ãã£ãã¯ã®éåä¿¡æ¹æ³ã«ã¯åœ±é¿ããŸãããããå
éšãã®æœåšçãªãã¥ã¢ã³ã¹ãšç¹åŸŽãç¥ãããšã¯åžžã«åœ¹ç«ã¡ãŸãã
ãã©ãã£ãã¯ã«ãŒãã£ã³ã°
ç¹å®ã®ãµãŒãã¹ãžã®ãã©ãã£ãã¯ã®æ¹åã«ã€ããŠãäœã«åºã¥ããŠå€æã§ããŸããïŒ ããã¯éåžžããã¹ããšãã¹ã§ããã远å ã®æ©èœããããŸãã
ã¯ã©ã¹ã¿ãŒåå空é
ããŒã ã¹ããŒã¹ïŒããŒã ã¹ããŒã¹ïŒ-Kubernetesã§ãªãœãŒã¹ãè«ççã«åå²ããæ©èœïŒã¹ããŒãžããããã¯ã·ã§ã³ãªã©ïŒã åããŒã ã¹ããŒã¹ã«åå¥ã«èšå®ããå¿
èŠãããIngressã³ã³ãããŒã©ãŒããããŸãïŒãããŠããã®ã¹ããŒã¹ã®ãããã«
ã®ã¿ãã©ãã£ãã¯ãèªå°ã§ããŸãïŒã ãŸããã¯ã©ã¹ã¿ãŒå
šäœã§ã°ããŒãã«ã«æ©èœããäžéšïŒããã³ãã®å§åç倿°ïŒããããŸãããããã®ãã©ãã£ãã¯ã¯ãåå空éã«é¢ä¿ãªããã¯ã©ã¹ã¿ãŒã®ä»»æã®ãããã«åããããŸãã
ã¢ããã¹ããªãŒã ã®ãµã³ãã«
ãã©ãã£ãã¯ã¯ã¢ããªã±ãŒã·ã§ã³ããµãŒãã¹ã®æ£åžžãªã€ã³ã¹ã¿ã³ã¹ã«ã©ã®ããã«éãããŸããïŒ ã¢ã¯ãã£ãããã³ããã·ããã§ãã¯ãå詊è¡ããµãŒããããã¬ãŒã«ãŒ
ïŒè©³çްã«ã€ããŠã¯ãããšãã°Istioã«é¢ããèšäºãåç
§ ïŒ ãã«ã¹ã¿ã ãã«ã¹ãã§ãã¯ã®å®è£
ãªã©ã®ãªãã·ã§ã³ããããŸãã ã¢ã¯ã»ã·ããªãã£ãšãã©ã³ã¹ãã倱æãããµãŒãã¹ãã¿ã€ã ãªãŒã«æ€åããããã®é«ãèŠä»¶ãããå Žåãéåžžã«éèŠãªãã©ã¡ãŒã¿ãŒã
ãã©ã³ã·ã³ã°ã¢ã«ãŽãªãºã
å€ãã®ãªãã·ã§ã³ããããŸãïŒåŸæ¥ã®
ã©ãŠã³ãããã³ãã
rdp-cookiesã®ãããªãšããŸããã¯ãªãã®ã
ãã㊠ã¹ãã£ãããŒã»ãã·ã§ã³ã®ãããªããã€ãã®æ©èœã§ãã
èªèšŒ
ã³ã³ãããŒã©ã¯ã©ã®èªå¯ã¹ããŒã ããµããŒãããŠããŸããïŒ Basicãdigestãoauthãexternal-auth-ãããã®ãªãã·ã§ã³ã¯ããªãã¿ã®ã¯ãã ãšæããŸãã ããã¯ãIngressãä»ããŠã¢ã¯ã»ã¹ããéçºè
ïŒããã³/ãŸãã¯åã«éãããã®ïŒã«å€ãã®åè·¯ã䜿çšããå Žåã®éèŠãªåºæºã§ãã
ãã©ãã£ãã¯ååž
ã³ã³ãããŒã©ãŒã¯ãã«ããªã¢ã®ããŒã«ã¢ãŠããA / Bãã¹ãããã©ãã£ãã¯ã®ãã©ãŒãªã³ã°ïŒãã©ãŒãªã³ã°/ã·ã£ããŒã€ã³ã°ïŒãªã©ã®ãã©ãã£ãã¯åæ£ã«ãã䜿çšãããã¡ã«ããºã ããµããŒãããŠããŸããïŒ ããã¯ãçç£çãªãã¹ããæŠéäžã§ã¯ãªãïŒãŸãã¯æå°éã®æå€±ã§ïŒè£œåãšã©ãŒã®ãããã°ããã©ãã£ãã¯åæãªã©ã®ããã«æ£ç¢ºã§æ£ç¢ºãªãã©ãã£ãã¯å¶åŸ¡ãå¿
èŠãšããã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠã¯æ¬åœã«çãããŒãã§ãã
ææãµãã¹ã¯ãªãã·ã§ã³
é«åºŠãªæ©èœãæè¡ãµããŒããåããã³ã³ãããŒã©ãŒã®ææãªãã·ã§ã³ã¯ãããŸããïŒ
ã°ã©ãã£ã«ã«ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ïŒWeb UIïŒ
ã³ã³ãããŒã©ãŒã®æ§æãå¶åŸ¡ããããã®ã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãããŸããïŒ åºæ¬çã«ãã䟿å©ãããã³/ãŸãã¯Ingressã®èšå®ã倿Žããå¿
èŠããã人ã«ãšã£ãŠã¯ããçã®ããã³ãã¬ãŒãã§ã®äœæ¥ã¯äžäŸ¿ã§ãã éçºè
ããã©ãã£ãã¯ã䜿çšããå®éšããªã³ã¶ãã©ã€ã§å®è¡ããå Žåã«åœ¹ç«ã¡ãŸãã
JWTæ€èšŒ
æçµã¢ããªã±ãŒã·ã§ã³ã«å¯ŸãããŠãŒã¶ãŒã®æ¿èªãšæ€èšŒã®ããã®WebããŒã¯ã³ã®çµã¿èŸŒã¿JSONæ€èšŒã®ååšã
æ§æã®ã«ã¹ã¿ãã€ãºã®æ©èœ
æšæºã®æ§æãã³ãã¬ãŒãã«ç¬èªã®ãã£ã¬ã¯ãã£ãããã©ã°ãªã©ã远å ããã¡ã«ããºã ãæã€ãšããæå³ã§ã®ãã³ãã¬ãŒãã®æ¡åŒµæ§
åºæ¬çãªDDOSä¿è·ã¡ã«ããºã
åçŽãªã¬ãŒãå¶éã¢ã«ãŽãªãºã ããŸãã¯ã¢ãã¬ã¹ããã¯ã€ããªã¹ããåœãªã©ã«åºã¥ããŠãã©ãã£ãã¯ããã£ã«ã¿ãªã³ã°ããããã®ããè€éãªãªãã·ã§ã³
èŠæ±ãã¬ãŒã¹
ã€ã³ã°ã¬ã¹ããç¹å®ã®ãµãŒãã¹/ããããžã®ããããŠçæ³çã«ã¯ãµãŒãã¹/ãããéã®ãªã¯ãšã¹ããç£èŠã远跡ããããã°ããæ©äŒã
WAF
ã¢ããªã±ãŒã·ã§ã³ãã¡ã€ã¢ãŠã©ãŒã«ã®ãµããŒãã
å
¥åã³ã³ãããŒã©ãŒ
ã³ã³ãããŒã©ã®ãªã¹ãã¯ã
Kubernetesã®
å
¬åŒããã¥ã¡ã³ããš
ãã®è¡šã«åºã¥ããŠã
ãŸã ã ãããã®ç¹ç°æ§ãŸãã¯äœãæç
çïŒéçºã®åææ®µéïŒã®ããã«ããããã®ããã€ããã¬ãã¥ãŒããé€å€ããŸããã æ®ãã®ãã®ã«ã€ããŠã¯ä»¥äžã§èª¬æããŸãã ãœãªã¥ãŒã·ã§ã³ã®äžè¬çãªèª¬æããå§ããŠãããããããŒãã«ã«é²ã¿ãŸãã
Kubernetesã«ããã€ã³ã°ã¬ã¹
ãŠã§ããµã€ãïŒ github.com/kubernetes/ingress-nginxã©ã€ã»ã³ã¹ïŒApache 2.0ããã¯ãã³ãã¥ããã£ã«ãã£ãŠéçºãããŠããKubernetesã®å
¬åŒã³ã³ãããŒã©ãŒã§ãã ååããæãããªããã«ãnginxã«åºã¥ããŠããã远å ã®æ©èœãå®è£
ããããã«äœ¿çšãããLuaãã©ã°ã€ã³ã®ç°ãªãã»ããã§è£å®ãããŠããŸãã nginxèªäœã®äººæ°ãšãã³ã³ãããŒã©ãŒãšããŠäœ¿çšããå Žåã®æå°éã®å€æŽã«ããããã®ãªãã·ã§ã³ã¯ïŒWebã®çµéšãããïŒæãåçŽã§æãçè§£ããããæ§æå¹³åãšã³ãžãã¢ãããããŸããã
NGINX Incã«ããã€ã³ã°ã¬ã¹
ãŠã§ããµã€ãïŒ github.com/nginxinc/kubernetes-ingressã©ã€ã»ã³ã¹ïŒApache 2.0nginxéçºè
ã®å
¬åŒè£œåã
NGINX Plusã«åºã¥ããææçããããŸãã äž»ãªã¢ã€ãã¢ã¯ãé«ã¬ãã«ã®å®å®æ§ãäžå®ã®åŸæ¹äºææ§ãç¡é¢ä¿ãªã¢ãžã¥ãŒã«ã®æ¬ åŠãããã³Luaã®æåŠã«ããéæãããïŒå
¬åŒã³ã³ãããŒã©ãŒãšæ¯èŒããïŒå®£èšãããé床ã®åäžã§ãã
ç¡æçã¯ãå
¬åŒã®ã³ã³ãããŒã©ãŒãšæ¯èŒããå Žåãå«ããŠã倧å¹
ã«åæžãããŸãïŒåãLuaã¢ãžã¥ãŒã«ãäžè¶³ããŠããããïŒã åæã«æ¯æãããæ©èœã«ã¯ããªã¢ã«ã¿ã€ã ã¡ããªãã¯ãJWTæ€èšŒãã¢ã¯ãã£ããã«ã¹ãã§ãã¯ãªã©ãããªãå¹
åºãè¿œå æ©èœããããŸãã NGINX Ingressã«å¯ŸããéèŠãªå©ç¹ã¯ãTCP / UDPãã©ãã£ãã¯ãå®å
šã«ãµããŒãããŠããããšã§ãïŒã³ãã¥ããã£ããŒãžã§ã³ã§ãïŒïŒã æ¬ ç¹ã¯ããã©ãã£ãã¯åæ£
ã®æ©èœã
ãªãããšã§ãããã ããããã¯ãéçºè
ã«ãšã£ãŠæåªå
äºé
ãã§ãããå®è£
ã«ã¯æéãããããŸãã
Kong Ingress
ãŠã§ããµã€ãïŒ github.com/Kong/kubernetes-ingress-controllerã©ã€ã»ã³ã¹ïŒApache 2.0Kong Inc.ãéçºãã補å åçšçãšç¡æçã®2ã€ã®ããŒãžã§ã³ããããŸãã ããã¯nginxã«åºã¥ããŠããããã®æ©èœã¯Luaäžã®å€æ°ã®ã¢ãžã¥ãŒã«ã«ãã£ãŠæ¡åŒµãããŠããŸãã
åœåã¯ãAPIãªã¯ãšã¹ãã®åŠçãšã«ãŒãã£ã³ã°ãã€ãŸã API Gatewayã«äŒŒãŠããŸãããçŸæç¹ã§ã¯æ¬æ ŒçãªIngressã³ã³ãããŒã©ãŒã«ãªã£ãŠããŸãã äž»ãªå©ç¹ïŒã€ã³ã¹ããŒã«ãšæ§æãç°¡åã§ãããŸããŸãªè¿œå æ©èœãå®è£
ãããŠããå€ãã®è¿œå ã¢ãžã¥ãŒã«ïŒãµãŒãããŒãã£ã®éçºè
ãå«ãïŒã ãã ããçµã¿èŸŒã¿æ©èœã¯ãã§ã«å€ãã®æ©èœãæäŸããŠããŸãã äœæ¥æ§æã¯ãCRDãªãœãŒã¹ã䜿çšããŠè¡ãããŸãã
補åã®éèŠãªæ©èœ-ã¯ãã¹ããŒã ã¹ããŒã¹ã®ä»£ããã«åãåè·¯å
ã§åäœããããšã¯è°è«ã®äœå°ã®ãããããã¯ã§ããäžéšã®äººã«ãšã£ãŠã¯æ¬ ç¹ïŒååè·¯ã®ãšã³ãã£ãã£ãäœæããå¿
èŠãããïŒãšæãããŸãã 1ã€ã®ã³ã³ãããŒã©ãŒãæ
éããå Žåãåé¡ã¯1ã€ã®åè·¯ã®ã¿ã«éå®ãããŸãã
ãã¬ãã£ã¯
ãŠã§ããµã€ãïŒ github.com/containous/traefikã©ã€ã»ã³ã¹ïŒMITãã€ã¯ããµãŒãã¹ãšãã®åçç°å¢ã«å¯ŸããèŠæ±ã®ã«ãŒãã£ã³ã°ãåŠçããããã«æåã«äœæããããããã·ã ãããã£ãŠãå€ãã®äŸ¿å©ãªæ©èœïŒåèµ·åããã«æ§æãå®å
šã«æŽæ°ãã倿°ã®ãã©ã³ã·ã³ã°ã¡ãœãããWebã€ã³ã¿ãŒãã§ã€ã¹ã転éã¡ããªãã¯ããµããŒãããããŸããŸãªãããã³ã«ãREST APIãã«ããªã¢ãªãªãŒã¹ãªã©ããµããŒãããŸãã ãŸããããã«äœ¿çšã§ããèšŒææžã®æå·åããµããŒããããŠããŸãã æ¬ ç¹ã¯ãé«å¯çšæ§ïŒHAïŒã®çµç¹ã§ã¯ãã³ã³ãããŒã©ãŒãç¬èªã®KVã¹ãã¬ãŒãžãã€ã³ã¹ããŒã«ããŠæ¥ç¶ããå¿
èŠãããããšã§ãã
HAProxy
ãŠã§ããµã€ãïŒ github.com/jcmoraisjr/haproxy-ingressã©ã€ã»ã³ã¹ïŒApache 2.0HAProxyã¯ããããã·ããã³ãã©ãã£ãã¯ãã©ã³ãµãŒãšããŠé·ãéç¥ãããŠããŸãã Kubernetesã¯ã©ã¹ã¿ãŒå
ã§ã¯ãããœãããæ§ææŽæ°ïŒãã©ãã£ãã¯ã®æå€±ãªãïŒãDNSããŒã¹ã®ãµãŒãã¹æ€åºãAPIã䜿çšããåçæ§æãæäŸãããŸãã CM'aã眮ãæããããšã«ããæ§æãã³ãã¬ãŒãã®å®å
šãªã«ã¹ã¿ãã€ãºãããã³ãã®äžã®Sprigã©ã€ãã©ãªãŒã®æ©èœã䜿çšããå¯èœæ§ãé
åçã«ãªããŸãã äžè¬çã«ããœãªã¥ãŒã·ã§ã³ã®äž»ãªéç¹ã¯ãé«éåãæé©åãããã³æ¶è²»ãªãœãŒã¹ã®å¹çåã§ãã ã³ã³ãããŒã©ãŒã®å©ç¹ã¯ãèšé²çãªæ°ã®ç°ãªããã©ã³ã¹æ¹æ³ã®ãµããŒãã§ãã
ãã€ãžã£ãŒ
ãŠã§ããµã€ãïŒ github.com/appscode/voyagerã©ã€ã»ã³ã¹ïŒApache 2.0HAproxyããŒã¹ã®ã³ã³ãããŒã©ãŒãããã¯ã倿°ã®ãããã€ããŒã§å¹
åºãæ©èœããµããŒããããŠãããŒãµã«ãœãªã¥ãŒã·ã§ã³ãšããŠäœçœ®ä»ããããŠããŸãã L7ãšL4ã§ãã©ãã£ãã¯ã®ãã©ã³ã¹ãåãæ©äŒãææ¡ãããŠãããTCP L4ãã©ãã£ãã¯å
šäœã®ãã©ã³ã¹ãåãããšã¯ããœãªã¥ãŒã·ã§ã³ã®éèŠãªæ©èœã®1ã€ãšèšããŸãã
茪é
ãŠã§ããµã€ãïŒ github.com/heptio/contourã©ã€ã»ã³ã¹ïŒApache 2.0Envoyã¯ãã®ãœãªã¥ãŒã·ã§ã³ã®åºç€ãç¯ããã ãã§ãªãããã®äººæ°ã®ãããããã·ã®äœæè
ãšå
±åã§éçºã
ããŸããã éèŠãªæ©èœã¯ãIngressRoute CRDãªãœãŒã¹ã䜿çšããŠIngressãªãœãŒã¹ç®¡çãåå²ããæ©èœã§ãã åäžã®ã¯ã©ã¹ã¿ãŒã䜿çšããå€ãã®éçºããŒã ãæã€çµç¹ã®å Žåãããã«ãããè¿é£ã®åè·¯ã®ãã©ãã£ãã¯ã®å®å
šæ§ãæå€§åããã€ã³ã°ã¬ã¹ãªãœãŒã¹ã倿Žããéã®ãšã©ãŒããä¿è·ããããšãã§ããŸãã
ãŸããæ¡åŒµããããã©ã³ã¹æ¹æ³ã®ã»ããïŒãªã¯ãšã¹ãã®ãã©ãŒãªã³ã°ãèªåå詊è¡ããªã¯ãšã¹ãã®ã¬ãŒãå¶éãªã©ïŒããã©ãã£ãã¯ãããŒãšé害ã®è©³çްãªç£èŠãæäŸããŸãã ããããäžéšã®äººã«ãšã£ãŠã¯ãã¹ãã£ãããŒã»ãã·ã§ã³ã®ãµããŒãããªããšããéå€§ãªæ¬ ç¹ãããã§ãããïŒãã ããäœæ¥ã¯
ãã§ã«é²è¡äžã§ã ïŒã
ã€ã¹ãã£ãªã€ã³ã°ã¬ã¹
ãŠã§ããµã€ãïŒ istio.io/docs/tasks/traffic-management/ingressã©ã€ã»ã³ã¹ïŒApache 2.0å
æ¬çãªãµãŒãã¹ã¡ãã·ã¥ãœãªã¥ãŒã·ã§ã³ãå€éšããã®çä¿¡ãã©ãã£ãã¯ãå¶åŸ¡ããã ãã§ãªããã¯ã©ã¹ã¿ãŒå
ã®ãã¹ãŠã®ãã©ãã£ãã¯ãå¶åŸ¡ããå
¥åã³ã³ãããŒã©ãŒã§ãã å
éšã§ã¯ãEnvoyã¯åãµãŒãã¹ã®ãµã€ãã«ãŒãããã·ãšããŠäœ¿çšãããŸãã æ¬è³ªçã«ãããã¯ãäœã§ãã§ãããå€§èŠæš¡ãªçµã¿åããã§ããããã®äž»ãªã¢ã€ãã¢ã¯ãæå€§éã®ç®¡çæ§ãæ¡åŒµæ§ãã»ãã¥ãªãã£ãããã³éææ§ã§ãã ããã«ããããã©ãã£ãã¯ã®ã«ãŒãã£ã³ã°ããµãŒãã¹éã®ã¢ã¯ã»ã¹ã®èš±å¯ããã©ã³ã¹ãç£èŠãã«ããªã¢ãªãªãŒã¹ãªã©ã埮調æŽã§ããŸãã
Istioã·ãªãŒãºã®èšäºã«
æ»ããã€ã¯ããµãŒãã¹ã«
æ»ãã§ Istioã®è©³çްãèªãã§ãã ããã
倧䜿
ãŠã§ããµã€ãïŒ github.com/datawire/ambassadorã©ã€ã»ã³ã¹ïŒApache 2.0Envoyã«åºã¥ãå¥ã®ãœãªã¥ãŒã·ã§ã³ã ç¡æã®åçšããŒãžã§ã³ããããŸãã ãKubernetesã«å®å
šã«ãã€ãã£ãããšããŠäœçœ®ä»ãããã察å¿ããå©ç¹ïŒã¡ãœãããšK8sã¯ã©ã¹ã¿ãŒã®ãšã³ãã£ãã£ãšã®ç·å¯ãªçµ±åïŒããããããŸãã
æ¯èŒè¡š
ãããã£ãŠãèšäºã®ã¯ã©ã€ããã¯ã¹ã¯ãã®å·šå€§ãªè¡šã§ãã

ãã詳现ã«è¡šç€ºããã«ã¯ã¯ãªãã¯ããŠãã ããããŸãã
Googleã¹ãã¬ããã·ãŒã圢åŒã§ãå©çšã§ããŸãã
ãŸãšãããš
ãã®èšäºã®ç®çã¯ãç¹å®ã®ã±ãŒã¹ã§ã©ã®ãããªéžæãè¡ããã«ã€ããŠãããå®å
šãªçè§£ãæäŸããããšã§ãïŒãã ããå®å
šã«ç¶²çŸ
ããŠããããã§ã¯ãããŸããïŒïŒã ãã€ãã®ããã«ãåã³ã³ãããŒã©ãŒã«ã¯é·æãšçæããããŸã...
å€å
žçãªKubernetes Ingressã¯ããã®ã¢ã¯ã»ã·ããªãã£ãšå®çžŸã«åªããŠãããæ©èœãéåžžã«è±å¯ã§ããäžè¬ã«ããç®ãåŒããå¿
èŠããããŸãã ãã ããå®å®æ§ãæ©èœã¬ãã«ãããã³éçºã®èŠä»¶ãå¢å ããŠããå Žåã¯ãNGINX Plusãšææãµãã¹ã¯ãªãã·ã§ã³ã䜿çšããIngressã«æ³šæãã䟡å€ããããŸãã Kongã«ã¯è±å¯ãªãã©ã°ã€ã³ã»ããïŒããã³ãããã«å¿ããŠæäŸããæ©èœïŒããããææçã«ã¯ããã«å€ãã®ãã©ã°ã€ã³ããããŸãã API GatewayãCRDãªãœãŒã¹ã«åºã¥ãåçæ§æãããã³åºæ¬çãªKubernetesãµãŒãã¹ãšããŠæ©èœããæ©äŒãè±å¯ã«ãããŸãã
ãã©ã³ã·ã³ã°ããã³èªèšŒæ¹æ³ã®èŠä»¶ãå¢ããŠãããããTraefikãšHAProxyãã芧ãã ããã ãããã¯ãé·å¹Žã«ããã£ãŠå®èšŒããããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã§ãããéåžžã«å®å®ããŠãããç©æ¥µçã«éçºãããŠããŸãã Contourã¯æ°å¹Žåãã䜿çšãããŠããŸããããŸã è¥ãããŠãEnvoyã®äžã«è¿œå ãããåºæ¬çãªæ©èœãããããŸããã ã¢ããªã±ãŒã·ã§ã³ã®åã«WAFã®ååš/åã蟌ã¿ã®èŠä»¶ãããå Žåã¯ãKubernetesãŸãã¯HAProxyããã®åãIngressã«æ³šæããå¿
èŠããããŸãã
ãããŠãæãè±å¯ãªæ©èœã¯ãEnvoyãç¹ã«Istioã«åºã¥ããŠæ§ç¯ããã補åã§ãã ãäœã§ãã§ãããè€éãªãœãªã¥ãŒã·ã§ã³ã®ããã§ãããããã¯ä»ã®ãœãªã¥ãŒã·ã§ã³ãããæ§æ/èµ·å/管çãå
¥åããããã®ãããå€ãèããé«ãããšãæå³ããŸãã
æšæºã³ã³ãããŒã©ãŒãšããŠãããŒãºã®80ã90ïŒ
ãã«ããŒããKubernetes IngressãéžæããŠäœ¿çšããŠããŸãã ããã¯éåžžã«ä¿¡é Œæ§ãé«ããèšå®ãæ¡åŒµãç°¡åã§ãã äžè¬çãªå Žåãç¹å®ã®èŠä»¶ããªãå Žåãã»ãšãã©ã®ã¯ã©ã¹ã¿ãŒ/ã¢ããªã±ãŒã·ã§ã³ã«é©ããŠããã¯ãã§ãã åãæ±çšæ§ããããæ¯èŒçåçŽãªè£œåã®ãã¡ãTraefikãšHAProxyãæšå¥šã§ããŸãã
PS
ããã°ãã芧ãã ããã