ãã®ã¹ããŒãªãŒã¯ãå®çšŒåç°å¢ãç¹ã« Kubernetes ã§ã³ã³ãããŒã䜿çšããæ¹æ³ã«ã€ããŠã§ãã ãã®èšäºã§ã¯ãã³ã³ããããã®ã¡ããªã¯ã¹ãšãã°ã®åéãããã³ã€ã¡ãŒãžã®æ§ç¯ã«ã€ããŠèª¬æããŸãã
ç§ãã¡ã¯ãB2B ããã³ B2C åãã®ãªã³ã©ã€ã³ååŒããã³ãã£ã³ããã¯è£œåã®ãµãŒãã¹ãéçºãããã£ã³ããã¯äŒæ¥ Exness ã®åºèº«ã§ãã åœç€Ÿã®ç 究éçºã«ã¯ããŸããŸãªããŒã ããããéçºéšéã«ã¯ 100 人以äžã®åŸæ¥å¡ãããŸãã
ç§ãã¡ã¯ãéçºè ãã³ãŒããåéããŠå®è¡ããããã®ãã©ãããã©ãŒã ãæ åœããããŒã ã代衚ããŸãã ç¹ã«ãã¢ããªã±ãŒã·ã§ã³ããã®ã¡ããªã¯ã¹ããã°ãã€ãã³ãã®åéãä¿åãã¬ããŒããæ åœããŸãã åœç€Ÿã¯çŸåšãéçšç°å¢ã§çŽ 50 ã® Docker ã³ã³ãããéçšããXNUMX TB ã®ããã° ããŒã¿ ã¹ãã¬ãŒãžãç¶æããKubernetesãRancherãããŸããŸãªãããªã㯠ã¯ã©ãŠã ãããã€ããŒãªã©ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãäžå¿ã«æ§ç¯ãããã¢ãŒããã¯ã㣠ãœãªã¥ãŒã·ã§ã³ãæäŸããŠããŸãã
ç§ãã¡ã®ã¢ãããŒã·ã§ã³
äœãçããŠããã®ã§ããïŒ èª°ãçããããšãã§ããŸããã å²çè£ã¯ã©ãã«ãããŸããïŒ ç解ããã®ã¯é£ããã§ãã ãã€çºç«ããã®ã§ããïŒ èª¿ã¹ãããšã¯ã§ããŸãããããã«ã¯ããããŸããã
äžéšã®ã³ã³ããã¯ç«ã£ãŠããã®ã«ãä»ã®ã³ã³ããã¯ãªãåããŠããã®ã§ãããã? ã©ã®ã³ã³ãããåå ã ã£ãã®ã§ãããã? çµå±ã®ãšãããã³ã³ããã®å€åŽã¯åãã§ãããå
åŽã«ã¯ããããã® Neo ãååšããŸãã
ç§ãã¡ã®éçºè
ã¯æèœãªäººæã§ãã 圌ãã¯äŒç€Ÿã«å©çãããããåªãããµãŒãã¹ãæäŸããŸãã ããããã¢ããªã±ãŒã·ã§ã³ãå
¥ã£ãã³ã³ããã誀ã£ãŠåäœãããšãé害ãçºçããŸãã XNUMX ã€ã®ã³ã³ãããŒã¯ CPU ãéå°ã«æ¶è²»ããå¥ã®ã³ã³ãããŒã¯ãããã¯ãŒã¯ãæ¶è²»ããXNUMX çªç®ã®ã³ã³ãããŒã¯ I/O æäœãæ¶è²»ããŸããXNUMX çªç®ã®ã³ã³ãããŒã¯ãœã±ããã§äœãè¡ãã®ããŸã£ããäžæã§ãã ãã¹ãŠã厩ãèœã¡ãè¹ã¯æ²æ²¡ããŸãã
ãšãŒãžã§ã³ã
å éšã§äœãèµ·ãã£ãŠããããç解ããããã«ããšãŒãžã§ã³ããã³ã³ããå ã«çŽæ¥é 眮ããããšã«ããŸããã
ãããã®ãšãŒãžã§ã³ãã¯ãã³ã³ãããäºãã«å£ããªããããªç¶æ
ã«ä¿ã€ããã°ã©ã ãæå¶ããŸãã ãšãŒãžã§ã³ãã¯æšæºåãããŠãããããã³ã³ããããµãŒãã¹ããããã®æšæºåãããã¢ãããŒããå¯èœã«ãªããŸãã
ãã®å ŽåããšãŒãžã§ã³ãã¯ãã¿ã°ä»ããã調æŽãããæšæºåœ¢åŒã®ãã°ãæäŸããå¿ èŠããããŸãã ãŸããããžãã¹ ã¢ããªã±ãŒã·ã§ã³ã®èŠ³ç¹ããæ¡åŒµå¯èœãªæšæºåãããã¡ããªã¯ã¹ãæäŸããå¿ èŠããããŸãã
ãšãŒãžã§ã³ãã¯ãããŸããŸãªã€ã¡ãŒãž (DebianãAlpineãCentos ãªã©) ããµããŒãããããŸããŸãªãªãŒã±ã¹ãã¬ãŒã·ã§ã³ ã·ã¹ãã ã§åäœã§ãããéçšãšã¡ã³ããã³ã¹ã®ããã®ãŠãŒãã£ãªãã£ãæå³ããŸãã
æåŸã«ããšãŒãžã§ã³ã㯠Docker ãã¡ã€ã«ãå«ãåçŽãª CI/CD ããµããŒãããå¿ èŠããããŸãã ããããªããšãã³ã³ããããæ²ãã£ããã¬ãŒã«ã«æ²¿ã£ãŠé éããå§ãããããè¹ã¯åŽ©å£ããŠããŸããŸãã
ãã«ãããã»ã¹ãšã¿ãŒã²ããã€ã¡ãŒãžããã€ã¹
ãã¹ãŠãæšæºåããŠç®¡çããããããã«ã¯ãããçš®ã®æšæºçãªãã«ã ããã»ã¹ã«åŸãå¿ èŠããããŸãã ãããã£ãŠãã³ã³ããããšã«ã³ã³ãããåéããããšã«ããŸããããããååž°ã§ãã
ããã§ã¯ãã³ã³ããã¯å®ç·ã§è¡šãããŠããŸãã åæã«ã圌ãã¯ã人çãã©ãºããªãŒã®ããã«èŠããªãããã«ãé
åžããããå
¥ããããšã«æ±ºããŸããã ãªããã®ãããªããšãè¡ãããã®ãã«ã€ããŠã¯ã以äžã§èª¬æããŸãã
ãã®çµæãç¹å®ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ ããŒãžã§ã³ãšç¹å®ã®ã¹ã¯ãªãã ããŒãžã§ã³ãåç
§ããããŒãžã§ã³åºæã®ã³ã³ãããŒã§ãããã«ã ããŒã«ãäœæãããŸãã
ã©ã®ããã«äœ¿çšããŸãã? ã³ã³ãããå«ã Docker Hub ããããŸãã ãããã·ã¹ãã å ã«ãã©ãŒãªã³ã°ããŠãå€éšã®äŸåé¢ä¿ãæé€ããŸãã çµæã¯ãé»è²ã§ããŒã¯ãããã³ã³ãããŒã§ãã å¿ èŠãªãã¹ãŠã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ãšã¹ã¯ãªãããã³ã³ãããŒã«ã€ã³ã¹ããŒã«ããããã®ãã³ãã¬ãŒããäœæããŸãã ãã®åŸãããã«äœ¿çšã§ããã€ã¡ãŒãžãçµã¿ç«ãŠãŸããéçºè ã¯ãã³ãŒããšç¬èªã®ç¹å¥ãªäŸåé¢ä¿ããã®ã€ã¡ãŒãžã«è¿œå ããŸãã
ãã®ã¢ãããŒãã®äœãè¯ãã®ã§ãããã?
- ãŸãããã«ã ããŒã«ã®å®å šãªããŒãžã§ã³ç®¡ç (ãã«ã ã³ã³ãããŒãã¹ã¯ãªãããããã³é åžããŒãžã§ã³)ã
- 次ã«ãæšæºåãéæããŸããããã³ãã¬ãŒããäžéã€ã¡ãŒãžãããã«äœ¿çšã§ããã€ã¡ãŒãžãåãæ¹æ³ã§äœæããŸãã
- 第äžã«ãã³ã³ããã¯ç§»æ€æ§ããããããŸãã ä»æ¥ã¯ Gitlab ã䜿çšããŠããŸãããææ¥ã¯ TeamCity ãŸã㯠Jenkins ã«åãæ¿ããŠãåãæ¹æ³ã§ã³ã³ãããå®è¡ã§ããããã«ãªããŸãã
- XNUMX çªç®ã«ãäŸåé¢ä¿ãæå°éã«æããŸãã é åžããããã³ã³ããã«å ¥ããã®ã¯å¶ç¶ã§ã¯ãããŸãããããã«ãããé åžããããæ¯åã€ã³ã¿ãŒãããããããŠã³ããŒãããå¿ èŠããªããªããŸããã
- 第 XNUMX ã«ããã«ãé床ãåäžããŸãããããŒã«ã« ã€ã¡ãŒãžããããããã€ã¡ãŒãžã®ããŒã«ã« ã³ããŒãååšãããããããŠã³ããŒãã«ãããæéãç¡é§ã«ããããšããªããªããŸãã
èšãæããã°ãå¶åŸ¡ãããæè»ãªçµã¿ç«ãŠããã»ã¹ãå®çŸããŸããã å®å šã«ããŒãžã§ã³ç®¡çãããã³ã³ãããŒã®æ§ç¯ã«ã¯åãããŒã«ã䜿çšããŸãã
ãã«ãæé ã®ä»çµã¿
ã¢ã»ã³ããªã¯ XNUMX ã€ã®ã³ãã³ãã§èµ·åãããã€ã¡ãŒãžå
ã§ããã»ã¹ãå®è¡ãããŸã (èµ€ã§åŒ·èª¿è¡šç€ºãããŠããŸã)ã éçºè
㯠Docker ãã¡ã€ã« (é»è²ã§åŒ·èª¿è¡šç€º) ãæã£ãŠããã®ã§ããããã¬ã³ããªã³ã°ããŠãå€æ°ãå€ã«çœ®ãæããŸãã ãããŠããã®éçšã§ããããŒãšããã¿ãŒãè¿œå ããŸã - ãããã¯ç§ãã¡ã®ãšãŒãžã§ã³ãã§ãã
ããããŒã¯ã察å¿ããç»åããã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ãè¿œå ããŸãã ãããŠããã¿ãŒã¯å éšã«ãµãŒãã¹ãã€ã³ã¹ããŒã«ããã¯ãŒã¯ããŒãããã®ã³ã°ããã®ä»ã®ãšãŒãžã§ã³ãã®èµ·åãæ§æãããšã³ããªãã€ã³ãã眮ãæããŸãã
ç§ãã¡ã¯ã¹ãŒããŒãã€ã¶ãŒãèšçœ®ãããã©ããé·ãéèããŸããã çµå±ãç§ãã¡ã¯åœŒãå¿
èŠã ãšå€æããŸããã ç§ãã¡ã¯S6ãéžã³ãŸããã ã¹ãŒããŒãã€ã¶ã¯ã³ã³ãã管çãæäŸããŸããã¡ã€ã³ ããã»ã¹ãã¯ã©ãã·ã¥ããå Žåã«æ¥ç¶ã§ããããã«ãªããã³ã³ãããåäœæããã«æåã§ç®¡çã§ããŸãã ãã°ãšã¡ããªã¯ã¹ã¯ãã³ã³ããå
ã§å®è¡ãããããã»ã¹ã§ãã ãŸããäœããã®æ¹æ³ã§å¶åŸ¡ããå¿
èŠããããŸãããããã¯ã¹ãŒããŒãã€ã¶ãŒã®å©ããåããŠè¡ãããŸãã æåŸã«ãS6 ã¯ããŠã¹ããŒãã³ã°ãä¿¡å·åŠçããã®ä»ã®ã¿ã¹ã¯ãåŠçããŸãã
ããŸããŸãªãªãŒã±ã¹ãã¬ãŒã·ã§ã³ ã·ã¹ãã ã䜿çšãããããæ§ç¯ããŠå®è¡ããåŸãã³ã³ãããŒã¯èªåãã©ã®ãããªç°å¢ã«ããããç解ããç¶æ³ã«å¿ããŠåäœããå¿
èŠããããŸãã äŸãã°ïŒ
ããã«ãããXNUMX ã€ã®ã€ã¡ãŒãžãæ§ç¯ããŠããããããŸããŸãªãªãŒã±ã¹ãã¬ãŒã·ã§ã³ ã·ã¹ãã ã§å®è¡ã§ããããã«ãªãããã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ ã·ã¹ãã ã®è©³çŽ°ãèæ
®ããŠèµ·åãããŸãã
åãã³ã³ããã«å¯ŸããŠãDocker ãš Kubernetes ã§ã¯ç°ãªãããã»ã¹ ããªãŒãåŸãããŸãã
ãã€ããŒã㯠S6 ã®ç£èŠäžã§å®è¡ãããŸãã ã³ã¬ã¯ã¿ãŒãšã€ãã³ãã«æ³šæããŠãã ããããããã¯ãã°ãšã¡ããªãã¯ãæ
åœãããšãŒãžã§ã³ãã§ãã Kubernetes ã«ã¯ãããããããŸããããDocker ã«ã¯ãããŸãã ãªãïŒ
ãããããïŒä»¥äžãKubernetes ãããïŒã®ä»æ§ãèŠããšãã€ãã³ã ã³ã³ããããããå ã§å®è¡ããããããã«ã¯ã¡ããªã¯ã¹ãšãã°ãåéããæ©èœãå®è¡ããå¥åã®ã³ã¬ã¯ã¿ ã³ã³ãããããããšãããããŸãã Kubernetes ã®æ©èœã䜿çšããŠãXNUMX ã€ã®ããããåäžããã»ã¹ãããã³/ãŸãã¯ãããã¯ãŒã¯ç©ºéã§ã³ã³ãããŒãå®è¡ã§ããŸãã å®éã«ãšãŒãžã§ã³ãã玹ä»ããããã€ãã®æ©èœãå®è¡ããŸãã ãŸããåãã³ã³ããã Docker ã§èµ·åãããå ŽåããšãŒãžã§ã³ãã¯å éšã§èµ·åãããããããã¹ãŠåãæ©èœãåºåãšããŠåãåããŸããã€ãŸãããã°ãšã¡ããªã¯ã¹ãé ä¿¡ã§ããŸãã
ã¡ããªã¯ã¹ãšãã°
ã¡ããªã¯ã¹ãšãã°ã®é
ä¿¡ã¯è€éãªã¿ã¹ã¯ã§ãã 圌女ã®æ±ºæã«ã¯ããã€ãã®åŽé¢ããããŸãã
ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ãã€ããŒãã®å®è¡ã®ããã«äœæãããŠããããã°ã®å€§éé
ä¿¡ã®ããã«äœæãããŸããã ã€ãŸãããã®ããã»ã¹ã¯æå°éã®ã³ã³ãã㌠ãªãœãŒã¹èŠä»¶ã§å®è¡ããå¿
èŠããããŸãã ç§ãã¡ã¯éçºè
ãæ¯æŽããããåªããŠããŸãããDocker Hub ã³ã³ãããååŸããŠå®è¡ããã°ããã°ãé
ä¿¡ã§ããŸããã
XNUMX çªç®ã®åŽé¢ã¯ããã°ã®éãå¶éããããšã§ãã è€æ°ã®ã³ã³ããã§ãã°éã®æ¥å¢ãçºçããå ŽåïŒã¢ããªã±ãŒã·ã§ã³ãã¹ã¿ã㯠ãã¬ãŒã¹ãã«ãŒãã§åºåããå ŽåïŒãCPUãéä¿¡ãã£ãã«ããã°åŠçã·ã¹ãã ã®è² è·ãå¢å ãããã¹ãã®åäœã«åœ±é¿ãäžããŸãããã¹ãäžã®ã³ã³ããå šäœãšä»ã®ã³ã³ãããç Žæããå Žåãããããã¹ãã®ããã©ãŒã«ãã«ã€ãªããå ŽåããããŸãã
XNUMX çªç®ã®åŽé¢ã¯ãããã«äœ¿çšã§ããã¡ããªã¯ã¹åéæ¹æ³ãã§ããã ãå€ããµããŒãããå¿ èŠããããšããããšã§ãã ãã¡ã€ã«ã®èªã¿åããš Prometheus ãšã³ããã€ã³ãã®ããŒãªã³ã°ãããã¢ããªã±ãŒã·ã§ã³åºæã®ãããã³ã«ã®äœ¿çšãŸã§ã
ãããŠæåŸã®åŽé¢ã¯ããªãœãŒã¹ã®æ¶è²»ãæå°éã«æããããšã§ãã
ç§ãã¡ã¯ãTelegraf ãšåŒã°ãããªãŒãã³ãœãŒã¹ã® Go ãœãªã¥ãŒã·ã§ã³ãéžæããŸããã 140çš®é¡ä»¥äžã®ã€ã³ããããã£ã³ãã«ïŒã€ã³ããããã©ã°ã€ã³ïŒãš30çš®é¡ä»¥äžã®åºåãã£ã³ãã«ïŒã¢ãŠãããããã©ã°ã€ã³ïŒã«å¯Ÿå¿ãããŠãããŒãµã«ã³ãã¯ã¿ãŒã§ãã ãããå®æããã®ã§ãKubernetes ãäŸãšããŠäœ¿çšããæ¹æ³ã説æããŸãã
éçºè
ãã¯ãŒã¯ããŒãããããã€ããKubernetes ãããããäœæãããªã¯ãšã¹ããåä¿¡ãããšããŸãã ãã®æç¹ã§ãCollector ãšåŒã°ããã³ã³ãããŒããããããšã«èªåçã«äœæãããŸã (ãã¥ãŒããŒã·ã§ã³ Webhook ã䜿çšããŸã)ã ã³ã¬ã¯ã¿ãŒã¯åœç€Ÿã®ä»£çåºã§ãã æåã«ããã®ã³ã³ãã㯠Prometheus ããã³ãã°åéã·ã¹ãã ãšé£æºããããã«èªäœãæ§æããŸãã
- ãããè¡ãããã«ãPod ã¢ãããŒã·ã§ã³ã䜿çšãããã®å 容ã«å¿ããŠãããšãã° Prometheus ãšã³ããã€ã³ããäœæããŸãã
- ãããã®ä»æ§ãšç¹å®ã®ã³ã³ãããŒèšå®ã«åºã¥ããŠããã°ã®é ä¿¡æ¹æ³ã決å®ããŸãã
Docker API ãä»ããŠãã°ãåéããŸããéçºè ã¯ãã°ã stdout ãŸã㯠stderr ã«çœ®ãã ãã§ãCollector ããã°ãåé¡ããŸãã ãã¹ãã®éè² è·ãé²ãããã«ããã°ã¯ããçšåºŠã®é 延ã䌎ã£ãŠãã£ã³ã¯ãšããŠåéãããŸãã
ã¡ããªã¯ã¹ã¯ãã³ã³ããå ã®ã¯ãŒã¯ããŒã ã€ã³ã¹ã¿ã³ã¹ (ããã»ã¹) å šäœã§åéãããŸãã ãã¹ãŠã«åå空éãäžãªã©ã®ã¿ã°ãä»ããããPrometheus 圢åŒã«å€æãããåéã§ããããã«ãªããŸã (ãã°ãé€ã)ã ãŸãããã°ãã¡ããªã¯ã¹ãã€ãã³ãã Kafka ã«éä¿¡ããããã«æ¬¡ã®ããšãè¡ããŸãã
- ãã°ã¯ Graylog ã§å©çšã§ããŸã (èŠèŠçåæçš)ã
- ãã°ãã¡ããªã¯ã¹ãã€ãã³ãã¯é·æä¿åã®ããã« Clickhouse ã«éä¿¡ãããŸãã
AWS ã§ã¯ãã¹ãŠããŸã£ããåãããã«æ©èœããŸãããã ããGraylog ã Kafka ãš Cloudwatch ã«çœ®ãæããã ãã§ãã ããã«ãã°ãéä¿¡ãããšããã¹ãŠãéåžžã«äŸ¿å©ã§ããããšãããããŸããããã°ãã©ã®ã¯ã©ã¹ã¿ãŒãšã³ã³ãããŒã«å±ããŠããããããã«ããããŸãã Google Stackdriver ã«ã€ããŠãåæ§ã§ãã ã€ãŸããç§ãã¡ã®ã¹ããŒã ã¯ãKafka ã䜿çšãããªã³ãã¬ãã¹ãšã¯ã©ãŠãã®äž¡æ¹ã§æ©èœããŸãã
ããããåãã Kubernetes ããªãå Žåãã¹ããŒã ã¯å°ãè€éã«ãªããŸãããåãåçã§æ©èœããŸãã
åãããã»ã¹ãã³ã³ããå
ã§å®è¡ãããS6 ã䜿çšããŠèª¿æŽãããŸãã ãã¹ãŠåãããã»ã¹ãåãã³ã³ããå
ã§å®è¡ãããŸãã
çµæãšããŠã
ç§ãã¡ã¯ããã°ãšã¡ããªã¯ã¹ãåéããã³é ä¿¡ããããã®ãªãã·ã§ã³ãåãããã€ã¡ãŒãžã®æ§ç¯ãšèµ·åã®ããã®å®å šãªãœãªã¥ãŒã·ã§ã³ãäœæããŸããã
- ç§ãã¡ã¯ç»åãçµã¿ç«ãŠãããã®æšæºåãããã¢ãããŒããéçºããããã«åºã¥ã㊠CI ãã³ãã¬ãŒããéçºããŸããã
- ããŒã¿åéãšãŒãžã§ã³ãã¯ãTelegraf æ¡åŒµæ©èœã§ãã ç§ãã¡ã¯å®çšŒåç°å¢ã§ããããååã«ãã¹ãããŸããã
- ãã¥ãŒããŒã·ã§ã³ Webhook ã䜿çšããŠããããå ã®ãšãŒãžã§ã³ããå«ãã³ã³ãããŒãå®è£ ããŸãã
- Kubernetes/Rancher ãšã³ã·ã¹ãã ã«çµ±åãããŠããŸãã
- åãã³ã³ãããç°ãªããªãŒã±ã¹ãã¬ãŒã·ã§ã³ ã·ã¹ãã ã§å®è¡ãããšãæåŸ ã©ããã®çµæãåŸãããŸãã
- å®å šã«åçãªã³ã³ãã管çæ§æãäœæããŸããã
å
±èè
: ã€ãªã€ã»ãã«ããã³ã
åºæïŒ habr.com