ããŒãã 翻蚳ã: Dailymotion ã¯äžçæ倧ã®ãã㪠ãã¹ãã£ã³ã° ãµãŒãã¹ã® 8 ã€ã§ããããã泚ç®ãã¹ã Kubernetes ãŠãŒã¶ãŒã§ãã ãã®è³æã§ã¯ãã·ã¹ãã ã¢ãŒããã¯ãã® David Donchez ããKXNUMXs ã«åºã¥ãå瀟ã®æ¬çªãã©ãããã©ãŒã ã®äœæçµæãå
±æããŠããŸããããã¯ãGKE ãžã®ã¯ã©ãŠãã®ã€ã³ã¹ããŒã«ããå§ãŸãããã€ããªãã ãœãªã¥ãŒã·ã§ã³ãšããŠçµäºããŸãããããã«ãããå¿çæéã®åäžãšã€ã³ãã©ã¹ãã©ã¯ã㣠ã³ã¹ãã®ç¯çŽãå¯èœã«ãªããŸããã
ã³ã¢ API ã®åæ§ç¯ã®æ±ºå®
Kubernetes ã«åºã¥ããŠç¬èªã®ãã©ãããã©ãŒã ãæ§ç¯ãã䟡å€ãããã®ã¯ãªãã§ãã?
Google Cloud ã䜿çšãããšããã«æ¬çªã¬ãã«ã® API ãäœæã§ããŸã
2016幎ã®å€
XNUMX幎åãDailymotionãè²·åãããçŽåŸã
ã³ã³ããããªãŒã±ã¹ãã¬ãŒã·ã§ã³ ãœãªã¥ãŒã·ã§ã³ãããã³éå»ã®çµéšã®åæã«åºã¥ããŠãç§ãã¡ã¯ Kubernetes ãæ£ããéžæã§ãããšç¢ºä¿¡ããŠããŸãã äžéšã®éçºè ã¯ãã§ã«åºæ¬æŠå¿µãç解ãããã®äœ¿çšæ¹æ³ãç¥ã£ãŠããŸãããããã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ã®å€é©ã«ãšã£ãŠå€§ããªå©ç¹ã§ããã
ã€ã³ãã©ã¹ãã©ã¯ãã£ã®èŠ³ç¹ããèŠããšãæ°ããã¿ã€ãã®ã¯ã©ãŠããã€ãã£ã ã¢ããªã±ãŒã·ã§ã³ããã¹ãããã«ã¯ã匷åã§æè»ãªã·ã¹ãã ãå¿ èŠã§ããã ç§ãã¡ã¯ãå®å¿ããŠå¯èœãªéãå ç¢ãªãªã³ãã¬ãã¹ ãã©ãããã©ãŒã ãæ§ç¯ã§ãããããæ ã®åãã«ã¯ã©ãŠãã«ãšã©ãŸãããšãéžæããŸããã ç§ãã¡ã¯ Google Kubernetes Engine ã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ããããã€ããããšã«ããŸããããé ããæ©ããèªç€Ÿã®ããŒã¿ã»ã³ã¿ãŒã«ç§»è¡ãããã€ããªããæŠç¥ãé©çšããããšã«ãªãããšã¯åãã£ãŠããŸããã
GKEãéžãã çç±ã¯äœã§ããïŒ
ç§ãã¡ã¯äž»ã«æè¡çãªçç±ãããã®éžæãããŸããã ããã«ãäŒæ¥ã®ããžãã¹ ããŒãºãæºããã€ã³ãã©ã¹ãã©ã¯ãã£ãè¿ éã«æäŸããå¿ èŠããããŸããã ã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãã£ã³ã°ã«ã¯ãå°ççåæ£ãã¹ã±ãŒã©ããªãã£ãèé害æ§ãªã©ãããã€ãã®èŠä»¶ããããŸããã
Dailymotion ã® GKE ã¯ã©ã¹ã¿
Dailymotion ã¯äžçäžã§å©çšã§ããåç»ãã©ãããã©ãŒã ã§ãããããåŸ
ã¡æéãççž®ããŠãµãŒãã¹ã®å質ãåäžãããããšèããŠããŸããã ïŒåŸ
ã¡æéïŒã 以å
ãã®ã¬ã€ãã³ã·ã«å¯Ÿããææãã¯ããã©ãããã©ãŒã ã®ãããã¯ãŒã¯ ã¢ãŒããã¯ãã£ã«å¯ŸããŠçå£ãªäœæ¥ãè¡ãå¿ èŠãããããšãæå³ããŠããŸããã ã»ãšãã©ã®ã¯ã©ãŠã ãµãŒãã¹ã§ã¯ããªãŒãžã§ã³ããšã«ç¬èªã®ãããã¯ãŒã¯ãäœæããVPN ãŸãã¯ããçš®ã®ãããŒãžã ãµãŒãã¹ãä»ããŠæ¥ç¶ããå¿ èŠããããŸããããGoogle Cloud ã§ã¯ããã¹ãŠã® Google ãªãŒãžã§ã³ãã«ããŒããå®å šã«ã«ãŒãã£ã³ã°å¯èœãªåäžãããã¯ãŒã¯ãäœæã§ããŸãã ããã¯ãã·ã¹ãã ã®éçšãšå¹çã®ç¹ã§å€§ããªã¡ãªãããšãªããŸãã
ããã«ãGoogle Cloud ã®ãããã¯ãŒã¯ ãµãŒãã¹ãšããŒããã©ã³ãµã¯åªããæ©èœãçºæ®ããŸãã åãªãŒãžã§ã³ã®ä»»æã®ãããªã㯠IP ã¢ãã¬ã¹ã䜿çšã§ããããã«ããã ãã§ãæ®ãã®éšåã¯åªãã BGP ãããã³ã«ãåŠçããŸã (ã€ãŸãããŠãŒã¶ãŒãæãè¿ãã¯ã©ã¹ã¿ãŒã«ãªãã€ã¬ã¯ãããŸã)ã æããã«ãé害ãçºçããå Žåããã©ãã£ãã¯ã¯äººéã®ä»å ¥ãªãã§èªåçã«å¥ã®ãªãŒãžã§ã³ã«ç§»åããŸãã
Google ããŒã ãã©ã³ã·ã³ã°ã®ã¢ãã¿ãªã³ã°
ç§ãã¡ã®ãã©ãããã©ãŒã 㯠GPU ãå€çšããŠããŸãã Google Cloud ã䜿çšãããšããããã Kubernetes ã¯ã©ã¹ã¿å ã§çŽæ¥éåžžã«å¹æçã«äœ¿çšã§ããŸãã
åœæãã€ã³ãã©ã¹ãã©ã¯ã㣠ããŒã ã¯äž»ã«ãç©çãµãŒããŒã«ãããã€ãããã¬ã¬ã·ãŒ ã¹ã¿ãã¯ã«éç¹ã眮ããŠããŸããã ãã®ããããããŒãžã ãµãŒãã¹ (Kubernetes ãã¹ã¿ãŒãå«ã) ã䜿çšããããšã§èŠä»¶ãæºããããããŒã«ã« ã¯ã©ã¹ã¿ãŒã§äœæ¥ããããŒã ããã¬ãŒãã³ã°ã§ããããã«ãªããŸããã
ãã®çµæãäœæ¥éå§ããããã 6 ãæåŸã« Google Cloud ã€ã³ãã©ã¹ãã©ã¯ãã£ã§æ¬çªãã©ãã£ãã¯ã®åä¿¡ãéå§ããããšãã§ããŸããã
ãã ããå€ãã®å©ç¹ãããã«ãããããããã¯ã©ãŠã ãããã€ããŒãšã®é£æºã«ã¯äžå®ã®ã³ã¹ããããããè² è·ã«å¿ããŠã³ã¹ããå¢å ããå¯èœæ§ããããŸãã ãã®ãããç§ãã¡ã¯äœ¿çšããåãããŒãžã ãµãŒãã¹ã泚ææ·±ãåæããå°æ¥çã«ã¯ãªã³ãã¬ãã¹ã§å®è£ ããããšèããŠããŸããã å®éãããŒã«ã« ã¯ã©ã¹ã¿ãŒã®å°å ¥ã¯ 2016 幎æ«ã«å§ãŸããåæã«ãã€ããªããæŠç¥ãéå§ãããŸããã
ããŒã«ã« ã³ã³ãã ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ ãã©ãããã©ãŒã Dailymotion ã®éå§
2016幎ç§
ã¹ã¿ãã¯å
šäœãå®çšŒåã®æºåãã§ããŠãããAPI ã§äœæ¥ã§ããç¶æ
ã§
åœæããŠãŒã¶ãŒã¯æ¯æ 3 åæ¬ä»¥äžã®åç»ãèŠèŽããŠããŸããã ãã¡ãããåœç€Ÿã¯é·å¹Žã«ããã£ãŠç¬èªã®åºç¯ãªã³ã³ãã³ãé ä¿¡ãããã¯ãŒã¯ãä¿æããŠããŸããã ç§ãã¡ã¯ãã®ç¶æ³ãå©çšããŠãæ¢åã®ããŒã¿ã»ã³ã¿ãŒã« Kubernetes ã¯ã©ã¹ã¿ãŒããããã€ããããšèããŸããã
Dailymotion ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ã2,5 ã€ã®ããŒã¿ã»ã³ã¿ãŒã«ãã XNUMX å°ãè¶ ãããµãŒããŒã§æ§æãããŠããŸããã ãããã¯ãã¹ãŠ Saltstack ã䜿çšããŠæ§æãããŸãã ãã¹ã¿ãŒããŒããšã¯ãŒã«ãŒããŒããããã³ etcd ã¯ã©ã¹ã¿ãŒãäœæããããã«å¿ èŠãªã¬ã·ãããã¹ãŠæºåãå§ããŸããã
ãããã¯ãŒã¯éš
ç§ãã¡ã®ãããã¯ãŒã¯ã¯å®å
šã«ã«ãŒãã£ã³ã°ãããŠããŸãã åãµãŒããŒã¯ãExabgp ã䜿çšããŠãããã¯ãŒã¯äžã§ãã® IP ãã¢ããã¿ã€ãºããŸãã ããã€ãã®ãããã¯ãŒã¯ ãã©ã°ã€ã³ãæ¯èŒããŸãããã(L3 ã¢ãããŒãã䜿çšããŠãããã) ãã¹ãŠã®ããŒãºãæºãããå¯äžã®ãã©ã°ã€ã³ã¯æ¬¡ã®ãšããã§ãã
å©çšå¯èœãªãã¹ãŠã®ã€ã³ãã©ã¹ãã©ã¯ãã£èŠçŽ ã䜿çšããããããæåã«è¡ãå¿ èŠãããã®ã¯ãèªç€Ÿéçºã®ãããã¯ãŒã¯ ãŠãŒãã£ãªã㣠(ãã¹ãŠã®ãµãŒããŒã§äœ¿çšããã) ãèŠã€ããããšã§ãããããã䜿çšããŠãKubernetes ããŒããåãããããã¯ãŒã¯äžã® IP ã¢ãã¬ã¹ç¯å²ãã¢ããã¿ã€ãºããŸãã Calico ããããã« IP ã¢ãã¬ã¹ãå²ãåœãŠãããšãèš±å¯ããŸãããããããã¯ãŒã¯æ©åšäžã® BGP ã»ãã·ã§ã³ã«ã¯äœ¿çšãããçŸåšã䜿çšããŠããŸããã å®éãã«ãŒãã£ã³ã°ã¯ Exabgp ã«ãã£ãŠåŠçãããCalico ã䜿çšãããµãããããã¢ããã¿ã€ãºããŸãã ããã«ãããå éšãããã¯ãŒã¯ (ç¹ã«ããŒã ãã©ã³ãµãŒ) ããä»»æã®ãããã«ã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã
ã€ã³ã°ã¬ã¹ãã©ãã£ãã¯ã®ç®¡çæ¹æ³
åä¿¡ãªã¯ãšã¹ããç®çã®ãµãŒãã¹ã«ãªãã€ã¬ã¯ãããã«ã¯ãKubernetes ã€ã³ã°ã¬ã¹ ãªãœãŒã¹ãšã®çµ±åã«ããã€ã³ã°ã¬ã¹ ã³ã³ãããŒã©ãŒã䜿çšããããšã決å®ãããŸããã
XNUMX 幎åãnginx-ingress-controller ã¯æãæçããã³ã³ãããŒã©ãŒã§ãããNginx ã¯é·ãéååšããŠããããã®å®å®æ§ãšããã©ãŒãã³ã¹ã§ç¥ãããŠããŸããã
ç§ãã¡ã®ã·ã¹ãã ã§ã¯ãã³ã³ãããŒã©ãŒãå°çšã® 10 ã®ã¬ããã ãã¬ãŒã ãµãŒããŒã«é 眮ããããšã«ããŸããã åã³ã³ãããŒã©ãŒã¯ã察å¿ããã¯ã©ã¹ã¿ãŒã® kube-apiserver ãšã³ããã€ã³ãã«æ¥ç¶ãããŸããã ãããã®ãµãŒããŒã¯ããããªã㯠IP ã¢ãã¬ã¹ãŸãã¯ãã©ã€ããŒã IP ã¢ãã¬ã¹ãã¢ããã¿ã€ãºããããã« Exabgp ã䜿çšããŸããã ç§ãã¡ã®ãããã¯ãŒã¯ ããããžã§ã¯ããããã®ã³ã³ãããŒã©ãŒãã BGP ã䜿çšããŠãNodePort ãªã©ã®ãµãŒãã¹ã䜿çšããã«ãã¹ãŠã®ãã©ãã£ãã¯ããããã«çŽæ¥ã«ãŒãã£ã³ã°ã§ããŸãã ãã®ã¢ãããŒãã¯ãããŒãéã®æ°Žå¹³ãã©ãã£ãã¯ãåé¿ããå¹çãåäžãããã®ã«åœ¹ç«ã¡ãŸãã
ã€ã³ã¿ãŒãããããããããžã®ãã©ãã£ãã¯ã®ç§»å
ãã€ããªãã ãã©ãããã©ãŒã ãç解ããã®ã§ããã©ãã£ãã¯ç§»è¡ããã»ã¹èªäœãããã«æ·±ãæãäžããããšãã§ããŸãã
Google Cloud ãã Dailymotion ã€ã³ãã©ã¹ãã©ã¯ãã£ãžã®ãã©ãã£ãã¯ã®ç§»è¡
2018幎ç§
çŽ XNUMX 幎éã®æ§ç¯ããã¹ãããã¥ãŒãã³ã°ãçµãŠãããããäžéšã®ãã©ãã£ãã¯ãåãå ¥ããæºåãæŽã£ãå®å šãª Kubernetes ã¹ã¿ãã¯ãå®æããŸããã
çŸåšã®ã«ãŒãã£ã³ã°æŠç¥ã¯éåžžã«åçŽã§ãããããŒãºãæºããã«ã¯ååã§ãã ãããªã㯠IP (Google Cloud ããã³ Dailymotion äž) ã«å ããŠãAWS Route 53 ã䜿çšããŠããªã·ãŒãèšå®ãããŠãŒã¶ãŒãéžæããã¯ã©ã¹ã¿ãŒã«ãªãã€ã¬ã¯ãããŸãã
Route 53 ã䜿çšããã«ãŒãã£ã³ã° ããªã·ãŒã®äŸ
Google Cloud ã§ã¯ããã¹ãŠã®ã¯ã©ã¹ã¿ã§åäžã® IP ãå ±æãããŠãŒã¶ãŒã¯æãè¿ã GKE ã¯ã©ã¹ã¿ã«ãªãã€ã¬ã¯ãããããããããã¯ç°¡åã§ãã ç§ãã¡ã®ã¯ã©ã¹ã¿ãŒã§ã¯ãIP ãç°ãªãããããã¯ãããžãŒãç°ãªããŸãã
移è¡äžãç§ãã¡ã¯å°åã®ãªã¯ãšã¹ããé©åãªã¯ã©ã¹ã¿ãŒã«ãªãã€ã¬ã¯ãããããåªãããã®ã¢ãããŒãã®å©ç¹ãè©äŸ¡ããŸããã
GKE ã¯ã©ã¹ã¿ã¯ã«ã¹ã¿ã ææšã䜿çšããŠèªåã¹ã±ãŒã«ããããã«æ§æãããŠãããããåä¿¡ãã©ãã£ãã¯ã«åºã¥ããŠã¹ã±ãŒã«ã¢ãã/ã¹ã±ãŒã«ããŠã³ããŸãã
éåžžã¢ãŒãã§ã¯ããã¹ãŠã®ãªãŒãžã§ã³ ãã©ãã£ãã¯ã¯ããŒã«ã« ã¯ã©ã¹ã¿ã«è»¢éãããGKE ã¯åé¡ãçºçããå Žåã®äºåãšããŠæ©èœããŸãïŒãã«ã¹ãã§ãã¯ã¯ Route 53 ã«ãã£ãŠå®è¡ãããŸãïŒã
...
å°æ¥çã«ã¯ãã«ãŒãã£ã³ã° ããªã·ãŒãå®å šã«èªååãããŠãŒã¶ãŒã®ã¢ã¯ã»ã·ããªãã£ãç¶ç¶çã«åäžãããèªåŸåãã€ããªããæŠç¥ãå®çŸããããšèããŠããŸãã ãã©ã¹ã®é¢ãšããŠã¯ãã¯ã©ãŠãã®ã³ã¹ããå€§å¹ ã«åæžãããAPI ã®å¿çæéãççž®ãããŸããã ç§ãã¡ã¯çµæãšããŠåŸãããã¯ã©ãŠã ãã©ãããã©ãŒã ãä¿¡é ŒããŠãããå¿ èŠã«å¿ããŠããå€ãã®ãã©ãã£ãã¯ãããã«ãªãã€ã¬ã¯ãããæºåãã§ããŠããŸãã
翻蚳è ããã®è¿œäŒž
Kubernetes ã«é¢ããæè¿ã® Dailymotion ã®æçš¿ã«ãèå³ããããããããŸããã ããã¯ãå€ãã® Kubernetes ã¯ã©ã¹ã¿ãŒã§ã® Helm ã䜿çšããã¢ããªã±ãŒã·ã§ã³ã®ãããã€ã¡ã³ãã«ç¹åããŠããŸãã
ç§ãã¡ã®ããã°ããèªã¿ãã ãã:
- «
Tinder ãã Kubernetes ãžã®ç§»è¡ 'ã - «
éçšç°å¢ã«ããã Kubernetes ã®æåäºäŸã ããŒã 10: Reddit "; - «
éçšç°å¢ã«ããã Kubernetes ã®æåäºäŸã ããŒã 9: CERN ãš 210 åã® K8s ã¯ã©ã¹ã¿ãŒ "; - «
éçšç°å¢ã«ããã Kubernetes ã®æåäºäŸã ããŒã 8: Huawei瀟 "; - «
éçšç°å¢ã«ããã Kubernetes ã®æåäºäŸã ããŒã 7: ãã©ãã¯ãã㯠"; - «
éçšç°å¢ã«ããã Kubernetes ã®æåäºäŸã ããŒã 6: BlaBlaCar "; - «
éçšç°å¢ã«ããã Kubernetes ã®æåäºäŸã ããŒã 5: ããžã¿ã«ãã³ã¯ ã¢ã³ãŸ "; - «
éçšç°å¢ã«ããã Kubernetes ã®æåäºäŸã ããŒã 4: SoundCloud (ããã¡ããŠã¹ã«ãã) "; - «
éçšç°å¢ã«ããã Kubernetes ã®æåäºäŸã ããŒã 3: GitHubã® "; - «
éçšç°å¢ã«ããã Kubernetes ã®æåäºäŸã ããŒã 2: ã³ã³ã«ãŒãšSAP "; - «
éçšç°å¢ã«ããã Kubernetes ã®æåäºäŸã ããŒã 1: eBay ããã® 4200 åã®çåºãš TessMaster 'ã
åºæïŒ habr.com