ãã®èšäºã¯ãKubernetes ã§ã®è² è·åæ£ã®ä»çµã¿ãåç¶æéã®é·ãæ¥ç¶ãã¹ã±ãŒãªã³ã°ãããšãã«äœãèµ·ããããHTTP/2ãgRPCãRSocketsãAMQPããŸãã¯ãã®ä»ã®åç¶æéã®é·ããããã³ã«ã䜿çšããå Žåã«ã¯ã©ã€ã¢ã³ãåŽã®åæ£ãèæ
®ããå¿
èŠãããçç±ãç解ããã®ã«åœ¹ç«ã¡ãŸãã ã
Kubernetes ã§ãã©ãã£ãã¯ãã©ã®ããã«ååæ£ããããã«ã€ããŠå°ã説æããŸãã
Kubernetes ã¯ãã¢ããªã±ãŒã·ã§ã³ããããã€ããããã® XNUMX ã€ã®äŸ¿å©ãªæœè±¡åããµãŒãã¹ãšãããã€ã¡ã³ããæäŸããŸãã
ãããã€ã¡ã³ãã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã³ããŒãåžžã«ã©ã®ããã«ããŸãããã€å®è¡ããå¿ èŠãããããèšè¿°ããŸãã åã¢ããªã±ãŒã·ã§ã³ã¯ããããšããŠãããã€ãããIP ã¢ãã¬ã¹ãå²ãåœãŠãããŸãã
ãµãŒãã¹ã¯æ©èœçã«ã¯ããŒã ãã©ã³ãµãŒãšäŒŒãŠããŸãã ãããã¯ããã©ãã£ãã¯ãè€æ°ã®ãããã«åæ£ããããã«èšèšãããŠããŸãã
ã©ã®ãããªãã®ããèŠãŠã¿ãŸããã.
- 以äžã®å³ã§ã¯ãåãã¢ããªã±ãŒã·ã§ã³ã® XNUMX ã€ã®ã€ã³ã¹ã¿ã³ã¹ãš XNUMX ã€ã®ããŒã ãã©ã³ãµãŒã瀺ãããŠããŸãã
- ããŒã ãã©ã³ãµãŒã¯ãµãŒãã¹ãšåŒã°ããIP ã¢ãã¬ã¹ãå²ãåœãŠãããŸãã åä¿¡ãªã¯ãšã¹ãã¯ãã¹ãŠããããã® XNUMX ã€ã«ãªãã€ã¬ã¯ããããŸãã
- ãããã€ã¡ã³ã ã·ããªãªã«ãã£ãŠãã¢ããªã±ãŒã·ã§ã³ã®ã€ã³ã¹ã¿ã³ã¹ã®æ°ã決ãŸããŸãã 以äžã®çŽäžã§å±éããå¿ èŠã¯ã»ãšãã©ãããŸããã
- åãããã«ã¯ç¬èªã® IP ã¢ãã¬ã¹ãå²ãåœãŠãããŸãã
ãµãŒãã¹ã IP ã¢ãã¬ã¹ã®éåãšããŠèãããšäŸ¿å©ã§ãã ãµãŒãã¹ã«ã¢ã¯ã»ã¹ãããã³ã«ãIP ã¢ãã¬ã¹ã® XNUMX ã€ããªã¹ãããéžæãããå®å ã¢ãã¬ã¹ãšããŠäœ¿çšãããŸãã
ãããªæãã§ã.
- ãµãŒãã¹ã«å¯Ÿããã«ãŒã« 10.96.45.152 ãªã¯ãšã¹ããåä¿¡ãããŸãã
- ãµãŒãã¹ã¯ã次㮠XNUMX ã€ã®ããã ã¢ãã¬ã¹ã®ãããããå®å ãšããŠéžæããŸãã
- ãã©ãã£ãã¯ã¯ç¹å®ã®ãããã«ãªãã€ã¬ã¯ããããŸãã
ã¢ããªã±ãŒã·ã§ã³ãããã³ããšã³ããšããã¯ãšã³ãã§æ§æãããŠããå Žåãããããã«ãµãŒãã¹ãšãããã€ã¡ã³ãã®äž¡æ¹ãå¿ èŠã«ãªããŸãã
ããã³ããšã³ããããã¯ãšã³ãã«ãªã¯ãšã¹ããè¡ããšããããã¯ãšã³ãããµãŒãã¹ãæäŸãããããã®æ°ãæ£ç¢ºã«ç¥ãå¿ èŠã¯ãããŸãããXNUMXãXNUMXããŸã㯠XNUMX ã®å¯èœæ§ããããŸãã
ãŸããããã³ããšã³ãã¯ãããã¯ãšã³ãã«ãµãŒãã¹ãæäŸãããããã®ã¢ãã¬ã¹ã«ã€ããŠã¯äœãç¥ããŸããã
ããã³ããšã³ããããã¯ãšã³ãã«ãªã¯ãšã¹ããè¡ããšããããã¯ãšã³ã ãµãŒãã¹ã® IP ã¢ãã¬ã¹ã䜿çšãããŸããããã®ã¢ãã¬ã¹ã¯å€æŽãããŸããã
ããã§ã¯ãããã©ã®ããã«èŠããã®ã§ã.
- 1 ã§ã¯ãå éšããã¯ãšã³ã ã³ã³ããŒãã³ãããªã¯ãšã¹ãããŸãã ããã¯ãšã³ãã«ç¹å®ã®ãã®ãéžæãã代ããã«ããµãŒãã¹ã«ãªã¯ãšã¹ããäœæããŸãã
- ãµãŒãã¹ã¯ãããã¯ãšã³ã ãããã® XNUMX ã€ãå®å ã¢ãã¬ã¹ãšããŠéžæããŸãã
- ãã©ãã£ãã¯ã¯ããµãŒãã¹ã«ãã£ãŠéžæãããããã 1 ããããã 5 ã«éä¿¡ãããŸãã
- Under 1 ã¯ãUnder 5 ã®ãããªãããããµãŒãã¹ã®èåŸã«äœåé ãããŠããããæ£ç¢ºã«ç¥ããŸããã
ãããããµãŒãã¹ã¯ãªã¯ãšã¹ããã©ã®ããã«æ£ç¢ºã«åæ£ããã®ã§ãããã? ã©ãŠã³ãããã³ãã©ã³ã·ã³ã°ã䜿çšãããŠããããã§ããïŒ ãããç解ããŸãããã
Kubernetes ãµãŒãã¹ã®ãã©ã³ã¹èª¿æŽ
Kubernetes ãµãŒãã¹ã¯ååšããŸããã IP ã¢ãã¬ã¹ãšããŒããå²ãåœãŠããããµãŒãã¹ã«å¯Ÿããããã»ã¹ã¯ãããŸããã
ããã確èªããã«ã¯ãã¯ã©ã¹ã¿ãŒå ã®ä»»æã®ããŒãã«ãã°ã€ã³ããnetstat -ntlp ã³ãã³ããå®è¡ããŸãã
ãµãŒãã¹ã«å²ãåœãŠããã IP ã¢ãã¬ã¹ãèŠã€ããããšããã§ããŸããã
ãµãŒãã¹ã® IP ã¢ãã¬ã¹ã¯ãã³ã³ãããŒã©ãŒã®å¶åŸ¡å±€ã«ãããããŒã¿ããŒã¹ (etcd) ã«èšé²ãããŸãã åãã¢ãã¬ã¹ãå¥ã®ã³ã³ããŒãã³ã (kube-proxy) ã«ãã£ãŠäœ¿çšãããŸãã
Kube-proxy ã¯ããã¹ãŠã®ãµãŒãã¹ã® IP ã¢ãã¬ã¹ã®ãªã¹ããåä¿¡ããã¯ã©ã¹ã¿ãŒå
ã®åããŒãã« iptables ã«ãŒã«ã®ã»ãããçæããŸãã
ãããã®ã«ãŒã«ã«ã¯ãããµãŒãã¹ã® IP ã¢ãã¬ã¹ãèŠã€ãã£ãå Žåã¯ããªã¯ãšã¹ãã®å®å ã¢ãã¬ã¹ãå€æŽãããããã® XNUMX ã€ã«éä¿¡ããå¿ èŠãããããšèšèŒãããŠããŸãã
ãµãŒãã¹ IP ã¢ãã¬ã¹ã¯ãšã³ã㪠ãã€ã³ããšããŠã®ã¿äœ¿çšããããã® IP ã¢ãã¬ã¹ãšããŒãããªãã¹ã³ããããã»ã¹ã«ãã£ãŠæäŸãããããšã¯ãããŸããã
ãããèŠãŠã¿ãŸããã.
- XNUMX ã€ã®ããŒããããªãã¯ã©ã¹ã¿ãŒãèããŠã¿ãŸãããã åããŒãã«ã¯ãããããããŸãã
- ããŒãžã¥ã«å¡ãããçµã°ãããããã¯ãµãŒãã¹ã®äžéšã§ãã ãµãŒãã¹ã¯ããã»ã¹ãšããŠååšããªããããç°è²ã§è¡šç€ºãããŸãã
- æåã®ãããã¯ãµãŒãã¹ããªã¯ãšã¹ãããé¢é£ãããããã® XNUMX ã€ã«ç§»åããå¿ èŠããããŸãã
- ãããããµãŒãã¹ãããã»ã¹ãååšããŸããã ã©ã®ããã«æ©èœããã®ã§ãããã?
- ãªã¯ãšã¹ãã¯ããŒãããåºãåã«ãiptables ã«ãŒã«ãééããŸãã
- iptables ã«ãŒã«ã¯ããµãŒãã¹ãååšããªãããšãèªèãããã® IP ã¢ãã¬ã¹ããã®ãµãŒãã¹ã«é¢é£ä»ãããããããã® IP ã¢ãã¬ã¹ã® XNUMX ã€ã«çœ®ãæããŸãã
- ãªã¯ãšã¹ãã¯æå¹ãª IP ã¢ãã¬ã¹ãå®å ã¢ãã¬ã¹ãšããŠåãåããéåžžã©ããåŠçãããŸãã
- ãããã¯ãŒã¯ ããããžã«å¿ããŠããªã¯ãšã¹ãã¯æçµçã«ãããã«å°éããŸãã
iptables ã¯è² è·åæ£ã§ããŸãã?
ããããiptables ã¯ãã£ã«ã¿ãªã³ã°ã«äœ¿çšããããã©ã³ã·ã³ã°ã®ããã«èšèšããããã®ã§ã¯ãããŸããã
ãã ãã次ã®ããã«æ©èœããäžé£ã®ã«ãŒã«ãäœæããããšã¯å¯èœã§ãã
ãããŠãããã¯ãŸãã« Kubernetes ã«å®è£ ãããŠãããã®ã§ãã
ãããã XNUMX ã€ããå Žåãkube-proxy ã¯æ¬¡ã®ã«ãŒã«ãæžã蟌ã¿ãŸãã
- 33% ã®ç¢ºçã§æåã®ãµããéžæããŸããããã§ãªãå Žåã¯ã次ã®ã«ãŒã«ã«é²ã¿ãŸãã
- 50% ã®ç¢ºç㧠XNUMX çªç®ã®ãã®ãéžæããŸããããã§ãªãå Žåã¯ã次ã®ã«ãŒã«ã«é²ã¿ãŸãã
- XNUMXçªç®ã®äžãéžæããŸãã
ãã®ã·ã¹ãã ã§ã¯ãåãããã 33% ã®ç¢ºçã§éžæãããŸãã
ãŸããããã 2 ã®æ¬¡ã«ããã 1 ãéžæããããšããä¿èšŒã¯ãããŸããã
泚æ: iptables ã¯ã©ã³ãã ååžã®çµ±èšã¢ãžã¥ãŒã«ã䜿çšããŸãã ãããã£ãŠããã©ã³ã·ã³ã° ã¢ã«ãŽãªãºã ã¯ã©ã³ãã ãªéžæã«åºã¥ããŠããŸãã
ãµãŒãã¹ãã©ã®ããã«æ©èœããããç解ãããšããã§ãããã«èå³æ·±ããµãŒãã¹ ã·ããªãªãèŠãŠã¿ãŸãããã
Kubernetes ã®é·æéåç¶ããæ¥ç¶ã¯ããã©ã«ãã§ã¯æ¡åŒµãããŸãã
ããã³ããšã³ãããããã¯ãšã³ããžã®å HTTP ãªã¯ãšã¹ãã¯ãééãããåå¥ã® TCP æ¥ç¶ã«ãã£ãŠåŠçãããŸãã
ããã³ããšã³ãã 100 ç§ããã 100 ã®ãªã¯ãšã¹ããããã¯ãšã³ãã«éä¿¡ãããšãXNUMX ã®ç°ãªã TCP æ¥ç¶ãéãããéããããŸãã
XNUMX ã€ã® TCP æ¥ç¶ãéãããããåŸç¶ã®ãã¹ãŠã® HTTP ãªã¯ãšã¹ãã«äœ¿çšããããšã§ããªã¯ãšã¹ãã®åŠçæéãšè² è·ã軜æžã§ããŸãã
HTTP ãããã³ã«ã«ã¯ãHTTP ããŒãã¢ã©ã€ãããŸãã¯æ¥ç¶ã®åå©çšãšåŒã°ããæ©èœããããŸãã ãã®å Žåãåäžã® TCP æ¥ç¶ã䜿çšããŠè€æ°ã® HTTP èŠæ±ãšå¿çãéåä¿¡ãããŸãã
ãã®æ©èœã¯ããã©ã«ãã§ã¯æå¹ã«ãªã£ãŠããŸããããµãŒããŒãšã¯ã©ã€ã¢ã³ãã®äž¡æ¹ãããã«å¿ããŠæ§æããå¿ èŠããããŸãã
ã»ããã¢ããèªäœã¯ã·ã³ãã«ã§ãã»ãšãã©ã®ããã°ã©ãã³ã°èšèªãšç°å¢ã§ã¢ã¯ã»ã¹ã§ããŸãã
ããŸããŸãªèšèªã®äŸãžã®ãªã³ã¯ãããã€ã瀺ããŸãã
Node.js ã§ã®ããŒãã¢ã©ã€ã Spring Boot ã§ã®ããŒãã¢ã©ã€ã Python ã§ã®ããŒãã¢ã©ã€ã .NET ã§ã®ããŒãã¢ã©ã€ã
Kubernetes ãµãŒãã¹ã§ããŒãã¢ã©ã€ãã䜿çšãããšã©ããªããŸãã?
ããã³ããšã³ããšããã¯ãšã³ãã®äž¡æ¹ãããŒãã¢ã©ã€ãããµããŒãããŠãããšä»®å®ããŸãã
ããã³ããšã³ãã®ã³ããŒã XNUMX ã€ãããã¯ãšã³ãã®ã³ããŒã XNUMX ã€ãããŸãã ããã³ããšã³ãã¯æåã®ãªã¯ãšã¹ããäœæããããã¯ãšã³ããžã® TCP æ¥ç¶ãéããŸãã ãªã¯ãšã¹ãããµãŒãã¹ã«å°éãããšãããã¯ãšã³ã ãããã® XNUMX ã€ãå®å ã¢ãã¬ã¹ãšããŠéžæãããŸãã ããã¯ãšã³ããå¿çãéä¿¡ããããã³ããšã³ãããããåä¿¡ããŸãã
å¿çãåä¿¡ããåŸã« TCP æ¥ç¶ãéããããéåžžã®ç¶æ³ãšã¯ç°ãªããTCP æ¥ç¶ã¯ãããªã HTTP ãªã¯ãšã¹ãã®ããã«éãããŸãŸã«ãªããŸãã
ããã³ããšã³ããããã¯ãšã³ãã«ããã«ãªã¯ãšã¹ããéä¿¡ãããšã©ããªããŸãã?
ãããã®ãªã¯ãšã¹ãã転éããã«ã¯ããªãŒãã³ TCP æ¥ç¶ã䜿çšããããã¹ãŠã®ãªã¯ãšã¹ãã¯æåã®ãªã¯ãšã¹ããéä¿¡ãããã®ãšåãããã¯ãšã³ãã«éä¿¡ãããŸãã
iptables ã¯ãã©ãã£ãã¯ãååæ£ãã¹ãã§ã¯ãªãã§ãããã?
ãã®å Žåã¯ãããŸããã
TCP æ¥ç¶ãäœæããããšããã©ãã£ãã¯ãéä¿¡ãããç¹å®ã®ããã¯ãšã³ããéžæãã iptables ã«ãŒã«ãééããŸãã
åŸç¶ã®ãªã¯ãšã¹ãã¯ãã¹ãŠããã§ã«éããŠãã TCP æ¥ç¶äžã«ãããããiptables ã«ãŒã«ã¯åŒã³åºãããªããªããŸãã
ã©ã®ãããªãã®ããèŠãŠã¿ãŸããã.
- æåã®ãããã¯ãµãŒãã¹ã«ãªã¯ãšã¹ããéä¿¡ããŸãã
- 次ã«äœãèµ·ãããã¯ãã§ã«ããã£ãŠããŸãã ãµãŒãã¹ã¯ååšããŸãããããªã¯ãšã¹ããåŠçãã iptables ã«ãŒã«ããããŸãã
- ããã¯ãšã³ã ãããã® XNUMX ã€ãå®å ã¢ãã¬ã¹ãšããŠéžæãããŸãã
- ãªã¯ãšã¹ãã¯ãããã«å°éããŸãã ãã®æç¹ã§ãXNUMX ã€ã®ãããéã®æ°žç¶ç㪠TCP æ¥ç¶ã確ç«ãããŸãã
- æåã®ãããããã®åŸç¶ã®ãªã¯ãšã¹ãã¯ããã§ã«ç¢ºç«ãããŠããæ¥ç¶ãçµç±ããŸãã
ãã®çµæãå¿çæéãççž®ãããã¹ã«ãŒããããåäžããŸãããããã¯ãšã³ããã¹ã±ãŒã«ããèœåã倱ãããŸãã
ããã¯ãšã³ãã« XNUMX ã€ã®ããããããå Žåã§ããåžžææ¥ç¶ãããšããã©ãã£ãã¯ã¯åžžã«ãã®ãã¡ã® XNUMX ã€ã«éä¿¡ãããŸãã
ããã¯ä¿®æ£ã§ããŸããïŒ
Kubernetes ã¯æ°žç¶çãªæ¥ç¶ã®ãã©ã³ã¹ãåãæ¹æ³ãç¥ããªãããããã®ã¿ã¹ã¯ã¯ãŠãŒã¶ãŒã®è²¬ä»»ã«ãªããŸãã
ãµãŒãã¹ã¯ããšã³ããã€ã³ããšåŒã°ãã IP ã¢ãã¬ã¹ãšããŒãã®éåã§ãã
ã¢ããªã±ãŒã·ã§ã³ã¯ãµãŒãã¹ãããšã³ããã€ã³ãã®ãªã¹ããååŸãããšã³ããã€ã³ãéã§ãªã¯ãšã¹ããåæ£ããæ¹æ³ã決å®ã§ããŸãã åããããžã®æ°žç¶çãªæ¥ç¶ãéããã©ãŠã³ãããã³ã䜿çšããŠãããã®æ¥ç¶éã§ãªã¯ãšã¹ãã®ãã©ã³ã¹ããšãããšãã§ããŸãã
ãŸãã¯ããã«ç³è«ããŠãã ãã
ãã©ã³ã¹ããšãã¯ã©ã€ã¢ã³ãåŽã®ã³ãŒãã¯ã次ã®ããžãã¯ã«åŸãå¿ èŠããããŸãã
- ãµãŒãã¹ãããšã³ããã€ã³ãã®ãªã¹ããååŸããŸãã
- åãšã³ããã€ã³ãã«å¯ŸããŠæ°žç¶çãªæ¥ç¶ãéããŸãã
- ãªã¯ãšã¹ããè¡ãå¿ èŠãããå Žåã¯ãéããŠããæ¥ç¶ã®ããããã䜿çšããŠãã ããã
- ãšã³ããã€ã³ãã®ãªã¹ããå®æçã«æŽæ°ããæ°ãããšã³ããã€ã³ããäœæãããããªã¹ããå€æŽãããå Žåã¯å€ãæ°žç¶æ¥ç¶ãéããŸãã
ãã®ããã«ãªããŸã.
- æåã®ãããããµãŒãã¹ã«ãªã¯ãšã¹ããéä¿¡ãã代ããã«ãã¯ã©ã€ã¢ã³ãåŽã§ãªã¯ãšã¹ãã®ãã©ã³ã¹ããšãããšãã§ããŸãã
- ã©ã®ãããããµãŒãã¹ã®äžéšã§ããããå°ããã³ãŒããèšè¿°ããå¿ èŠããããŸãã
- ãªã¹ããååŸãããããããã¯ã©ã€ã¢ã³ãåŽã«ä¿åããããã䜿çšããŠãããã«æ¥ç¶ããŸãã
- ããªãã¯è² è·åæ£ã¢ã«ãŽãªãºã ãæ åœããŸãã
ããã§çåãçããŸãããã®åé¡ã¯ HTTP ããŒãã¢ã©ã€ãã«ã®ã¿é©çšãããã®ã§ããããã
ã¯ã©ã€ã¢ã³ãåŽã®è² è·åæ£
æ°žç¶ç㪠TCP æ¥ç¶ã䜿çšã§ãããããã³ã«ã¯ HTTP ã ãã§ã¯ãããŸããã
ã¢ããªã±ãŒã·ã§ã³ãããŒã¿ããŒã¹ã䜿çšããå ŽåãããŒã¿ããŒã¹ã«ãªã¯ãšã¹ããéä¿¡ããããããŒã¿ããŒã¹ããããã¥ã¡ã³ããååŸãããããå¿ èŠããããã³ã« TCP æ¥ç¶ãéãããããã§ã¯ãããŸããã
代ããã«ãããŒã¿ããŒã¹ãžã®æ°žç¶ç㪠TCP æ¥ç¶ãéããã䜿çšãããŸãã
ããŒã¿ããŒã¹ã Kubernetes äžã«ãããã€ãããã¢ã¯ã»ã¹ããµãŒãã¹ãšããŠæäŸãããå Žåãåã®ã»ã¯ã·ã§ã³ã§èª¬æããã®ãšåãåé¡ãçºçããŸãã
XNUMX ã€ã®ããŒã¿ããŒã¹ ã¬ããªã«ã¯ä»ã®ããŒã¿ããŒã¹ ã¬ããªã«ãããè² è·ãé«ããªããŸãã Kube-proxy ãš Kubernetes ã¯æ¥ç¶ã®ãã©ã³ã¹ããšãã®ã«åœ¹ç«ã¡ãŸããã ããŒã¿ããŒã¹ã«å¯Ÿããã¯ãšãªã®ãã©ã³ã¹ã«æ³šæããå¿ èŠããããŸãã
ããŒã¿ããŒã¹ãžã®æ¥ç¶ã«äœ¿çšããã©ã€ãã©ãªã«å¿ããŠããã®åé¡ã解決ããããã®ãªãã·ã§ã³ãç°ãªãå ŽåããããŸãã
以äžã¯ãNode.js ãã MySQL ããŒã¿ããŒã¹ ã¯ã©ã¹ã¿ãŒã«ã¢ã¯ã»ã¹ããäŸã§ãã
var mysql = require('mysql');
var poolCluster = mysql.createPoolCluster();
var endpoints = /* retrieve endpoints from the Service */
for (var [index, endpoint] of endpoints) {
poolCluster.add(`mysql-replica-${index}`, endpoint);
}
// Make queries to the clustered MySQL database
æ°žç¶ç㪠TCP æ¥ç¶ã䜿çšãããããã³ã«ã¯ä»ã«ãå€æ°ãããŸãã
- WebSocket ãšå®å šãª WebSocket
- HTTP / 2
- gRPC
- Rãœã±ãã
- AMQP
ãããã®ãããã³ã«ã®ã»ãšãã©ã«ã€ããŠã¯ãã§ã«ããç¥ã£ãŠããã¯ãã§ãã
ãããããããã®ãããã³ã«ãããã»ã©æ®åããŠããã®ã§ããã°ããªãæšæºåããããã©ã³ã·ã³ã° ãœãªã¥ãŒã·ã§ã³ããªãã®ã§ãããã? ãªãã¯ã©ã€ã¢ã³ãããžãã¯ãå€æŽããå¿ èŠãããã®ã§ãããã? ãã€ãã£ãã® Kubernetes ãœãªã¥ãŒã·ã§ã³ã¯ãããŸãã?
Kube-proxy ãš iptables ã¯ãKubernetes ã«ãããã€ããéã®æãäžè¬çãªãŠãŒã¹ã±ãŒã¹ãã«ããŒããããã«èšèšãããŠããŸãã ããã¯äŸ¿å®äžã®ãã®ã§ãã
REST API ãå ¬éãã Web ãµãŒãã¹ã䜿çšããŠããå Žåã¯ã幞éã§ãããã®å Žåãæ°žç¶ç㪠TCP æ¥ç¶ã¯äœ¿çšãããªããããä»»æã® Kubernetes ãµãŒãã¹ã䜿çšã§ããŸãã
ãã ããæ°žç¶ç㪠TCP æ¥ç¶ã䜿ãå§ãããšãããã¯ãšã³ãéã§è² è·ãåçã«åæ£ããæ¹æ³ãèãåºãå¿ èŠããããŸãã Kubernetes ã«ã¯ããã®ã±ãŒã¹ã«å¯Ÿããæ¢è£œã®ãœãªã¥ãŒã·ã§ã³ãå«ãŸããŠããŸããã
ãã ãã圹ç«ã€ãªãã·ã§ã³ã¯ç¢ºãã«ãããŸãã
Kubernetes ã§ã®é·ææ¥ç¶ã®ãã©ã³ã¹ãåã
Kubernetes ã«ã¯ XNUMX çš®é¡ã®ãµãŒãã¹ããããŸãã
- ã¯ã©ã¹ã¿ãŒIP
- ããŒãããŒã
- ããŒããã©ã³ãµãŒ
- ãããã¬ã¹
æåã® XNUMX ã€ã®ãµãŒãã¹ã¯ãkube-proxy ã iptables ã«ãŒã«ãæ§ç¯ããããã«äœ¿çšããä»®æ³ IP ã¢ãã¬ã¹ã«åºã¥ããŠåäœããŸãã ãããããã¹ãŠã®ãµãŒãã¹ã®åºæ¬ã¯ãããã¬ã¹ ãµãŒãã¹ã§ãã
ãããã¬ã¹ ãµãŒãã¹ã«ã¯ IP ã¢ãã¬ã¹ãé¢é£ä»ããããŠããããé¢é£ä»ããããŠããããã (ãšã³ããã€ã³ã) ã® IP ã¢ãã¬ã¹ãšããŒãã®ãªã¹ããååŸããã¡ã«ããºã ã®ã¿ãæäŸãããŸãã
ãã¹ãŠã®ãµãŒãã¹ã¯ãããã¬ã¹ ãµãŒãã¹ã«åºã¥ããŠããŸãã
ClusterIP ãµãŒãã¹ã¯ãããã€ãã®è¿œå æ©èœãåãããããã¬ã¹ ãµãŒãã¹ã§ãã
- 管çå±€ã¯ããã« IP ã¢ãã¬ã¹ãå²ãåœãŠãŸãã
- Kube-proxy ã¯å¿ èŠãª iptables ã«ãŒã«ãçæããŸãã
ãã®æ¹æ³ã§ã¯ãkube-proxy ãç¡èŠãããããã¬ã¹ ãµãŒãã¹ããååŸãããšã³ããã€ã³ãã®ãªã¹ããçŽæ¥äœ¿çšããŠãã¢ããªã±ãŒã·ã§ã³ã®è² è·åæ£ãè¡ãããšãã§ããŸãã
ããããã¯ã©ã¹ã¿ãŒã«ãããã€ãããŠãããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã«åæ§ã®ããžãã¯ãè¿œå ããã«ã¯ã©ãããã°ããã§ãããã?
ã¢ããªã±ãŒã·ã§ã³ããã§ã«ãããã€ãããŠããå Žåããã®ã¿ã¹ã¯ã¯äžå¯èœã«æãããããããŸããã ãã ããå¥ã®ãªãã·ã§ã³ããããŸãã
ãµãŒãã¹ã¡ãã·ã¥ããæäŒãããŸã
ãããããã¯ã©ã€ã¢ã³ãåŽã®è² è·åæ£æŠç¥ãéåžžã«æšæºçãªãã®ã§ããããšã«ãã§ã«æ°ã¥ããŠããã§ãããã
ã¢ããªã±ãŒã·ã§ã³ãèµ·åãããšã次ã®ããšãè¡ãããŸãã
- ãµãŒãã¹ãã IP ã¢ãã¬ã¹ã®ãªã¹ããååŸããŸãã
- æ¥ç¶ããŒã«ãéããŠç¶æããŸãã
- ãšã³ããã€ã³ããè¿œå ãŸãã¯åé€ããŠãããŒã«ãå®æçã«æŽæ°ããŸãã
ã¢ããªã±ãŒã·ã§ã³ããªã¯ãšã¹ããè¡ãå Žåã¯ã次ã®åŠçãè¡ããŸãã
- äœããã®ããžã㯠(ã©ãŠã³ãããã³ãªã©) ã䜿çšããŠãå©çšå¯èœãªæ¥ç¶ãéžæããŸãã
- ãªã¯ãšã¹ããå®è¡ããŸãã
ãããã®æé ã¯ãWebSocketãgRPCãAMQP æ¥ç¶ã®äž¡æ¹ã§æ©èœããŸãã
ãã®ããžãã¯ãå¥ã®ã©ã€ãã©ãªã«åé¢ããã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšã§ããŸãã
ãã ãã代ããã« Istio ã Linkerd ãªã©ã®ãµãŒãã¹ ã¡ãã·ã¥ã䜿çšããããšãã§ããŸãã
Service Mesh ã¯ã次ã®ããã»ã¹ã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ã匷åããŸãã
- ãµãŒãã¹ã® IP ã¢ãã¬ã¹ãèªåçã«æ€çŽ¢ããŸãã
- WebSocket ã gRPC ãªã©ã®æ¥ç¶ããã¹ãããŸãã
- æ£ãããããã³ã«ã䜿çšããŠãªã¯ãšã¹ãã®ãã©ã³ã¹ããšããŸãã
Service Mesh ã¯ã¯ã©ã¹ã¿ãŒå ã®ãã©ãã£ãã¯ã®ç®¡çã«åœ¹ç«ã¡ãŸããããªãœãŒã¹ãããªãæ¶è²»ããŸãã ä»ã®ãªãã·ã§ã³ãšããŠã¯ãNetflix ãªãã³ãªã©ã®ãµãŒãããŒã㣠ã©ã€ãã©ãªã Envoy ãªã©ã®ããã°ã©ã å¯èœãªãããã·ã䜿çšããæ¹æ³ããããŸãã
ãã©ã³ã¹ã®åé¡ãç¡èŠãããšã©ããªãã§ãããã?
è² è·åæ£ã䜿çšããªãããšãéžæããŠããå€åã«æ°ä»ããªãããšããããŸãã ããã€ãã®äœæ¥ã·ããªãªãèŠãŠã¿ãŸãããã
ãµãŒããŒãããã¯ã©ã€ã¢ã³ãã®æ¹ãå€ãå Žåãããã¯ããã»ã©å€§ããªåé¡ã§ã¯ãããŸããã
XNUMX ã€ã®ãµãŒããŒã«æ¥ç¶ãã XNUMX ã€ã®ã¯ã©ã€ã¢ã³ãããããšããŸãã ãã©ã³ã¹èª¿æŽããªãå Žåã§ããäž¡æ¹ã®ãµãŒããŒã䜿çšãããŸãã
æ¥ç¶ã¯åçã«åæ£ãããŠããªãå¯èœæ§ããããŸãããããã XNUMX ã€ã®ã¯ã©ã€ã¢ã³ããåããµãŒããŒã«æ¥ç¶ãããŠããŸãããäž¡æ¹ã®ãµãŒããŒã䜿çšãããå¯èœæ§ãååã«ãããŸãã
ããã«åé¡ãªã®ã¯ããã®éã®ã·ããªãªã§ãã
ã¯ã©ã€ã¢ã³ãã®æ°ãå°ãªãããµãŒããŒã®æ°ãå€ãå ŽåããªãœãŒã¹ãååã«æŽ»çšããããæœåšçãªããã«ããã¯ãçºçããå¯èœæ§ããããŸãã
XNUMX ã€ã®ã¯ã©ã€ã¢ã³ããš XNUMX ã€ã®ãµãŒããŒããããšããŸãã æè¯ã®å ŽåãXNUMX å°ã®ãµãŒããŒã®ãã¡ XNUMX å°ã«å¯Ÿã㊠XNUMX ã€ã®æ°žç¶æ¥ç¶ãååšããŸãã
æ®ãã®ãµãŒããŒã¯ã¢ã€ãã«ç¶æ ã«ãªããŸãã
ããã XNUMX ã€ã®ãµãŒããŒãã¯ã©ã€ã¢ã³ãèŠæ±ãåŠçã§ããªãå Žåãæ°Žå¹³ã¹ã±ãŒãªã³ã°ã¯åœ¹ã«ç«ã¡ãŸããã
ãŸãšã
Kubernetes ãµãŒãã¹ã¯ãã»ãšãã©ã®æšæºç㪠Web ã¢ããªã±ãŒã·ã§ã³ ã·ããªãªã§åäœããããã«èšèšãããŠããŸãã
ãã ããããŒã¿ããŒã¹ãgRPCãWebSocket ãªã©ãæ°žç¶ç㪠TCP æ¥ç¶ã䜿çšããã¢ããªã±ãŒã·ã§ã³ ãããã³ã«ã䜿çšãå§ãããšããµãŒãã¹ã¯é©åã§ã¯ãªããªããŸãã Kubernetes ã¯ãæ°žç¶ç㪠TCP æ¥ç¶ã®ãã©ã³ã¹ããšãããã®å éšã¡ã«ããºã ãæäŸããŸããã
ããã¯ãã¯ã©ã€ã¢ã³ãåŽã®ãã©ã³ã¹ã念é ã«çœ®ããŠã¢ããªã±ãŒã·ã§ã³ãäœæããå¿ èŠãããããšãæå³ããŸãã
ããŒã ãäœæãã翻蚳
ãã®ãããã¯ã«é¢ããŠä»ã«äœãèªãã¹ãã:
Kubernetes ã® XNUMX ã€ã®ã¬ãã«ã®èªåã¹ã±ãŒãªã³ã°ãšããããå¹æçã«äœ¿çšããæ¹æ³ .èäœæš©äŸµå®³ã®ç²Ÿç¥ãåãã Kubernetes ãšå®è£ çšã®ãã³ãã¬ãŒã .ããžã¿ã«å€é©ã«é¢ãã Telegram ãã£ãã« .
åºæïŒ habr.com