ä»æ¥ã¯ãã¢ããªã±ãŒã·ã§ã³ã®äœææ¹æ³ãšãã¢ããªã±ãŒã·ã§ã³ã Kubernetes ã§é©åã«åäœããããã®èŠä»¶ã«ã€ããŠèª¬æããäºå®ã§ãã ãã®ãããã¢ããªã±ãŒã·ã§ã³ã«é¢ããŠé çã®çš®ããªããªããã¢ããªã±ãŒã·ã§ã³ã®åšãã«ãäºè£ããçºæãããæ§ç¯ãããããå¿ èŠããªãããã¹ãŠã Kubernetes èªäœãæå³ãããšããã«åäœããŸãã
ãã®è¬æŒã¯ããã®äžç°ã§ãã
ç§ã®åå㯠Pavel Selivanov ã§ããçŸåšãMail.ru Cloud Solutions ã®äž»èŠãª DevOps ãšã³ãžãã¢ãåããŠããŸããç§ãã¡ã¯ã¯ã©ãŠããäœæãã管ç kubernetes ãªã©ãäœæããŠããŸãã çŸåšã®ç§ã®ä»äºã«ã¯ãéçºã®æ¯æŽããããã®ã¯ã©ãŠãã®å±éãäœæããã¢ããªã±ãŒã·ã§ã³ã®å±éãããã³ãŠãŒã¶ãŒã«æäŸããããŒã«ã®çŽæ¥éçºãå«ãŸããŸãã
äžè¬ã«ãç§ã¯ Kubernetes ãããŒãžã§ã³ 1.3ããããã 1.2 ã®é ãã€ãŸããŸã åæ段éã«ãã£ããšãã«å§ããŸããã çŸåšã§ã¯ãKubernetes ã¯åæ段éã§ã¯ãããŸãããKubernetes ãå®è¡ã§ããããã«ããããšã³ãžãã¢ã«å¯ŸããŠãåžå Žã§å€§ããªéèŠãããããšã¯æããã§ãã ãããŠäŒæ¥ã¯ãã®ãããªäººæã«å¯ŸããéèŠãéåžžã«é«ãã®ã§ãã ããã§ãå®ã¯ãã®è¬æŒäŒãç»å Žããã®ã§ãã
ãããã話ãå 容ã®èšç»ã«åŸã£ãŠè©±ããšã次ã®ããã«ãªããŸããæ¬åŒ§å ã«ïŒTL;DRïŒãšæžãããŠããŸãããé·ãããŸãã èªãŸãªãã§ãã ãããã ä»æ¥ã®ç§ã®ãã¬ãŒã³ããŒã·ã§ã³ã¯ç¡éã®ãªã¹ãã§æ§æãããŸãã
å®éãç§èªèº«ããã®ãããªãã¬ãŒã³ããŒã·ã§ã³ãè¡ãããã®ã¯å¥œãã§ã¯ãããŸããããããã¯éåžžã«éèŠãªããŒãã§ããããããã®ãã¬ãŒã³ããŒã·ã§ã³ãæºåããŠãããšãããã®æ å ±ãå¥ã®æ¹æ³ã§æŽçããæ¹æ³ããŸã£ããããããŸããã§ããã
æŠããŠããã®æ å ±ã¯ãctrl+cãctrl+vãã§ãããç¹ã«ãWiki ã® DevOps ã»ã¯ã·ã§ã³ã«ãããã®ã§ãããéçºè åãã®èŠä»¶ã次ã®ããã«æžãããŠããŸãã Kubernetes ã¯ããããã¹ãã§ããã
ãã¬ãŒã³ããŒã·ã§ã³ãããã»ã©èšå€§ãªãªã¹ãã«ãªã£ãã®ã¯ãã®ããã§ãã ãããã ã§ããã°éå±ããªãããã«ãã§ããã ããäŒãããŠãããããšæããŸãã
ããããèŠãŠããããããš:
- ãããã¯ã第äžã«ããã° (ã¢ããªã±ãŒã·ã§ã³ ãã°?)ãKubernetes ã§ã®ãã°ã®åŠçæ¹æ³ããã°ã®åŠçæ¹æ³ããã°ã¯ã©ãããã¹ãããã§ãã
- Kubernetes ã®æ§æãã©ãããããKubernetes çšã«ã¢ããªã±ãŒã·ã§ã³ãæ§æããæè¯ã®æ¹æ³ãšææªã®æ¹æ³ã¯äœã§ããã
- ã¢ã¯ã»ã·ããªã㣠ãã§ãã¯ãšã¯äžè¬çã«ã©ã®ãããªãã®ãªã®ããã©ã®ãããªãã®ã§ããã¹ããªã®ãã«ã€ããŠè©±ããŸãããã
- æ£åžžãªã·ã£ããããŠã³ãšã¯äœãã«ã€ããŠè©±ããŸãããã
- ãªãœãŒã¹ã«ã€ããŠããäžåºŠè©±ããŸãããã
- ããŒã¿ ã¹ãã¬ãŒãžã®è©±é¡ã«ããäžåºŠè§ŠããŸãããã
- æåŸã«ããã®è¬ã®ã¯ã©ãŠããã€ãã£ã ã¢ããªã±ãŒã·ã§ã³ãšããçšèªã«ã€ããŠèª¬æããŸãã ãã®çšèªã®åœ¢å®¹è©ãšããŠã®ã¯ã©ãŠããã€ãã£ããã¹ã
ãã°
ãã°ããå§ããããšããå§ãããŸãããããã®ãã°ã Kubernetes ã®ã©ãã«é
眮ããå¿
èŠãããã®ãââãèããŸãã ããã§ãKubernetes ã§ã¢ããªã±ãŒã·ã§ã³ãèµ·åãããŸããã å€å
žã«ããã°ã以åã®ã¢ããªã±ãŒã·ã§ã³ã¯åžžã«ãã¡ã€ã«ã®ã©ããã«ãã°ãæžã蟌ãã§ããŸããã äžæ£ãªã¢ããªã±ãŒã·ã§ã³ã¯ãã¢ããªã±ãŒã·ã§ã³ãèµ·åããéçºè
ã®ããŒã ãã£ã¬ã¯ããªå
ã®ãã¡ã€ã«ã«ãã°ãæžã蟌ã¿ãŸãã åªããã¢ããªã±ãŒã·ã§ã³ã¯ã次ã®å Žæã®ãã¡ã€ã«ã«ãã°ãæžã蟌ã¿ãŸãã /var/log
.
ãããã£ãŠãããã«ãåªãã管çè ã¯ããããã®ãã°ãããŒããŒã·ã§ã³ã§ããããã«ã€ã³ãã©ã¹ãã©ã¯ãã£å ã«ããã€ãã®èšå®ãè¡ã£ãŠããŸãããåã rsyslog ã¯ããããã®ãã°ã調ã¹ããã°ã«äœããçºçããå Žåã倧éã®ãã°ãååšããããã¯ã¢ãã ã³ããŒãäœæãããã°ãããã«ä¿åããŸãã ãXNUMX é±é以äžãXNUMX ãæ以äžã®å€ããã¡ã€ã«ãåé€ããŸãã çè«çã«ã¯ãã¢ããªã±ãŒã·ã§ã³ããã°ãæžã蟌ããšããçç±ã ãã§ãå®çšŒåãµãŒã㌠(æŠéãµãŒããŒ?) äžã®ã¹ããŒã¹ãäžè¶³ããªãããã«æºåããå¿ èŠããããŸãã ãããã£ãŠããã°ãåå ã§çç£å šäœãåæ¢ããããšã¯ãããŸããã§ããã
Kubernetes ã®äžçã«ç§»è¡ããããã§åãããšãå®è¡ãããšãæåã«æ³šç®ã§ããã®ã¯ããŠãŒã¶ãŒããã¡ã€ã«ã«ãã°ãæžã蟌ãã ãšããšåæ§ã«ããã°ãæžãç¶ãããšããäºå®ã§ãã
Kubernetes ã«ã€ããŠèšãã°ãDocker ã³ã³ããããã©ããã«ãã°ãæžã蟌ãé©åãªå Žæã¯ãåã«ã¢ããªã±ãŒã·ã§ã³ãããããã Stdout/Stderrãã€ãŸããªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã®æšæºåºåã¹ããªãŒã ãæšæºãšã©ãŒã«ãã°ãæžã蟌ãããšã§ããããšãããããŸããåºåã ããã¯ãååãšã㊠Dockerãç¹ã« Kubernetis ã«ãã°ãé 眮ããæãæ£ãããæãç°¡åã§ãæãè«ççãªæ¹æ³ã§ãã ãªããªããã¢ããªã±ãŒã·ã§ã³ããã°ã Stdout/Stderr ã«æžã蟌ãå Žåããããã®ãã°ãã©ãæ±ãã㯠Docker ãš Kubernetes ã¢ããªã³æ¬¡ç¬¬ã ããã§ãã Docker ã¯ããã©ã«ãã§ç¹æ®ãã¡ã€ã«ã JSON 圢åŒã§æ§ç¯ããŸãã
ããã§ããããã®ãã°ã次ã«ã©ãããããšããçåãçããŸãã æãç°¡åãªæ¹æ³ã¯æããã§ããç§ãã¡ã«ã¯æ¬¡ã®ããšãå¯èœã§ãã kubectl logs
ãããã®ãããããã®ãã°ãèŠãŠãã ããã ãããããããããããã¯ããŸãè¯ãéžæè¢ã§ã¯ãããŸããããã°ã«å¯ŸããŠäœãä»ã®ããšãè¡ãå¿
èŠããããŸãã
ãšããããããã°ã®è©±é¡ã«è§Šããã®ã§ãåæã«ãã°ãã©ãããã¹ããã«ã€ããŠã話ããŸãããã ã€ãŸãããã㯠Kubernetes ã«çŽæ¥åœãŠã¯ãŸãããã§ã¯ãããŸãããããã°ãã©ãããããèãå§ãããšãã«ãããã«ã€ããŠãèããŠã¿ããšããã§ãããã
Docker ããã¡ã€ã«ã«ä¿åãããããã®ãã°ãå奜çãªæ¹æ³ã§ååŸããã©ããã«éä¿¡ããäœããã®ããŒã«ãå¿ èŠã§ãã äžè¬ã«ãç§ãã¡ã¯éåžžãDaemonSet ã®åœ¢åŒã§ Kubernetes å ã§äœããã®ãšãŒãžã§ã³ããèµ·åããŸãããã° ã³ã¬ã¯ã¿ãŒã¯ãDocker ãåéãããã°ã®å Žæãåã«éç¥ãããã®ã§ãã ãããŠããã®åéãšãŒãžã§ã³ãã¯åã«ããããååŸããããããéäžã§äœããã®æ¹æ³ã§è§£æããè¿œå ã®ã¡ã¿æ å ±ã§åŒ·åããæçµçã«ã¯ã©ããã«ä¿åããããã«ããããéä¿¡ããŸãã ããã§ã¯ãã§ã«ããªãšãŒã·ã§ã³ãå¯èœã§ãã æãäžè¬çãªã®ã¯ãããã Elasticsearch ã§ããã°ãä¿åããããããç°¡åã«ååŸã§ããŸãã 次ã«ããªã¯ãšã¹ãã䜿çšããŠãããšãã° Kibana ã䜿çšããŠããããã«åºã¥ããŠã°ã©ããäœæãããããã«åºã¥ããŠã¢ã©ãŒããäœæããŸãã
æãéèŠãªèãæ¹ã¯ãããäžåºŠç¹°ãè¿ããŸãããDocker å ãç¹ã« Kubernetes å ã§ãã°ããã¡ã€ã«ã«ä¿åããã®ã¯éåžžã«æªãèãã§ãããšããããšã§ãã
ãŸããã³ã³ããå ã®ãã°ããã¡ã€ã«ã«ååŸããã®ãé£ããããã§ãã ãŸãã³ã³ããã«ç§»åããããã§å®è¡ããŠãããã°ã確èªããå¿ èŠããããŸãã 次ã®ãã€ã³ãã¯ããã¡ã€ã«ã«ãã°ãããå Žåãéåžžãã³ã³ãããŒã«ã¯æå°éã®ç°å¢ããããéåžžã®ãã°ã®äœæ¥ã«å¿ èŠãªãŠãŒãã£ãªãã£ãååšããªããšããããšã§ãã ããããåããŠãçºããããã¹ããšãã£ã¿ã§éããŸãã 次ã®ç¬éã¯ãã³ã³ããå ã®ãã¡ã€ã«ã«ãã°ããããšãã§ãããã®ã³ã³ãããåé€ããããšããåç¥ã®ãšããããã°ãã³ã³ãããšãšãã«æ¶æ» ããŸãã ãããã£ãŠãã³ã³ãããåèµ·åããããšããã°ããªããªãããšãæå³ããŸãã ç¹°ãè¿ããŸãããæªãéžæè¢ã§ãã
ãããŠæåŸã®ãã€ã³ãã¯ãéåžžãã³ã³ãããŒå ã«ã¯ã¢ããªã±ãŒã·ã§ã³ããããããã ãã§ãããšããããšã§ããéåžžããããå®è¡ãããŠããå¯äžã®ããã»ã¹ã§ãã ãã°ãå«ããã¡ã€ã«ãããŒããŒã·ã§ã³ããããã»ã¹ã«ã€ããŠã¯ãŸã£ãã話ãããŠããŸããã ãã°ããã¡ã€ã«ã«æžã蟌ãŸãå§ãããšããã«ãç³ãèš³ãããŸããããéçšãµãŒããŒã倱ããå§ããããšãæå³ããŸãã ãªããªãã第äžã«ããã¡ã€ã«ãèŠã€ããã®ãé£ããã誰ããããã远跡ãããããã«èª°ãããããå¶åŸ¡ããªãããã§ãããããã£ãŠããã¡ã€ã«ã¯ãµãŒããŒäžã®ã¹ããŒã¹ããªããªããŸã§ééãªãå¢å€§ããŸãã ãããã£ãŠãDockerãç¹ã« Kubernetes ã§ãã¡ã€ã«ã«ãã°ã€ã³ããã®ã¯æªãèãã ãšããäžåºŠèšããŸãã
次ã®ç¹ã¯ãããã§ããäžåºŠè©±ããããšæããŸãããã°ã®ãããã¯ã«è§ŠããŠããã®ã§ããã°ãæ±ããããããããã«ãã°ãã©ã®ããã«èŠããã¹ããã«ã€ããŠè©±ããŠãããšããã§ãããã å ã»ã©ãè¿°ã¹ãããã«ããã®ãããã¯ã¯ Kubernetes ãšã¯çŽæ¥é¢ä¿ãããŸããããDevOps ã®ãããã¯ãšéåžžã«ããé¢é£ããŠããŸãã 誰ããå¿«é©ã«éãããããã«ãéçºãšéçšãšãã XNUMX ã€ã®ç°ãªãéšééã®éçºæåãšåæ ã«ã€ããŠã®ãããã¯ã§ãã
ããã¯ãçŸåšããã°ã¯ JSON 圢åŒã§æžã蟌ãã®ãçæ³çã§ããããšãæå³ããŸãã äœããã®å°å·ç©ãªã©ãæ¿å ¥ãããããç解ã§ããªã圢åŒã§ãã°ãæžã蟌ããç解ã§ããªãç¬èªã®ã¢ããªã±ãŒã·ã§ã³ããæã¡ã®å Žåã¯ãéåžžã®ãã®ã³ã°ãå®è£ ã§ããããã«ããããçš®ã®ãã¬ãŒã ã¯ãŒã¯ãã©ãããŒãã°ãŒã°ã«ã§æ€çŽ¢ããŠãã ããã ãã㧠JSON ã®ãã®ã³ã°ãã©ã¡ãŒã¿ãæå¹ã«ããŸããJSON ã¯åçŽãªåœ¢åŒãªã®ã§ã解æã¯ç°¡åã§ãã
JSON ãäœããã®åºæºã«åŸã£ãŠæ©èœããªãå Žå (äœãåå ãã¯èª°ã«ãããããŸãã)ãå°ãªããšã解æå¯èœãªåœ¢åŒã§ãã°ãæžã蟌ãã§ãã ããã ããã§ã¯ããããèæ ®ãã䟡å€ããããŸããããšãã°ãå€æ°ã®ã³ã³ãããŸã㯠nginx ã䜿çšããããã»ã¹ã ããå®è¡ããŠããŠãããããã«ç¬èªã®ãã°èšå®ãããå Žåãããããã次ã®ããšãè¡ãã®ã¯éåžžã«äžäŸ¿ã«ãªãããã«æãããŸãããããã解æããŸãã æ°ãã nginx ã€ã³ã¹ã¿ã³ã¹ããšã«ãã°ã®æžã蟌ã¿æ¹æ³ãç°ãªããããç¬èªã®ããŒãµãŒãäœæããå¿ èŠãããããã§ãã ç¹°ãè¿ãã«ãªããŸãããããããã¹ãŠã® nginx ã€ã³ã¹ã¿ã³ã¹ãåããã°æ§æãæã¡ããã¹ãŠã®ãã°ãå®å šã«åäžã«æžã蟌ãŸããããšã確èªããããšã¯ããããæ€èšãã䟡å€ããããŸããã åãããšããŸã£ãããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã«åœãŠã¯ãŸããŸãã
æåŸã«ãçæ³çã«ã¯è€æ°è¡åœ¢åŒã®ãã°ã¯é¿ããã¹ãã ãšããç«ã«æ²¹ã泚ããããšæããŸãã ããã§éèŠãªã®ã¯ããã° ã³ã¬ã¯ã¿ãŒã䜿çšããããšãããå Žåã¯ããã° ã³ã¬ã¯ã¿ãŒãè€æ°è¡ã®ãã°ãåŠçã§ããããšãåéæ¹æ³ãç¥ã£ãŠããããšãªã©ãçŽæããŠããããšãèŠãããšãããã§ãããã å®éãç§ã®æèŠã§ã¯ãçŸåšãè€æ°è¡ã®ãã°ãæ£åžžã«ãå®å šã«ããšã©ãŒãªãåéã§ããã³ã¬ã¯ã¿ãŒã¯äžäººãããŸããã 人éã®ããæ¹ã§ã䟿å©ã§ééãããªãããã«ã
ãã ããã¹ã¿ã㯠ãã¬ãŒã¹ã¯åžžã«è€æ°è¡ã®ãã°ã«ãªãã®ã§ããããåé¿ããæ¹æ³ã説æããŸãã ããã§ã®åé¡ã¯ããã°ã¯ã€ãã³ãã®èšé²ã§ãããstactrace ã¯å®éã«ã¯ãã°ã§ã¯ãªããšããããšã§ãã ãã°ãåéã㊠Elasticsearch ã®ã©ããã«é 眮ããããããã°ã©ããäœæãããµã€ãäžã®ãŠãŒã¶ãŒ ã¢ã¯ãã£ããã£ã®ã¬ããŒããäœæããã¹ã¿ã㯠ãã¬ãŒã¹ãååŸããå Žåãããã¯ã¢ããªã±ãŒã·ã§ã³å ã§äºæãã¬äœããçºçããæªåŠçã®ç¶æ³ãçºçããŠããããšãæå³ããŸãã ãããŠãã¹ã¿ã㯠ãã¬ãŒã¹ã远跡ã§ããã·ã¹ãã ã®ã©ããã«èªåçã«ã¢ããããŒãããããšã¯çã«ããªã£ãŠããŸãã
ããã¯ãã¹ã¿ã㯠ãã¬ãŒã¹ãæ±ãããã«ç¹å¥ã«äœããããœãããŠã§ã¢ (åã Sentry) ã§ãã èªååãããã¿ã¹ã¯ãããã«äœæãã誰ãã«å²ãåœãŠãããã¹ã¿ã¯ãã¬ãŒã¹ãçºçãããšãã«ã¢ã©ãŒããçºãããããããã®ã¹ã¿ã¯ãã¬ãŒã¹ã XNUMX ã€ã®ã¿ã€ãããšã«ã°ã«ãŒãåãããããããšãã§ããŸãã ååãšããŠããã°ã«ã€ããŠè©±ããšãã« stactrace ã«ã€ããŠè©±ãã®ã¯ããŸãæå³ããããŸãããçµå±ã®ãšããããããã¯ç®çãç°ãªãå¥ã®ãã®ã ããã§ãã
èšå®
次ã«ãKubernetes ã®æ§æã«ã€ããŠèª¬æããŸããã€ãŸããKubernetes ã§äœãè¡ãããããã³ Kubernetes å ã®ã¢ããªã±ãŒã·ã§ã³ãã©ã®ããã«æ§æããå¿ èŠããããã«ã€ããŠèª¬æããŸãã äžè¬ã«ãç§ã¯ Docker ã¯ã³ã³ããã«é¢ãããã®ã§ã¯ãªããšããèšããŸãã Docker ãããŸãæ±ã£ãããšããªã人ã§ããDocker ãã³ã³ããã«é¢ãããã®ã§ããããšã¯èª°ããç¥ã£ãŠããŸãã ç¹°ãè¿ããŸãããDocker ã¯ã³ã³ããã«é¢ãããã®ã§ã¯ãããŸããã
ç§ã®èãã§ã¯ãDocker ã¯æšæºã«é¢ãããã®ã§ãã ãããŠãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®æšæºãã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ããããã®æšæºãªã©ãäºå®äžãããããã®ã«æšæºãååšããŸãã
ãããŠãããã¯ä»¥åã«ã䜿çšããŸããããã³ã³ãããŒã®åºçŸã§ç¹ã«äººæ°ãé«ãŸã£ãã°ããã§ãããã㯠ENV (ç°å¢) å€æ°ãã€ãŸããªãã¬ãŒãã£ã³ã° ã·ã¹ãã ã«å«ãŸããç°å¢å€æ°ãšåŒã°ããŸãã ããã¯äžè¬ã«ãã¢ããªã±ãŒã·ã§ã³ãæ§æããçæ³çãªæ¹æ³ã§ããJAVAãPythonãGoãPerlãç¥ã¯çŠããããŠããã¢ããªã±ãŒã·ã§ã³ã䜿çšããŠããããããããã¹ãŠããŒã¿ããŒã¹ ãã¹ããããŒã¿ããŒã¹ ãŠãŒã¶ãŒãããŒã¿ããŒã¹ ãã¹ã¯ãŒãå€æ°ãèªã¿åãããšãã§ããå Žåããããçæ³çã§ãã ããŒã¿ããŒã¹ ãã©ã³ã§ã¯ãåãæ¹æ³ã§ XNUMX ã€ã®ç°ãªãèšèªã§ã¢ããªã±ãŒã·ã§ã³ãæ§æãããŠããŸãã ãã以äžç°ãªãæ§æã¯ãããŸããã
ãã¹ãŠã¯ ENV å€æ°ã䜿çšããŠèšå®ã§ããŸãã Kubernetes ã«ã€ããŠè©±ããšãããããã€ã¡ã³ãå 㧠ENV å€æ°ã宣èšããåªããæ¹æ³ããããŸãã ãããã£ãŠãã·ãŒã¯ã¬ãã ããŒã¿ã«ã€ããŠè©±ããŠããå Žåã¯ãããã« ENV å€æ° (ããŒã¿ããŒã¹ãžã®ãã¹ã¯ãŒããªã©) ããã·ãŒã¯ã¬ãã ããŒã¿ãã·ãŒã¯ã¬ããã«ããã·ã¥ããã·ãŒã¯ã¬ãã ã¯ã©ã¹ã¿ãŒãäœæããDeployment ã® ENV 説æã§çŽæ¥å®£èšããŠããªãããšã瀺ãããšãã§ããŸãããã®å€æ°ã®å€ãšããã®ããŒã¿ããŒã¹ ãã¹ã¯ãŒãå€æ°ã®å€ãã·ãŒã¯ã¬ããããèªã¿åãããŸãã ããã¯æšæºç㪠Kubernetes ã®åäœã§ãã ããã¯ãã¢ããªã±ãŒã·ã§ã³ãæ§æããããã®æãçæ³çãªãªãã·ã§ã³ã§ãã ã³ãŒã ã¬ãã«ã§èšãã°ãããã¯éçºè ã«ãåœãŠã¯ãŸããŸãã ããªãã DevOps ã§ããã°ã次ã®ããã«å°ããããšãã§ããŸãããçãããã¢ããªã±ãŒã·ã§ã³ã«ç°å¢å€æ°ãèªã¿åãããã«æããŠãã ããã ãããŠç§ãã¡å šå¡ã幞ãã«ãªããŸããã
瀟å ã®å šå¡ãåãååã®ç°å¢å€æ°ãèªã¿åãã®ã§ããã°ãããã¯çŽ æŽãããããšã§ãã ãã®ãããããè 㯠postgres ããŒã¿ããŒã¹ãåŸ æ©ããä»ã®è ã¯ããŒã¿ããŒã¹åãåŸ æ©ããä»ã®è ã¯ä»ã®äœããåŸ æ©ããä»ã®è ã¯äœããã®çš®é¡ã® dbn ãåŸ æ©ãããšããããšãèµ·ãããªãããã«ãåŸã£ãŠåäžæ§ãä¿ãããŸãã
åé¡ã¯ãç°å¢å€æ°ãå€ãããŠãDeployment ãéãã ã㧠XNUMX è¡ãã®ç°å¢å€æ°ãããå Žåã«çºçããŸãã ãã®å Žåãç°å¢å€æ°ã倧ãããªããããã ããªã®ã§ãããèªåèªèº«ãèŠãããå¿ èŠã¯ãããŸããã ãã®å Žåãæ§æã®äœ¿çšãéå§ããã®ãåççã§ãã ã€ãŸããæ§æã䜿çšããããã«ã¢ããªã±ãŒã·ã§ã³ããã¬ãŒãã³ã°ããŸãã
å¯äžã®çåã¯ãæ§æãããªããèããŠãããã®ã§ã¯ãªããšããããšã§ãã Config.pi ã¯ã䜿ããããæ§æã§ã¯ãããŸããã ãŸãã¯ãç¬èªã®åœ¢åŒã®æ§æããŸãã¯ã®ãããšããŠæäŸãããæ§æ - ãããç§ãæå³ããæ§æã§ã¯ãããŸããã
ç§ã話ããŠããã®ã¯ã蚱容å¯èœãªåœ¢åŒã§ã®æ§æã«ã€ããŠã§ããã€ãŸããæã人æ°ã®ããæšæºã¯ .yaml æšæºã§ãã èªã¿æ¹ã人éãèªãã圢åŒãã¢ããªã±ãŒã·ã§ã³ããã®èªã¿æ¹ãæ確ã§ãã
ãããã£ãŠãYAML ã«å ããŠãããšãã° JSON ã䜿çšããããšãã§ããŸããããããã¢ããªã±ãŒã·ã§ã³æ§æãèªã¿åããšããç¹ã§ã¯ã解æ㯠YAML ãšã»ãŒåãããã䟿å©ã§ãã 人ã ãèªãã®ã¯èããäžäŸ¿ã§ãã ãã©ãŒããããè©ŠããŠã¿ãããšãã§ããŸãã 人éã®èŠ³ç¹ããã¯ããããèªã¿åãã®ã¯éåžžã«äŸ¿å©ã§ãããç¬èªã®æ§æãçæãããå Žåã«ãini 圢åŒã¯ãã§ã«çæããã®ã«äžäŸ¿ã§ããå¯èœæ§ããããšããæå³ã§ãèªåçã«åŠçããã®ã¯äžäŸ¿ãããããŸããã
ãããããããã«ãããã©ã®åœ¢åŒãéžæããã«ãããéèŠãªã®ã¯ãKubernetes ã®èŠ³ç¹ããã¯éåžžã«äŸ¿å©ã§ãããšããããšã§ãã æ§æå šäœã Kubernetes å ã® ConfigMap ã«é 眮ã§ããŸãã 次ã«ããã®æ§æããããååŸããŠããããå ã®ç¹å®ã®ãã£ã¬ã¯ããªã«ããŠã³ãããããã«äŸé ŒããŸããã¢ããªã±ãŒã·ã§ã³ã¯ããã®æ§æãããããæ§æãåãªããã¡ã€ã«ã§ãããã®ããã«èªã¿åããŸãã å®éãããã¯ãã¢ããªã±ãŒã·ã§ã³ã«å€ãã®æ§æãªãã·ã§ã³ãããå Žåã«è¡ããšè¯ãããšã§ãã ãããã¯ãããã¯åãªãããçš®ã®è€éãªæ§é ã§ããããã¹ãããããŸãã
configmap ãããå Žåã¯ãããšãã°ãconfigmap ãããŠã³ããããŠãããã¡ã€ã«ã®å€æŽãèªåçã«è¿œè·¡ããããæ§æãå€æŽããããšãã«ã¢ããªã±ãŒã·ã§ã³ãèªåçã«ãªããŒããããããããã«ã¢ããªã±ãŒã·ã§ã³ã«éåžžã«ããŸãæããããšãã§ããŸãã ããã¯éåžžãçæ³çãªãªãã·ã§ã³ã§ãã
ç¹°ãè¿ããŸãããããã«ã€ããŠã¯ãã§ã«èª¬æããŸãã - ç§å¯æ å ±ã¯ configmap ã«ãããŸãããç§å¯æ å ±ã¯å€æ°ã«ãããŸãããç§å¯æ å ±ã¯ç§å¯ã«ãããŸããã ããããããã®æ©å¯æ å ±ãå€äº€ã«çµã³ä»ããŠãããŸãã éåžžãKubernetes ãªããžã§ã¯ãããããã€ã¡ã³ããæ§æãããããµãŒãã¹ã®ãã¹ãŠã®èšè¿°ã git ã«ä¿åããŸãã ãããã£ãŠãããã瀟å ã«ãã git ã§ãã£ãŠããããŒã¿ããŒã¹ã«ãã¹ã¯ãŒãã git ã«å ¥ããã®ã¯æªãèãã§ãã ãªããªããå°ãªããšã git ã¯ãã¹ãŠãèšæ¶ããŠããããããããã¹ã¯ãŒããåé€ããã ãã§ã¯ããã»ã©ç°¡åã§ã¯ãªãããã§ãã
å¥åº·èšºæ
次ã®ãã€ã³ãã¯ãããããã«ã¹ãã§ãã¯ãšãããã®ã§ãã äžè¬ã«ããã«ã¹ãã§ãã¯ã¯åã«ã¢ããªã±ãŒã·ã§ã³ãåäœããŠããããšããã§ãã¯ããããšã§ãã åæã«ãç§ãã¡ã¯ç¹å®ã® Web ã¢ããªã±ãŒã·ã§ã³ã«ã€ããŠè©±ããŠããããšãã»ãšãã©ã§ããããã®ããããã«ã¹ãã§ãã¯ã®èŠ³ç¹ãã (ããã§ã¯ããã«ç¿»èš³ããªãã»ããããã§ããã)ãããã¯ç¹å¥ãª URL ãšãªãã次ã®ããã«åŠçãããŸããæšæºã§ãã圌ãã¯éåžžããããŸã /health
.
ãããã£ãŠããã® URL ã«ã¢ã¯ã»ã¹ãããšãã¢ããªã±ãŒã·ã§ã³ã¯ãã¯ãã倧äžå€«ã§ãã200 ã¯å€§äžå€«ã§ãããŸãã¯ããããããã¹ãŠå€§äžå€«ã§ã¯ãããŸããã500 ãããã§ãããšè¡šç€ºããŸãã ãããã£ãŠãã¢ããªã±ãŒã·ã§ã³ã http ã§ã¯ãªããWeb ã¢ããªã±ãŒã·ã§ã³ã§ããªãå Žåã¯ãããçš®ã®ããŒã¢ã³ã«ã€ããŠè©±ããŠããããšã«ãªãããã«ã¹ãã§ãã¯ãè¡ãæ¹æ³ãç解ã§ããŸãã ã€ãŸããã¢ããªã±ãŒã·ã§ã³ã http ã§ãªãå Žåã¯ãã«ã¹ ãã§ãã¯ãªãã§ãã¹ãŠãåäœããããã¯ãããªãæ¹æ³ã§ãå®è¡ã§ããŸããã ãã¡ã€ã«å
ã®äžéšã®æ
å ±ãå®æçã«æŽæ°ããããããŒã¢ã³çšã®ç¹å¥ãªã³ãã³ããèãåºãããšãã§ããŸãã daemon status
ãã¯ãããã¹ãŠåé¡ãããŸãããããŒã¢ã³ã¯åäœããŠããŸããçããŠããŸããããšè¡šç€ºãããŸãã
ããã¯ãªãã®ããã§ããïŒ ãŸãæãæçœãªããšã¯ããããããã«ã¹ãã§ãã¯ãå¿ èŠãªçç±ãã€ãŸãã¢ããªã±ãŒã·ã§ã³ãåäœããŠããããšãç解ããããã§ãã ã€ãŸããããã¯ãã ã®æããªããšã§ãããä»èµ·åããŠãããšãã¯ããããæ©èœããŠããããã«èŠããã®ã§ããããæ©èœããŠããããšã確信ã§ããŸãã ãããŠãã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããã³ã³ãããå®è¡ãããã€ã³ã¹ã¿ã³ã¹ãåäœãããã¹ãŠãæ£åžžã§ããããšãå€æããŸããããã®åŸããŠãŒã¶ãŒã¯ãã§ã«ãã¯ãã«ã« ãµããŒãããã®é»è©±çªå·ããã¹ãŠé®æãããããªãã¯äœã§ãã...ãããªãã¯ããšèšããŸãããç ã£ãŠããŸã£ããäœãæ©èœããŠããªããã
ãã«ã¹ãã§ãã¯ã¯ããŠãŒã¶ãŒã®èŠ³ç¹ãããããæ©èœããŠãããã©ããã確èªããããã®æ段ã§ãã æ¹æ³ã®äžã€ã ãã®ããã«ããŸãããã Kubernetes ã®èŠ³ç¹ããèŠããšãããã¯ã¢ããªã±ãŒã·ã§ã³ã®éå§ææãç解ããæ¹æ³ã§ããããŸããããã¯ãã³ã³ãããŒãèµ·åãäœæãéå§ããããšããšãã¢ããªã±ãŒã·ã§ã³ããã®ã³ã³ãããŒå ã§çŽæ¥èµ·åããããšããšã®éã«ã¯éããããããšãç解ãããŠããããã§ãã ãªããªããå¹³åç㪠Java ã¢ããªã±ãŒã·ã§ã³ãããã¯ã§èµ·åããããšãããšãXNUMX ç§éãå Žåã«ãã£ãŠã¯ XNUMX åéãããã«ã¯ XNUMX ç§éã§ããåé¡ãªãèµ·åã§ããããã§ãã ãã®å Žåãå°ãªããšãããŒããããã¯ããããšã¯ã§ããŸãããããã§ã¯å¿çããŸãããã€ãŸãããŸã ãã©ãã£ãã¯ãåä¿¡ããæºåãã§ããŠããŸããã
ç¹°ãè¿ããŸããããã«ã¹ãã§ãã¯ã®å©ããšãããã§ã®æ¹å転æã®å©ããåããŠãKubernetes ã§ã¯ãã¢ããªã±ãŒã·ã§ã³å ã§ã³ã³ãããŒãèµ·åããã ãã§ãªããã¢ããªã±ãŒã·ã§ã³èªäœãèµ·åãããã§ã«å¿çããŠããããšãç解ã§ããŸãããã«ã¹ãã§ãã¯ãã€ãŸããããã«ãã©ãã£ãã¯ãéä¿¡ã§ããããšãæå³ããŸãã
ç§ãä»è©±ããŠããããšã¯ãKubernetes å ã® Readiness/Liveness ãã¹ããšåŒã°ãããã®ã§ããããããã£ãŠãç§ãã¡ã® Readiness ãã¹ãã¯ããã©ã³ã·ã³ã°ã«ãããã¢ããªã±ãŒã·ã§ã³ã®å¯çšæ§ãæ åœããŸãã ã€ãŸããã¢ããªã±ãŒã·ã§ã³ã§æºåãã¹ããå®è¡ãããŠããå Žåã¯ããã¹ãŠãæ£åžžã§ãããã¯ã©ã€ã¢ã³ã ãã©ãã£ãã¯ãã¢ããªã±ãŒã·ã§ã³ã«éä¿¡ãããŸãã æºåãã¹ããå®è¡ãããªãå Žåãã¢ããªã±ãŒã·ã§ã³ã¯åçŽã«åå ããŸããããã®ç¹å®ã®ã€ã³ã¹ã¿ã³ã¹ã¯ãã©ã³ã·ã³ã°ã«åå ããããã©ã³ã·ã³ã°ããåé€ãããã¯ã©ã€ã¢ã³ã ãã©ãã£ãã¯ã¯æµããŸããã ãããã£ãŠãã¢ããªã±ãŒã·ã§ã³ãåæ¢ããå Žåã«åèµ·åã§ããããã«ãKubernetes å ã® Liveness ãã¹ããå¿ èŠã§ãã Kubernetes ã§å®£èšãããã¢ããªã±ãŒã·ã§ã³ã«å¯ŸããŠæŽ»æ§ãã¹ããæ©èœããªãå Žåãã¢ããªã±ãŒã·ã§ã³ã¯ãã©ã³ã·ã³ã°ããåé€ãããã ãã§ãªããåèµ·åãããŸãã
ããã§ãèšåããŠããããéèŠãªç¹ããããŸããå®çšçãªèŠ³ç¹ããèŠããšãreadiness ãã¹ãã¯éåžžââãliveness ãã¹ããããé »ç¹ã«äœ¿çšãããããé »ç¹ã«å¿ èŠãšãªããŸãã ã€ãŸããKubernetes ã¯ãããã§ããã®ã§ãæºåãã¹ããšã©ã€ããã¹ ãã¹ãã®äž¡æ¹ãåçŽã«å®£èšããã®ã¯ãããŸãè¯ãèãã§ã¯ãããŸããã ãã®çç±ã説æããŸãã ãã¹ãã® 200 çªç®ã®ãã€ã³ãã¯ããã«ã¹ãã§ãã¯ã§åºç€ãšãªããµãŒãã¹ããã§ãã¯ããããšããå§ãããããã§ãã ããã¯ãäœããã®æ å ±ãæäŸãã Web ã¢ããªã±ãŒã·ã§ã³ãããå Žåãåœç¶ã®ããšãªããããã®æ å ±ãã©ããããååŸããå¿ èŠãããããšãæå³ããŸãã ããšãã°ããŒã¿ããŒã¹å ã ãã® REST API ã«å ¥ã£ãŠããæ å ±ã¯åãããŒã¿ããŒã¹ã«ä¿åãããŸãã ãããã£ãŠããã«ã¹ãã§ãã¯ãåã«é£çµ¡å ã®ã¹ã©ãã·ã¥ãã«ã¹ãšåãããã«å¿çããå Žåãã¢ããªã±ãŒã·ã§ã³ã¯ã200ããªãŒã±ãŒããã¹ãŠåé¡ãããŸããããšè¡šç€ºããåæã«ã¢ããªã±ãŒã·ã§ã³ã®ããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ã§ããªããªãããã«ã¹ãã§ã㯠ã¢ããªã±ãŒã·ã§ã³ã¯ãXNUMXããªãŒã±ãŒããã¹ãŠåé¡ãããŸããããšå¿çããŸãã ã - ããã¯æªãå¥åº·èšºæã§ãã ããã¯æ¬æ¥ã®åäœã§ã¯ãããŸããã
ã€ãŸããã¢ããªã±ãŒã·ã§ã³ã«ãªã¯ãšã¹ããæ¥ããšãã /health
åã«ã200ãokããšå¿çããã®ã§ã¯ãªãããŸãããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ããŠæ¥ç¶ãè©Šã¿ã200 ã€ãéžæãããªã©ã®éåžžã«åºæ¬çãªæäœãè¡ããæ¥ç¶ããããã©ããã確èªããã ãã§ããããŒã¿ããŒã¹ãäœæããããŒã¿ããŒã¹ã«ã¯ãšãªãå®è¡ã§ããŸãã ããããã¹ãŠæåããå Žåãçãã¯ãXNUMXãOKãã§ãã æåããªãå Žåã¯ããšã©ãŒãçºçããããŒã¿ããŒã¹ãå©çšã§ããªãããšã衚瀺ãããŸãã
ãããã£ãŠããã®ç¹ã«é¢ããŠãReadiness/Liveness ãã¹ãã«åã³æ»ããŸããReadiness ãã¹ããå¿
èŠã§ããå¯èœæ§ãæãé«ãã®ã«ãLiveness ãã¹ãã«çåãããçç±ã§ãã ãªããªããå
ã»ã©è¿°ã¹ããšããã«ãã«ã¹ãã§ãã¯ãèšè¿°ãããšãã€ã³ã¹ã¿ã³ã¹éšåã§ã¯ãã«ã¹ãã§ãã¯ãå©çšã§ããªãããšãå€æããããã§ããв ОлО ÑП вÑеÑ
instance
ããšãã°ããŒã¿ããŒã¹å
ã æºåãã¹ãã宣èšãããšããã«ã¹ãã§ãã¯ã倱æãå§ãããããããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ã§ããªããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ã¯åã«ãã©ã³ã¹èª¿æŽããªãã«ããå®éã«ã¯ç¡èŠãããç¶æ
ã§ããã³ã°ãããããŒã¿ããŒã¹ãå埩ããã®ãåŸ
ã¡ãŸããä»äºã
ã©ã€ããã¹ ãã¹ãã宣èšããå ŽåãããŒã¿ããŒã¹ãç Žæããã©ã€ããã¹ ãã¹ãã倱æããããã« Kubernetes ã§ãã¹ãŠã®ååãåèµ·åãå§ãããšæ³åããŠãã ããã ã€ãŸããåèµ·åããå¿ èŠããããŸãã ããã¯ããªããæãã§ããããšã§ã¯ãããŸãããç§èªèº«ãå®éã«çµéšããããšããããŸãã JS ã§æžãããMongo ããŒã¿ããŒã¹ã«å ¥åããããã£ãã ã¢ããªã±ãŒã·ã§ã³ããããŸããã ãããŠåé¡ã¯ãç§ã Kubernetes ã䜿ã£ãŠä»äºãå§ããåœåãKubernetes ã§å®è¡ã§ãããšããååã«åºã¥ããŠãã¹ãã®æºåæ§ãšçšŒåæ§ã説æãããããKubernetes ã䜿çšãããšããããšã§ããã ãããã£ãŠãããæç¹ã§ Mongo ã¯å°ããéããªããããµã³ãã«ã¯å€±æãå§ããŸããã ãããã£ãŠãééšéãã¹ãã«ãããšããµã€ã¯ã殺ããå§ããŸããã
ãç解ã®ãšããã圌ããã殺ãããããšããããã¯ãã£ããã§ããã€ãŸããã¯ã©ã€ã¢ã³ãããã®æ¥ç¶ãããããæ¥ç¶ãããŠããŸãã ãŸãããããã¯ã匷å¶çµäºããããŸã - ããããã¯ã©ã€ã¢ã³ãã§ã¯ãªããæ¥ç¶ã®ã¿ã§ã - ãã¹ãŠåæã«ã§ã¯ãªããåæã«åŒ·å¶çµäºãããªããšããäºå®ã«ãããäžéšã¯æ©ããäžéšã¯åŸã§ãåæã«éå§ãããŸãããæéã ããã«ãæšæºçãªã©ã³ãã ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®éå§æéãæ¯åããªç§ã®ç²ŸåºŠã§äºæž¬ããããšã¯ã§ããªããããäžåºŠã« XNUMX ã€ã®ã€ã³ã¹ã¿ã³ã¹ãã€å®è¡ãããŸãã XNUMX ã€ã® Infospot ãäžæãããã©ã³ã·ã³ã°ã«è¿œå ããããã¹ãŠã®ã¯ã©ã€ã¢ã³ããããã«æ¥ãŸãããåç¬ã§ããããããã®ãããªè² è·ã«èããããšãã§ããŸããã倧ãŸãã«èšãã°ãããã§ã¯æ°åã®æ å ±ã¹ããããäœæ¥ããŠãããããäœäžããŸãã 次ã®äººãç«ã¡äžãããšããã¹ãŠã®è² è·ã圌ã«ãããã圌ãåããŸãã ããã§ããããããã®æ»ã¯æ»ã®ããã«æµãç¶ããŸãã çµå±ãããã¯ã©ã®ããã«è§£æ±ºãããã®ããšãããšããã®ã¢ããªã±ãŒã·ã§ã³ãžã®ãŠãŒã¶ãŒ ãã©ãã£ãã¯ãå³å¯ã«åæ¢ãããã¹ãŠã®ã€ã³ã¹ã¿ã³ã¹ãèµ·åããŠããããã¹ãŠã®ãŠãŒã¶ãŒ ãã©ãã£ãã¯ãäžåºŠã«éå§ããŠãXNUMX åã®ã€ã³ã¹ã¿ã³ã¹ãã¹ãŠã«åæ£ãããããã«ããã ãã§ããã
ãã¹ãŠã®åèµ·åã匷å¶ããããã®ã©ã€ããã¹ ãã¹ããçºè¡šãããŠããªããã°ãã¢ããªã±ãŒã·ã§ã³ã¯åé¡ãªãåŠçããã§ãããã ããããããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ã§ããããã¹ãŠã®ãŠãŒã¶ãŒããèœã¡ããããããã©ã³ã¹èª¿æŽãããã¹ãŠãç¡å¹ã«ãªã£ãŠããŸãã ãã®ããŒã¿ããŒã¹ãå©çšå¯èœã«ãªããšããã¹ãŠããã©ã³ã·ã³ã°ã«å«ãŸããŸãããã¢ããªã±ãŒã·ã§ã³ãå床起åããå¿ èŠã¯ãªããããã«æéãšãªãœãŒã¹ã浪費ããå¿ èŠããããŸããã ãããã¯ãã¹ãŠãã§ã«ããã«ããããã©ãã£ãã¯ã®æºåãã§ããŠããããããã©ãã£ãã¯ãéãã ãã§ããã¹ãŠãæ£åžžã§ããã¢ããªã±ãŒã·ã§ã³ã¯é©åã«é 眮ãããŠããããã¹ãŠãåŒãç¶ãåäœããŸãã
ãããã£ãŠãreadiness ãã¹ããš liveness ãã¹ãã¯ç°ãªããŸããããã«ãçè«çã«ã¯ãããšãã° XNUMX ã€ã®ã¿ã€ãã® radii ãš XNUMX ã€ã®ã¿ã€ãã® liv ãªã©ãç°ãªããã«ã¹ãã§ãã¯ãå®è¡ããŠãããŸããŸãªããšããã§ãã¯ããããšãã§ããŸãã æºåãã¹ãäžã«ãããã¯ãšã³ãã確èªããŠãã ããã ãŸããããšãã°ã掻æ§ãã¹ãã§ã¯ã掻æ§ãã¹ãã¯äžè¬ã«ã¢ããªã±ãŒã·ã§ã³ãå¿çããŠããã ãã§ãããšãã芳ç¹ãããã¢ããªã±ãŒã·ã§ã³ãå¿çã§ãããã©ããã確èªããŸããã
ãªããªããçåãã¹ãã¯æŠããŠãç§ãã¡ããè¡ãè©°ãŸã£ãããšãã ããã§ãã ç¡éã«ãŒããéå§ããããããã®ä»ã®çç±ã§ããã以äžã®ãªã¯ãšã¹ãã¯åŠçãããŸããã ãããã£ãŠãããããåé¢ãããããã«ç°ãªãããžãã¯ãå®è£ ããããšããæå³ããããŸãã
æ€æ»ãå¥åº·èšºæã®éã«çããå¿ èŠãããããšã«ã€ããŠã ããã¯æ¬åœã«èŠçã§ãã ããã«è©³ãã人ã¯ããããç¬ãã§ããã - ãããçå£ã«ãç§ã¯ãããŸã§ã®äººçã§ã200% ã®ã±ãŒã¹ã§ãXNUMXããšçãããµãŒãã¹ãèŠãŠããŸããã ã€ãŸãã誰ãæåããã®ããšããããšã§ãã ãããåæã«ãå¿çã®æ¬æã«ã¯ãããããã®ãšã©ãŒããšæžãããŠããŸãã
ã€ãŸãããã¹ãŠãæåãããšããå¿çã¹ããŒã¿ã¹ã衚瀺ãããŸãã ãããåæã«ãæ¬æã解æããå¿ èŠããããŸãããªããªããæ¬æã«ã¯ãç³ãèš³ãããŸãããããªã¯ãšã¹ãã¯ãšã©ãŒã§çµäºããŸããããšè¡šç€ºãããŠããããã§ããããã¯ãŸãã«çŸå®ã§ãã ãããå®éã«èŠãŸããã
é¢çœããšæããªã人ãããã°ãéåžžã«èŠçã ãšæãã人ããããããããªãã®ã§ãããã§ãåçŽãªã«ãŒã«ã«åŸã䟡å€ããããŸãã ãã«ã¹ãã§ãã¯ãããã³ååãšã㊠Web ã¢ããªã±ãŒã·ã§ã³ãæäœããå Žåã
ãã¹ãŠãããŸããã£ãå Žåã¯ã204 çªç®ã®çãã§å¿çããŸãã ååãšããŠã5 çªç®ã®çãã¯ã©ãã§ãåœãŠã¯ãŸããŸãã ragsy ãããèªãã§ãäžéšã®å¿çã¹ããŒã¿ã¹ãä»ã®å¿çã¹ããŒã¿ã¹ãšç°ãªãããšãããã£ãŠããå Žåã¯ãé©åãªã¹ããŒã¿ã¹ (10ã15ã502ãXNUMX ãªã©) ã§çããŠãã ããã ããŸãè¯ããªãã£ãããããŒãŒããŒããã§ããã ãã¹ãŠãããŸããããããã«ã¹ãã§ãã¯ãå¿çããªãå Žåã¯ãXNUMX åã® XNUMX ã§çããŠãã ããã ç¹°ãè¿ããŸããã察å¿æ¹æ³ãããŸããŸãªå¯Ÿå¿ã¹ããŒã¿ã¹ãäºãã«ã©ã®ããã«ç°ãªãããç解ããŠããã°ã§ãã ç解ã§ããªãå Žåã¯ãäœãåé¡ãçºçããå Žåã«ãã«ã¹ãã§ãã¯ã«å¿çãããªãã·ã§ã³ã¯ XNUMX ã§ãã
ããã¯ãã XNUMX ã€ã®ç¹ã§ãããåºç€ãšãªããµãŒãã¹ã®ç¢ºèªã«ã€ããŠå°ãæ»ããããšæããŸãã ããšãã°ãã¢ããªã±ãŒã·ã§ã³ã®èåŸã«ãããã¹ãŠã®åºç€ãšãªããµãŒãã¹ (äžè¬çã«ãã¹ãŠ) ããã§ãã¯ãå§ãããšããŸãã ãã€ã¯ããµãŒãã¹ ã¢ãŒããã¯ãã£ã®èŠ³ç¹ããç解ãããšããäœçµåããã€ãŸããµãŒãã¹ã®çžäºäŸåãæå°éã§ãããšããæŠå¿µããããŸãã ãã®ãã¡ã® XNUMX ã€ã倱æããŠãããã®æ©èœãæããªãä»ã®ãã¹ãŠã®æ©èœã¯ãã®ãŸãŸåäœãç¶ããŸãã äžéšã®æ©èœãåäœããŸããã ãããã£ãŠããã¹ãŠã®ãã«ã¹ãã§ãã¯ãçžäºã«çµã³ä»ãããšãã€ã³ãã©ã¹ãã©ã¯ãã£ã§ XNUMX ã€ã®ãã®ã倱æããããšã«ãªããŸãããããŠãããã倱æããããããã¹ãŠã®ãµãŒãã¹ã®ãã¹ãŠã®ãã«ã¹ãã§ãã¯ã倱æãå§ããŸãããããŠãäžè¬ã«ãã€ã³ãã©ã¹ãã©ã¯ãã£ãããå€ãååšããŸãããã€ã¯ããµãŒãã¹ ã¢ãŒããã¯ãã£å šäœ No. ããã§ãã¹ãŠãçã£æã«ãªããŸããã
ãããã£ãŠãåºç€ãšãªããµãŒãã¹ã確èªããå¿ èŠãããããšãããäžåºŠç¹°ãè¿ããããšæããŸãããããã®ãµãŒãã¹ããªããã°ãXNUMX% ã®å Žåãã¢ããªã±ãŒã·ã§ã³ã¯æ©èœã§ããŸããã ã€ãŸãããŠãŒã¶ãŒãããŒã¿ããŒã¹ã«ä¿åããããããŒã¿ããŒã¹ããååŸãããããããã® REST API ãããå ŽåãããŒã¿ããŒã¹ããªããã°ããŠãŒã¶ãŒãšã®é£æºãä¿èšŒã§ããªãã®ã¯åœç¶ã§ãã
ãã ãããŠãŒã¶ãŒãããŒã¿ããŒã¹ããåãåºããšãã«ãããã³ããšã³ãã«å¿çãéä¿¡ããåã«å ¥åãããå¥ã®ããã¯ãšã³ãããã®ä»ã®ã¡ã¿ããŒã¿ã§ããã«åŒ·åããããã®ããã¯ãšã³ããå©çšã§ããªãå Žåãããã¯ãã¡ã¿ããŒã¿ã®äžéšãå«ããã«åçããŸãã
次ã«ãã¢ããªã±ãŒã·ã§ã³ã®èµ·åæã«åä»ãªåé¡ã XNUMX ã€ãããŸãã
å®éããã㯠Kubernetes å šè¬ã«åœãŠã¯ãŸãããšã§ã¯ãªããããŸããŸãããçš®ã®å€§ééçºãç¹ã« DevOps ã®æåã Kubernetes ãšã»ãŒåææã«åºããå§ããã®ã§ãã ãããã£ãŠãæŠããŠãKubernetes ã䜿çšããã«ã¢ããªã±ãŒã·ã§ã³ãæ£åžžã«ã·ã£ããããŠã³ããå¿ èŠãããããšãããããŸãã Kubernetes ãç»å Žããåããã人ã ã¯ãããè¡ã£ãŠããŸããããKubernetes ã®åºçŸã«ãããç§ãã¡ã¯ããã«ã€ããŠäžæã«è©±ãå§ããŸããã
ã°ã¬ãŒã¹ãã«ã·ã£ããããŠã³
äžè¬ã«ãæ£åžžãªã·ã£ããããŠã³ãšã¯äœã§ãã?ãŸãããããå¿
èŠãªçç±ã¯äœã§ãã? ããã¯ãã¢ããªã±ãŒã·ã§ã³ãäœããã®çç±ã§ã¯ã©ãã·ã¥ãããšãã®ããšã§ãã次ã®ããšãè¡ãå¿
èŠããããŸãã app stop
- ãŸãã¯ãããšãã°ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã ããã·ã°ãã«ãåä¿¡ããå Žåãã¢ããªã±ãŒã·ã§ã³ã¯ãããç解ããããã«å¯ŸããŠäœããã®åŠçãè¡ãå¿
èŠããããŸãã ãã¡ãããææªã®ã·ããªãªã¯ãã¢ããªã±ãŒã·ã§ã³ã SIGTERM ãåãåãããSIGTERMãã¡ãã£ãšåŸ
ã£ãŠãäœæ¥ããŸããããäœãããªãã§ãã ããããšãããããªå Žåã§ãã ããã¯ãŸã£ããæªãéžæè¢ã§ãã
ã»ãŒåæ§ã«æªãéžæè¢ã¯ãã¢ããªã±ãŒã·ã§ã³ã SIGTERM ãåãåãããsegterm ãšèšã£ããã€ãŸãçµäºããããšãæå³ããŸããèŠãŠããŸããããŠãŒã¶ãŒã®ãªã¯ãšã¹ããããããŸãããã©ã®ãããªãªã¯ãšã¹ããªã®ãããããŸããããšãããããªå Žåã§ããç§ãçŸåšåãçµãã§ãããªã¯ãšã¹ãã«ã€ããŠã圌ã㯠SIGTERMãã€ãŸãçµäºããããšãæå³ãããšèšããŸãããã ãããæªãéžæè¢ã§ãã
ã©ã®ãªãã·ã§ã³ãè¯ãã§ãããã? XNUMXã€ç®ã®ãã€ã³ãã¯ãæ¥åã®å®äºãèæ ®ããããšã§ãã é©åãªãªãã·ã§ã³ã¯ããµãŒããŒã SIGTERM ãåä¿¡ããå Žåã®åäœãèæ ®ããããšã§ãã
SIGTERM ã¯ãœãã ã·ã£ããããŠã³ã§ãããç¹å¥ã«èšèšãããŠãããã³ãŒã ã¬ãã«ã§ã€ã³ã¿ãŒã»ããã§ããåŠçã§ããŸããããšãã°ãããããåŸ ã£ãŠãã ããããŸãäœæ¥ãå®äºããŠããçµäºããŸããã
Kubernetes ã®èŠ³ç¹ããèŠããšã次ã®ããã«ãªããŸãã Kubernetes ã¯ã©ã¹ã¿ãŒå ã§å®è¡äžã®ãããã«ãåæ¢ããŠãã ãããå»ã£ãŠãã ããããšèšããšãåèµ·åãããããKubernetes ãããããåäœæãããšãã«æŽæ°ãçºçããããããšãKubernetes ã¯åã SIGTERM ã¡ãã»ãŒãžããããã«éä¿¡ããåŸ æ©ããŸãããã°ããã®éããããŠããã¯åœŒãåŸ ã€æéã§ããããããèšå®ãããŠããããã£ãããã«ã¯ãã®ãããªç¹å¥ãªãã©ã¡ãŒã¿ããããããã¯Graceful ShutdownTimeoutãšåŒã°ããŸãã ãç解ã®ãšãããããã¯ç¡é§ã«ããåŒã°ããŠããããã§ã¯ãããŸããããç§ãã¡ãä»ããã«ã€ããŠè©±ããŠããã®ãç¡é§ã§ã¯ãããŸããã
ããã§ã¯ãSIGTERM ãã¢ããªã±ãŒã·ã§ã³ã«éä¿¡ããŠãããã¢ããªã±ãŒã·ã§ã³ãäœãã§ãããããªã£ããããã¹ã¿ãã¯ãããŠçµäºããªãããšãããã£ãæç¹ãŸã§ã«ãã©ã®ãããã®æéãåŸ ã€å¿ èŠãããããå ·äœçã«èšãããšãã§ããŸãã SIGKILL ãéä¿¡ããŸããã€ãŸãããã®äœæ¥ãããŒãå®äºããŸãã ã€ãŸããäœããã®ããŒã¢ã³ãå®è¡ãããŠãããæäœãåŠçãããŸãã ããŒã¢ã³ãå®è¡ããæäœã¯ãå¹³åããŠäžåºŠã« 30 ç§ä»¥äžç¶ããªãããšãç解ããŠããŸãã ãããã£ãŠãSIGTERM ãå°çãããšãããŒã¢ã³ã¯ SIGTERM åŸæ倧 30 ç§ä»¥å ã«çµäºã§ããããšãããããŸãã 念ã®ãããããšãã° 45 ç§ãšæžããŠãSIGTERM ãšèšããŸãã ãã®åŸã45 ç§åŸ ã¡ãŸãã çè«çã«ã¯ããã®éã«æªéã¯ãã®ä»äºãå®äºããèªæ» ããã¯ãã§ãã ããããçªç¶ã§ããªããªã£ãå Žåã¯ãããããã¹ã¿ãã¯ããŠããå¯èœæ§ãé«ãããªã¯ãšã¹ããæ£åžžã«åŠçã§ããªããªã£ãŠããããšãæå³ããŸãã ãããŠå®éã45 ç§ä»¥å ã«å®å šã«åœŒãéä»ãã«ããããšãã§ããŸãã
ãããŠããã§ã¯ãå®éã«ã¯ 2 ã€ã®åŽé¢ãèæ ®ã«å ¥ããããšãã§ããŸãã ãŸãããªã¯ãšã¹ããåãåã£ãå Žåã¯ãäœããã®æ¹æ³ã§ãã®ãªã¯ãšã¹ãã®åŠçãéå§ãããŠãŒã¶ãŒã«å¿çãè¿ããªãã£ããã®ã®ãããšãã° SIGTERM ãåãåã£ããšããããšãç解ããŠãã ããã ãããæ¹è¯ããŠãŠãŒã¶ãŒã«çããæäŸããããšã¯çã«ããªã£ãŠããŸãã ããããã®ç¹ã§ã® XNUMX çªç®ã®ãã€ã³ãã§ãã ããã§ã® XNUMX çªç®ã®ãã€ã³ãã¯ãç¬èªã®ã¢ããªã±ãŒã·ã§ã³ãäœæããå Žåãéåžžãã¢ããªã±ãŒã·ã§ã³ã®ãªã¯ãšã¹ããåä¿¡ããŠââããäœæ¥ãéå§ããã©ãããããã¡ã€ã«ãããŠã³ããŒãããããããŒã¿ããŒã¹ãããŠã³ããŒãããããããããªæ¹æ³ã§ã¢ãŒããã¯ãã£ãæ§ç¯ããããšã§ããããã äžè¬ã«ããŠãŒã¶ãŒãããªãã®ãªã¯ãšã¹ã㯠XNUMX åéãã³ã°ããããªãã圌ã«çããã®ãåŸ ã¡ãŸãããã®åŸãããããã¢ãŒããã¯ãã£ã«åãçµãå¿ èŠããããŸãã ã€ãŸããæäœãçãå Žåã¯ãSIGTERM ãç¡èŠããŠå€æŽããã®ãçã«ããªã£ãŠãããšããåžžèããèæ ®ã«å ¥ããŠãã ããã æäœãé·ãå Žåããã®å Žåã« SIGTERM ãç¡èŠããŠãæå³ããããŸããã ãã®ãããªé·æéã®æäœãåé¿ããã«ã¯ãã¢ãŒããã¯ãã£ãåèšèšããã®ãåççã§ãã ãŠãŒã¶ãŒããã ã¶ãã¶ãããŠåŸ ã€ããšããªãããã«ããããã§ãã ããããŸãããããã«ãã皮㮠Web ãœã±ãããäœæãããµãŒããŒããã§ã«ã¯ã©ã€ã¢ã³ãã«éä¿¡ãããªããŒã¹ããã¯ãäœæããŸãããã®ä»äœã§ãã§ããŸããããŠãŒã¶ãŒã XNUMX åé匷å¶çã«ãã³ã°ããããã»ãã·ã§ã³ãå®äºãããŸã§åŸ æ©ããå¿ èŠã¯ãããŸããã圌ã«çããŠãã ããã ã©ãã§å£ãããäºæž¬ã§ããªãããã§ãã
ã¢ããªã±ãŒã·ã§ã³ãçµäºãããšãã¯ãé©åãªçµäºã³ãŒããæäŸããå¿ èŠããããŸãã ã€ãŸããã¢ããªã±ãŒã·ã§ã³ãéãããåæ¢ããããã«èŠæ±ãããã¢ããªã±ãŒã·ã§ã³ãæ£åžžã«åæ¢ã§ããå Žåã¯ãäœããã®çµäºã³ãŒã 1,5,255ã0ã0 ãªã©ãè¿ãå¿ èŠã¯ãããŸããã å°ãªããšã Linux ã·ã¹ãã ã§ã¯ããŒãã³ãŒãã§ãªããã®ã¯ãã¹ãŠå€±æãšã¿ãªãããŸãã ã€ãŸãããã®å Žåãã¢ããªã±ãŒã·ã§ã³ã¯ãšã©ãŒã§çµäºãããšèŠãªãããŸãã ãããã£ãŠãå奜çãªæ¹æ³ã§ãã¢ããªã±ãŒã·ã§ã³ããšã©ãŒãªãã§å®äºããå Žåãåºåã§ã¯ XNUMX ãšè¡šç€ºãããŸãã ã¢ããªã±ãŒã·ã§ã³ãäœããã®çç±ã§å€±æããå Žåãåºåã§ã¯é XNUMX ãšè¡šç€ºãããŸãã ãããŠããã®æ å ±ã掻çšããŠäœæ¥ããããšãã§ããŸãã
ãããŠæåŸã®éžæè¢ã ãŠãŒã¶ãŒããªã¯ãšã¹ããéä¿¡ãããã®åŠçäžã« XNUMX åéãã³ã°ããã®ã¯åé¡ã§ãã ããããäžè¬çã«ãã¯ã©ã€ã¢ã³ãåŽããèŠãŠäžè¬çã«äŸ¡å€ãããããšã«ã€ããŠãã話ããããšæããŸãã ã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ãããã³ããšã³ããªã©ãæã£ãŠãããã©ããã¯é¢ä¿ãããŸããã äžè¬ã«ããŠãŒã¶ãŒã®ã»ãã·ã§ã³ã¯çµäºããå¯èœæ§ããããããããããšãèµ·ããå¯èœæ§ãããããšãèæ ®ããå¿ èŠããããŸãã ããšãã°ããªã¯ãšã¹ããéä¿¡ãããŠãââåŠçãäžååã§ãå¿çãè¿ãããªãå¯èœæ§ããããŸãã ããã³ããšã³ããŸãã¯ã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ (ããã³ããšã³ãå šè¬ãããèšããŸããã) ã¯ããããèæ ®ããå¿ èŠããããŸãã WebSocket ã䜿çšããå Žåãããã¯ç§ããããŸã§ã«çµéšããäžã§æãã²ã©ãèŠçã§ãã
éåžžã®ãã£ããã®éçºè ããããç¥ããªããšãWebSocket ãå£ããå¯èœæ§ãããããšãå€æããŸããã 圌ãã«ãšã£ãŠããããã·ã§äœããèµ·ãã£ããšããèšå®ãå€æŽããã ãã§ãªããŒããè¡ãããŸãã åœç¶ã®ããšãªããããã®å Žåãåç¶æéã®é·ãã»ãã·ã§ã³ã¯ãã¹ãŠç Žæ£ãããŸãã éçºè ãç§ãã¡ã®ãšããã«èµ°ã£ãŠããŠãããèšããŸãããçãããäœãããŠããã®ã§ããããã¹ãŠã®ã¯ã©ã€ã¢ã³ãã®ãã£ãããäžæãããŸãããã ç§ãã¡ã¯åœŒãã«ããèšããŸãã ã¯ã©ã€ã¢ã³ãã¯åæ¥ç¶ã§ããŸããã? 圌ãã¯ããèšããŸãããããããã»ãã·ã§ã³ãäžæãããªãããã«ããå¿ èŠããããŸããã èŠããã«ãããã¯å®éã«ã¯ãã³ã»ã³ã¹ã§ãã ã¯ã©ã€ã¢ã³ãåŽãèæ ®ããå¿ èŠããããŸãã ç¹ã«ãå ã»ã©ãèšã£ãããã«ãWebSocket ãªã©ã®åç¶æéã®é·ãã»ãã·ã§ã³ã§ã¯ã»ãã·ã§ã³ãäžæãããå¯èœæ§ãããããŠãŒã¶ãŒãæ°ä»ããªããã¡ã«ãã®ãããªã»ãã·ã§ã³ãåã€ã³ã¹ããŒã«ã§ããå¿ èŠããããŸãã ãããŠããã¹ãŠãå®ç§ã«ãªããŸãã
ãªãœãŒã¹
å®ã¯ãããã§ã¹ãã¬ãŒããªè©±ãããŸãã ãŸãããŠãå®ç掻ããã è³æºã«ã€ããŠä»ãŸã§èããäžã§æãäžå¿«ãªè©±ã
ãã®å Žåã®ãªãœãŒã¹ãšã¯ãKubernetes ã¯ã©ã¹ã¿ãŒå ã®ãããã«èšå®ã§ããããçš®ã®ãªã¯ãšã¹ããå¶éãæå³ããŸãã éçºè ããèããäžã§æãé¢çœãã£ãã®ã¯... 以åã®è·å Žã§ã®éçºä»²éã®äžäººã¯ããã€ãŠããèšããŸããããç§ã®ã¢ããªã±ãŒã·ã§ã³ã¯ã¯ã©ã¹ã¿ãŒå ã§èµ·åããŸãããã ç§ã¯ãããå§ãŸã£ãŠããªãããšã確èªããŸãããããªãœãŒã¹ã«åãŸããªãã£ãããéåžžã«å°ããªå¶éãèšå®ãããŠãããã®ã©ã¡ããã§ããã ã€ãŸãããªãœãŒã¹ãåå ã§ã¢ããªã±ãŒã·ã§ã³ãèµ·åã§ããŸããã ç§ã¯ããèšããŸããããªãœãŒã¹ãããããå§ãŸãããã§ã¯ãããŸãããå¿ èŠãªéãå€æããé©åãªå€ãèšå®ããŠãã ãããã 圌ã¯ããèšããŸãããã©ã®ãããªãªãœãŒã¹ã§ãã?ã ç§ã¯åœŒã«ãKubernetesããªã¯ãšã¹ãã®å¶éããããŠãªããšããäœãšãããªããšãèšå®ããå¿ èŠãããããšã説æãå§ããŸããã ãã®ç·æ§ã¯XNUMXåé話ãèããããªãããŠããèšããŸããããç§ã¯éçºè ãšããŠåãããã«ããã«æ¥ãŸããããªãœãŒã¹ã«ã€ããŠã¯äœãç¥ããããªãã®ã§ããã ã³ãŒããæžãããã«ããã«æ¥ãã ãã§ããã æ²ããã§ããã ããã¯éçºè ã®èŠ³ç¹ãããããšéåžžã«æ²ããæŠå¿µã§ãã ç¹ã«ãããã°é²æ©ç㪠Devop ã®çŸä»£äžçã§ã¯ã
ãããããªããªãœãŒã¹ãå¿ èŠãªã®ã§ãããã? Kubernetes ã«ã¯ 2 çš®é¡ã®ãªãœãŒã¹ããããŸãã ãªã¯ãšã¹ããšåŒã°ãããã®ãããã°ãå¶éãšåŒã°ãããã®ããããŸãã ãªãœãŒã¹ã«ãã£ãŠãåºæ¬çã«åžžã« XNUMX ã€ã®åºæ¬çãªå¶éã®ã¿ãããããšãç解ãããŸãã ã€ãŸããKubernetes ã§å®è¡ãããã³ã³ãããŒã® CPU æéå¶éãš RAM å¶éã§ãã
å¶éã«ãããã¢ããªã±ãŒã·ã§ã³ã§ã®ãªãœãŒã¹ã®äœ¿çšæ¹æ³ã«äžéãèšå®ãããŸãã ã€ãŸããå¶éå ã« 1 GB ã® RAM ããããšãããšãã¢ããªã±ãŒã·ã§ã³ã¯ 1 GB ãè¶ ãã RAM ã䜿çšã§ããªããªããŸãã ãããŠã圌ãçªç¶ãããæãã§å®è¡ããããšãããšãoom KillerãšåŒã°ããããã»ã¹ãã¡ã¢ãªäžè¶³ã§ãã£ãŠæ¥ãŠãã¢ããªã±ãŒã·ã§ã³ã匷å¶çµäºããŸããã€ãŸããã¢ããªã±ãŒã·ã§ã³ã¯åã«åèµ·åãããŸãã ã¢ããªã±ãŒã·ã§ã³ã¯ CPU ã«åºã¥ããŠåèµ·åãããŸããã CPU ã«é¢ããŠã¯ãã¢ããªã±ãŒã·ã§ã³ãå¶éã§æå®ãããéãè¶ ããŠå€§éã«äœ¿çšããããšãããšãCPU ãå³å¯ã«éžæãããŸãã ããã§ã¯åèµ·åã«ã¯ã€ãªãããŸããã ãããéçã§ã - ãããäžéã§ãã
ãããŠããªã¯ãšã¹ãããããŸãã ãªã¯ãšã¹ãã¯ãKubernetes ã¯ã©ã¹ã¿ãŒå ã®ããŒãã«ã¢ããªã±ãŒã·ã§ã³ãã©ã®ããã«é 眮ããããã Kubernetes ãç解ããæ¹æ³ã§ãã ã€ãŸãããªã¯ãšã¹ãã¯ã¢ããªã±ãŒã·ã§ã³ã®ã³ãããã®äžçš®ã§ãã ããã«ã¯ãããããããã® CPU ãšãããããã®ã¡ã¢ãªã確ä¿ããŠã»ããããšãã䜿ãããããšãæžãããŠããŸãã ãšãŠãåçŽãªããšãã§ãã ããããŸããããåèš 8 åã® CPU ãåããããŒããããå Žåã¯ã©ããªãã§ããããã ãããŠããã«ããããå°çããŸããããã®ãªã¯ãšã¹ãã«ã¯ 1 CPU ãå«ãŸããŠãããããã¯ããŒãã« 7 CPU ãæ®ã£ãŠããããšãæå³ããŸãã ã€ãŸãã8 ã€ã®ãããããã®ããŒãã«å°çããããããã®ãªã¯ãšã¹ãã« 1 ã€ã® CPU ãå«ãŸãããšããã«ããã®ããŒãã¯ãKubernetes ã®èŠ³ç¹ããèŠããš CPU ãäžè¶³ãããªã¯ãšã¹ããæã€ãã以äžã®ããããäœæã§ããªããªããŸãããã®ããŒãã§èµ·åãããŸããã ãã¹ãŠã®ããŒã㧠CPU ãäžè¶³ãããšãKubernetes ã¯ãCPU ãäžè¶³ããããã«ããããå®è¡ããã®ã«é©ããããŒããã¯ã©ã¹ã¿ãŒå ã«ååšããªããšéç¥ãå§ããŸãã
ãªããªã¯ãšã¹ããå¿ èŠãªã®ã§ãããã?ãŸãããªã¯ãšã¹ãããªããã°ãKubernetes ã§äœãèµ·åããå¿ èŠããªãã®ã¯ãªãã§ãããã? ä»®å®ã®ç¶æ³ãæ³åããŠã¿ãŸãããã ãªã¯ãšã¹ããªãã§ã¢ããªã±ãŒã·ã§ã³ãèµ·åãããšãKubernetes ã¯ãã©ãã ãã®ãã®ãæã£ãŠããããã©ã®ããŒãã«ããã·ã¥ã§ããããç¥ããŸããã ããŠã圌ã¯ããŒããæŒããæŒããæŒã蟌ã¿ãŸãã ããæç¹ã§ãã¢ããªã±ãŒã·ã§ã³ãžã®ãã©ãã£ãã¯ã®åä¿¡ãéå§ãããŸãã ãããŠãã¢ããªã±ãŒã·ã§ã³ã® XNUMX ã€ãçªç¶ãå¶éã«å¿ããå¶éãŸã§ãªãœãŒã¹ã䜿çšãå§ããŸãã è¿ãã«å¥ã®ã¢ããªã±ãŒã·ã§ã³ããããããããªãœãŒã¹ãå¿ èŠãšããŠããããšãããããŸããã ããŒãã¯å®éã«ãOP ãªã©ã®ãªãœãŒã¹ãç©ççã«äœ¿ãæããå§ããŸãã ããŒãã¯å®éã«ãã©ã³ãã ã¢ã¯ã»ã¹ ã¡ã¢ãª (RAM) ãªã©ã®ãªãœãŒã¹ãç©ççã«äœ¿ãæããå§ããŸãã ããŒãã®é»åããªããªããšããŸã Docker ãå¿çãåæ¢ãã次㫠cubeletã次㫠OS ãå¿çãåæ¢ããŸãã 圌ãã¯åã«æèã倱ãããã¹ãŠãééããªãæ©èœããªããªããŸãã ã€ãŸããããã«ããããŒããã¹ã¿ãã¯ããŠããŸããããŒããåèµ·åããå¿ èŠããããŸãã äžèšã§èšãã°ãç¶æ³ã¯ããŸãè¯ããããŸããã
ãŸãããªã¯ãšã¹ããããå Žåããã®å¶éã¯å¶éããªã¯ãšã¹ããšããã»ã©å€ãããªããå°ãªããšãäœåã«ããªããªãå ŽåãKubernetes ã¯ã©ã¹ã¿ãŒã®ããŒãå šäœã§ã¢ããªã±ãŒã·ã§ã³ãæ£åžžãã€åççã«æºããããšãã§ããŸãã åæã«ãKubernetes ã¯ãäœãã©ãã«ã©ãã ãé 眮ãããäœãã©ãã§äœ¿çšãããŠããããã»ãŒèªèããŸãã ã€ãŸãããŸãã«ãããªç¬éãªã®ã§ãã ãããç解ããããšãéèŠã§ãã ãããŠãããã瀺ãããããã«å¶åŸ¡ããããšãéèŠã§ãã
ããŒã¿ä¿å
次ã®ãã€ã³ãã¯ããŒã¿ã¹ãã¬ãŒãžã«ã€ããŠã§ãã ããããã©ããããããããŠäžè¬ã«ãKubernetes ã®æ°žç¶æ§ãã©ãããã?
ããäžåºŠç§ãã¡ã®äžã§æãã®ã¯ã
ããã§ã®ããžãã¯ã¯åçŽã§ãã 念ã®ãããããäžåºŠèª¬æããŸããããããªããåæ£åãããã¯ãŒã¯ ã¹ãã¬ãŒãžã®ããªããã©ãŒã«ã ãã¬ã©ã³ããªã·ã¹ãã ãæ§ç¯ã§ããæ¬åœã«åªãã人ã§ããã°ããã®ã±ãŒã¹ã«ããŒã¿ããŒã¹ãé©åãããæ¹æ³ããã³ã³ããå ã®ã¯ã©ãŠã ãã€ãã£ããã©ã®ããã«æ©èœããããç解ããŠããå¿ èŠããããŸããããŒã¿ããŒã¹å šè¬ã§ã ããããããããå®è¡ããæ¹æ³ã«ã€ããŠçåãæããªãã§ãããã ãã®ãããªçåããããããããã¹ãŠå±éãããæ¬çªç°å¢ã§æ»ã¬ãŸã§èãã決ããŠèœã¡ãªãããšã確èªãããå Žåããã®ãããªããšã¯èµ·ãããŸããã ãã®ã¢ãããŒãã§ã¯ãééããªãèªåã®è¶³ãæã€ããšã«ãªããŸãã ã ãããããªãã»ããããã®ã§ãã
ã¢ããªã±ãŒã·ã§ã³ãä¿åãããããŒã¿ããŠãŒã¶ãŒãã¢ããããŒãããåçãã¢ããªã±ãŒã·ã§ã³ã®åäœäž (èµ·åæãªã©) ã«çæããããã®ã¯ã©ãããã°ããã§ãããã? Kubernetes ã§ã¯ããããã©ãããã°ããã§ãããã?
äžè¬ã«ãçæ³çã«ã¯ãã¯ãããã¡ãããKubernetes ã¯éåžžã«ããèšèšãããŠãããéåžžãåœåã¯ã¹ããŒãã¬ã¹ ã¢ããªã±ãŒã·ã§ã³çšã«èããããŠããŸããã ã€ãŸããæ å ±ããŸã£ããä¿åããªãã¢ããªã±ãŒã·ã§ã³ã®å Žåã§ãã ãããçæ³çã§ãã
ãããããã¡ãããçæ³çãªéžæè¢ãåžžã«ååšãããšã¯éããŸããã ã ããäœïŒ æåã®æãç°¡åãªãã€ã³ãã¯ããã皮㮠S3 ãå ¥æããããšã§ããèªå®¶è£œã®ãã®ã§ã¯ãªãããããã©ã®ããã«æ©èœãããã¯äžæã§ããããããã€ããŒããæäŸãããŠããŸãã åªããéåžžã®ãããã€ã㌠- ã¢ããªã±ãŒã·ã§ã³ã« S3 ã䜿çšããããã«æããŸãã ã€ãŸãããŠãŒã¶ãŒããã¡ã€ã«ãã¢ããããŒãããããšãã«ããS3 ã«ã¢ããããŒãããŠãã ããããšèšããŸãã 圌ããããåãåããããšãã¯ããããã« S3 ãžã®ãªã³ã¯ããããŸããããããåãåã£ãŠãã ãããããšèšããŸãã ãããçæ³çã§ãã
äœããã®çç±ã§ãã®çæ³çãªãªãã·ã§ã³ãçªç¶é©åã§ã¯ãªããªã£ãå Žåãèªåãäœæãããã®ã§ã¯ãªãã¢ããªã±ãŒã·ã§ã³ãèªåãéçºãããã®ã§ã¯ãªãã¢ããªã±ãŒã·ã§ã³ããŸãã¯ããçš®ã®ã²ã©ãã¬ã¬ã·ãŒã§ããå Žåããã®ã¢ããªã±ãŒã·ã§ã³ã¯ S3 ãããã³ã«ã䜿çšã§ããŸããããããŒã«ã« ãã£ã¬ã¯ããªã§åäœããå¿ èŠããããŸããããŒã«ã«ãã©ã«ããŒã å€ããå°ãªããåçŽãªããšãšããŠãKubernetes ããããã€ããŸãã ã€ãŸããããã€ãã®æå°éã®ã¿ã¹ã¯ã®ããã«ããã« Ceph ããã§ã³ã·ã³ã°ããã®ã¯æªãèãã§ããããã«ç§ã«ã¯æããŸãã Ceph ã¯ãã¡ããè¯ããããã¡ãã·ã§ããã«ã ããã§ãã ããããèªåãäœãããŠããã®ãããç解ããŠããªãå Žåã¯ãäžåºŠ Ceph ã«äœãã眮ããããéåžžã«ç°¡åã«ããããŠäºåºŠãšããããåãåºãããšãã§ããªããªããŸãã ãåç¥ã®ãšãããCeph ã¯åçŽãªãã¡ã€ã«ã®åœ¢åŒã§ã¯ãªãããã€ããªåœ¢åŒã§ã¯ã©ã¹ã¿ã«ããŒã¿ãä¿åããããã§ãã ãããã£ãŠãCeph ã¯ã©ã¹ã¿ãŒãçªç¶æ éãããšãããããããŒã¿ãåã³ååŸã§ããªããªãå¯èœæ§ãé«ããªããŸãã
Ceph ã«é¢ããã³ãŒã¹ãéå¬ããŸãã
ãããã£ãŠãNFS ãµãŒããŒã®ãããªåçŽãªãã®ã䜿çšããããšããå§ãããŸãã Kubernetes ã¯ããããšé£æºã§ããNFS ãµãŒããŒã®äžã«ãã£ã¬ã¯ããªãããŠã³ãã§ããŸããã¢ããªã±ãŒã·ã§ã³ã¯ããŒã«ã« ãã£ã¬ã¯ããªãšåãã§ãã åæã«ãåœç¶ã®ããšãªããããã¯ã NFS ã§äœããããå¿ èŠãããããšãã¢ã¯ã»ã¹ã§ããªããªãå Žåãããããšãç解ãããã®å Žåã«äœãããããšããåé¡ãæ€èšããå¿ èŠãããããšãç解ããå¿ èŠããããŸãã ãããããå¥ã®ãã·ã³ã®ã©ããã«ããã¯ã¢ããããå¿ èŠããããŸãã
次ã«ã話ãããã®ã¯ãã¢ããªã±ãŒã·ã§ã³ãåäœäžã«ãã¡ã€ã«ãçæããå Žåã«ã©ãããããšããããšã§ãã ããšãã°ãã¢ããªã±ãŒã·ã§ã³ãèµ·åæã«ã®ã¿åä¿¡ããæ å ±ã«åºã¥ããŠãéçãã¡ã€ã«ãçæãããŸãã ãªããŠç¬éã§ãããã ãã®ãããªããŒã¿ãããŸããªãå Žåã¯ããããããã®ã¢ããªã±ãŒã·ã§ã³ãèªåã§ã€ã³ã¹ããŒã«ããŠäœæ¥ããã ãã§ãã ããã§ã®å¯äžã®çåã¯ãäœãããããšããããšã§ãã éåžžã«å€ãã®å ŽåãWordPress ãªã©ã®ããããçš®é¡ã®ã¬ã¬ã·ãŒ ã·ã¹ãã ãç¹ã«æ¹è¯ãããããçš®ã®è³¢ããã©ã°ã€ã³ãè³¢ã PHP éçºè ã¯ãèªåã§äœããã®ãã¡ã€ã«ãçæããæ¹æ³ãç¥ã£ãŠããããšããããããŸãã ãããã£ãŠãXNUMX ã€ç®ã¯ XNUMX ã€ã®ãã¡ã€ã«ãçæããXNUMX ã€ç®ã¯ XNUMX ã€ç®ã®ãã¡ã€ã«ãçæããŸãã ãããã¯éãã ã¯ã©ã€ã¢ã³ãã® Kubernetes ã¯ã©ã¹ã¿ãŒå ã§ãã©ã³ã·ã³ã°ã¯åã«å¶ç¶ã«çºçããŸãã ãããã£ãŠã圌ãã¯å®éã«ã©ã®ããã«ååããããç¥ããªãããšãããããŸããã XNUMX ã€ã¯ããæ å ±ããŠãŒã¶ãŒã«æäŸãããã XNUMX ã€ã¯ãŠãŒã¶ãŒã«å¥ã®æ å ±ãæäŸããŸãã ããã¯é¿ããã¹ãããšã§ãã ã€ãŸããKubernetes ã§ã¯ãèµ·åãããã®ã¯ãã¹ãŠè€æ°ã®ã€ã³ã¹ã¿ã³ã¹ã§åäœããããšãä¿èšŒãããŠããŸãã Kubernetes ã¯åããã®ã ããã§ãã ãããã£ãŠã圌ã¯èª°ã«ãé ŒãŸãªããŠãããã€ã§ã奜ããªãšãã«äœã§ãåããããšãã§ããŸãã ãããã£ãŠããããé Œãã«ããå¿ èŠããããŸãã XNUMX ã€ã®ã€ã³ã¹ã¿ã³ã¹ã§èµ·åããããã®ã¯ãã¹ãŠãé ããæ©ãã倱æããŸãã äºçŽãå€ããã°å€ãã»ã©è¯ãã§ãã ããããç¹°ãè¿ãã«ãªããŸããããã®ãããªãã¡ã€ã«ãããã€ãããå Žåã¯ãããããããäžã«çœ®ãããšãã§ããŸãããããã®ééã¯ãããã§ãã ããå°ãå€ãå Žåã¯ãã³ã³ããå ã«æŒã蟌ãŸãªãã»ããããã§ãããã
Kubernetes ã«ã¯ããªã¥ãŒã ã䜿çšã§ãããšããçŽ æŽãããæ©èœãããããšããå§ãããŸãã ç¹ã«ãã¿ã€ãã空ã®ãã£ã¬ã¯ããªã®ããªã¥ãŒã ããããŸãã ã€ãŸããKubernetes ã¯ãèµ·åãããµãŒããŒäžã®ãµãŒãã¹ ãã£ã¬ã¯ããªã«ãã£ã¬ã¯ããªãèªåçã«äœæããã ãã§ãã ãããŠãããªããããã䜿ããããã«ã圌ã¯ãããããªãã«äžããŸãã éèŠãªç¹ã XNUMX ã€ã ããããŸãã ã€ãŸããããŒã¿ã¯ã³ã³ãããŒå ã§ã¯ãªããå®è¡äžã®ãã¹ãã«ä¿åãããŸãã ããã«ãKubernetes ã¯éåžžã®æ§æã§ãã®ãããªç©ºã®ãã£ã¬ã¯ããªãå¶åŸ¡ã§ãããã®æ倧ãµã€ãºãå¶åŸ¡ããŠãããè¶ ããªãããã«ããããšãã§ããŸãã å¯äžã®ãã€ã³ãã¯ã空ã®ãã£ã¬ã¯ããªã«æžã蟌ãã å 容ããããã®åèµ·åæã«å€±ãããªãããšã§ãã ã€ãŸãããããã誀ã£ãŠèœã¡ãŠåã³ç«ã¡äžãã£ãå Žåã空ã®ãã£ã¬ã¯ããªå ã®æ å ±ã¯ã©ãã«ãè¡ããŸããã 圌ã¯æ°ããªã¹ã¿ãŒãæã«ãããåã³äœ¿çšã§ãã - ããã¯è¯ãããšã ã ããªãã®ããããã©ããã«å»ã£ãå Žåãåœç¶ã®ããšãªããã圌ã¯ããŒã¿ãªãã§å»ããŸãã ã€ãŸãã空ã®ãã£ã¬ã¯ããªã§èµ·åãããããŒãã®ããããæ¶ãããšããã«ã空ã®ãã£ã¬ã¯ããªã¯åé€ãããŸãã
空ã®ãã£ã¬ã¯ããªã«ã¯ä»ã«äœãè¯ãã®ã§ãããã? ããšãã°ããã£ãã·ã¥ãšããŠäœ¿çšã§ããŸãã ç§ãã¡ã®ã¢ããªã±ãŒã·ã§ã³ããã®å Žã§äœããçæãããŠãŒã¶ãŒã«æäŸãããããé·æéå®è¡ãããšæ³åããŠã¿ãŸãããã ãããã£ãŠãã¢ããªã±ãŒã·ã§ã³ã¯ãããšãã°ããããçæããŠãŠãŒã¶ãŒã«æäŸãããšåæã«ããããã©ããã«ä¿åããŸããããã«ããããŠãŒã¶ãŒã次ã«åããã®ãæ±ãã«æ¥ããšãã«ãããã«çæãããã®ãæäŸããæ¹ãéããªããŸãã 空ã®ãã£ã¬ã¯ããªãã¡ã¢ãªå ã«äœæããããã« Kubernetes ã«èŠæ±ã§ããŸãã ãããã£ãŠããã£ã¹ã¯ ã¢ã¯ã»ã¹é床ã®ç¹ã§ããã£ãã·ã¥ã¯éåžžãè¶ é«éã§åäœããŸãã ã€ãŸããã¡ã¢ãªå ã«ç©ºã®ãã£ã¬ã¯ããªããããOS ã§ã¯ã¡ã¢ãªã«ä¿åãããŸããããããå ã®ãŠãŒã¶ãŒã«ãšã£ãŠã¯ãåãªãããŒã«ã« ãã£ã¬ã¯ããªã®ããã«èŠããŸãã ç¹å¥ã«éæ³ãæããããã«ã¢ããªã¯å¿ èŠãããŸããã ãã¡ã€ã«ãçŽæ¥ååŸããŠãã£ã¬ã¯ããªã«é 眮ããã ãã§ãããå®éã«ã¯ OS äžã®ã¡ã¢ãªã«é 眮ãããŸãã ãã㯠Kubernetes ã®èŠ³ç¹ãããéåžžã«äŸ¿å©ãªæ©èœã§ãã
ãããªã¯ã©ããªæ©ã¿ãæ±ããŠããã®ã§ããããïŒ Minio ã®äž»ãªåé¡ã¯ããããåäœããããã«ã¯ã©ããã§å®è¡ãããŠããå¿ èŠããããäœããã®ãã¡ã€ã« ã·ã¹ãã ãã€ãŸãã¹ãã¬ãŒãžãå¿ èŠã§ããããšã§ãã ãããŠããã§ãCeph ãæ±ããŠããã®ãšåãåé¡ã«ééããŸãã ã€ãŸããMinio ã¯ãã¡ã€ã«ãã©ããã«ä¿åããå¿ èŠããããŸãã ããã¯åã«ãã¡ã€ã«ãžã® HTTP ã€ã³ã¿ãŒãã§ã€ã¹ã§ãã ãããAmazonã®S3ãšæ¯ã¹ããšæããã«æ©èœãå£ã£ãŠããŸãã 以åã¯ããŠãŒã¶ãŒãé©åã«èªèšŒã§ããŸããã§ããã ç§ã®ç¥ãéãããã§ã«ç°ãªãæš©éãæã€ãã±ãããäœæã§ããŸããããã¯ãäž»ãªåé¡ã¯ãããã°åºç€ãšãªãã¹ãã¬ãŒãž ã·ã¹ãã ã«ããããã«æããŸãã
ã¡ã¢ãªå ã®ç©ºã®ãã£ã¬ã¯ããªã¯å¶éã«ã©ã®ããã«åœ±é¿ããŸãã? å¶éã«ã¯ãŸã£ãã圱é¿ããŸããã ããã¯ã³ã³ããã®ã¡ã¢ãªã§ã¯ãªãããã¹ãã®ã¡ã¢ãªã«ãããŸãã ã€ãŸããã³ã³ããã¯ã¡ã¢ãªå ã®ç©ºã®ãã£ã¬ã¯ããªãå æã¡ã¢ãªã®äžéšãšããŠèªèããŸããã ãã¹ãã¯ãããèŠãŸãã ãããã£ãŠãã¯ããKubernetes ã®èŠ³ç¹ãããããã䜿çšãå§ãããšãã¯ãã¡ã¢ãªã®äžéšã空ã®ãã£ã¬ã¯ããªã«è²»ãããŠããããšãç解ããã®ãè¯ãã§ãããã ãããã£ãŠãã¢ããªã±ãŒã·ã§ã³ã ãã§ãªãã誰ãããããã®ç©ºã®ãã£ã¬ã¯ããªã«æžã蟌ãããšã«ãã£ãŠãã¡ã¢ãªãäžè¶³ããå¯èœæ§ãããããšãç解ããŠãã ããã
ã¯ã©ãŠããã€ãã£ããã¹
ãããŠæåŸã®ãµããããã¯ã¯ãCloudnative ãšã¯äœããšããããšã§ãã ãªãå¿ èŠãªã®ã§ãããã? ã¯ã©ãŠããã€ãã£ããã¹ãªã©ã
ã€ãŸããææ°ã®ã¯ã©ãŠã ã€ã³ãã©ã¹ãã©ã¯ãã£ã§æ©èœããåäœããããã«èšè¿°ãããã¢ããªã±ãŒã·ã§ã³ã§ãã ããããå®ã¯Cloudnativeã«ã¯ããäžã€ãã®ãããªåŽé¢ããããŸãã ããã¯ãææ°ã®ã¯ã©ãŠã ã€ã³ãã©ã¹ãã©ã¯ãã£ã®ãã¹ãŠã®èŠä»¶ãèæ ®ããã¢ããªã±ãŒã·ã§ã³ã§ããã ãã§ãªãããã®ææ°ã®ã¯ã©ãŠã ã€ã³ãã©ã¹ãã©ã¯ãã£ãšé£æºããæ¹æ³ãçç¥ããŠããããããã®ã¯ã©ãŠãã§åäœãããšããäºå®ã®é·æãšçæã掻çšããŸãã åã«ãããããŠã¯ã©ãŠãã§äœæ¥ããã®ã§ã¯ãªããã¯ã©ãŠãã§äœæ¥ããå©ç¹ã掻çšããŠãã ããã
Kubernetes ãäŸã«æããŠã¿ãŸãããã ã¢ããªã±ãŒã·ã§ã³ã¯ Kubernetes ã§å®è¡ãããŠããŸãã ã¢ããªã±ãŒã·ã§ã³ã¯ãã€ã§ãããããã¯ã¢ããªã±ãŒã·ã§ã³ã®ç®¡çè ã¯ãã€ã§ããµãŒãã¹ ã¢ã«ãŠã³ããäœæã§ããŸãã ã€ãŸããKubernetes èªäœã®ãµãŒããŒå ã®æ¿èªçšã®ã¢ã«ãŠã³ãã§ãã ããã«å¿ èŠãªæš©å©ãããã€ãè¿œå ããŸãã ãŸããã¢ããªã±ãŒã·ã§ã³å ãã Kubernetes ã«ã¢ã¯ã»ã¹ã§ããŸãã ãã®æ¹æ³ã§äœãã§ããã§ããããïŒ ããšãã°ãã¢ããªã±ãŒã·ã§ã³ãããä»ã®ã¢ããªã±ãŒã·ã§ã³ãä»ã®åæ§ã®ã€ã³ã¹ã¿ã³ã¹ãã©ãã«ãããã«é¢ããããŒã¿ãåãåããå¿ èŠã«å¿ããŠäœããã®æ¹æ³ã§ Kubernetes äžã«ã¯ã©ã¹ã¿ãªã³ã°ããŸãã
ç¹°ãè¿ãã«ãªããŸãããæåéãæè¿äºä»¶ãçºçããŸããã ãã¥ãŒãç£èŠããã³ã³ãããŒã©ãŒã XNUMX ã€ãããŸãã ãããŠãããã€ãã®æ°ããã¿ã¹ã¯ããã®ãã¥ãŒã«çŸãããšããã㯠Kubernetes ã«éãããKubernetes å ã§æ°ããããããäœæãããŸãã ãã®ãããã«æ°ããã¿ã¹ã¯ãäžãããã®ãããã®ãã¬ãŒã ã¯ãŒã¯å ã§ãããã¯ã¿ã¹ã¯ãå®è¡ããã³ã³ãããŒã©ãŒèªäœã«å¿çãéä¿¡ããã³ã³ãããŒã©ãŒã¯ãã®æ å ±ã䜿çšããŠäœããã®åŠçãè¡ããŸãã ããšãã°ãããŒã¿ããŒã¹ãè¿œå ããŸãã ã€ãŸããç¹°ãè¿ãã«ãªããŸãããããã¯ã¢ããªã±ãŒã·ã§ã³ã Kubernetes ã§å®è¡ããããšããäºå®ã®å©ç¹ã§ãã çµã¿èŸŒã¿ã® Kubernetes æ©èœèªäœã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³ã®æ©èœãæ¡åŒµããŠãã䟿å©ã«ããããšãã§ããŸãã ã€ãŸããã¢ããªã±ãŒã·ã§ã³ã®èµ·åæ¹æ³ãã¯ãŒã«ãŒã®èµ·åæ¹æ³ã«é¢ããããçš®ã®éæ³ãé ããªãã§ãã ããã Kubernetes ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã Python ã§èšè¿°ãããŠããå Žåãã¢ããªã±ãŒã·ã§ã³å ã§ãªã¯ãšã¹ããéä¿¡ããã ãã§ãã
Kubernetes ãè¶ ããå Žåã«ãåãããšãåœãŠã¯ãŸããŸãã Kubernetes ã¯ã©ããã§å®è¡ãããŠããŸãããäœããã®ã¯ã©ãŠãäžã«ããã°åé¡ãããŸããã ç¹°ãè¿ãã«ãªããŸãããç§ãã¡ã¯ãå®è¡ããŠããã¯ã©ãŠãèªäœã®æ©èœã䜿çšããããšãã§ãã䜿çšãã¹ãã ãšããæããŸãã ã¯ã©ãŠããæäŸããåºæ¬çãªãã®ããã ãã©ã³ã·ã³ã°ãã€ãŸãã¯ã©ãŠããã©ã³ãµãŒãäœæããŠäœ¿çšã§ããŸãã ããã¯ãç§ãã¡ã䜿çšã§ãããã®ã®çŽæ¥çãªå©ç¹ã§ãã ãªããªããã¯ã©ãŠãã®ãã©ã³ã·ã³ã°ã¯ã第äžã«ããã®ä»çµã¿ãæ§æã«å¯Ÿãã責任ãæãã«ãç§ãã¡ããåãé€ãã ãã ããã§ãã ããã«ãéåžžã® Kubernetes ã¯ã¯ã©ãŠããšçµ±åã§ãããããéåžžã«äŸ¿å©ã§ãã
ã¹ã±ãŒãªã³ã°ã«ã€ããŠãåæ§ã§ãã éåžžã® Kubernetes ã¯ã¯ã©ãŠã ãããã€ããŒãšçµ±åã§ããŸãã ã¯ã©ã¹ã¿ãŒã§ããŒããäžè¶³ããå Žåãã€ãŸãããŒãã®ã¹ããŒã¹ãäžè¶³ããå Žåãè¿œå ããå¿ èŠãããããšãç解ããæ¹æ³ãç¥ã£ãŠããŸããKubernetes èªäœãæ°ããããŒããã¯ã©ã¹ã¿ãŒã«è¿œå ãããããã®ããŒãäžã§ãããã®èµ·åãéå§ããŸãã ã€ãŸããè·ç©ãæ¥ããšãçã®æ°ãå¢ãå§ããŸãã ã¯ã©ã¹ã¿ãŒå ã®ããŒãã§ãããã®ããããäžè¶³ãããšãKubernetes ã¯æ°ããããŒããèµ·åããããããããã®æ°ã¯ããã«å¢å ããå¯èœæ§ããããŸãã ãããŠãšãŠã䟿å©ã§ãã ããã¯ãã¯ã©ã¹ã¿ãŒããªã³ã¶ãã©ã€ã§ã¹ã±ãŒã«ããçŽæ¥çãªæ©äŒã§ãã æ°ããããŒããè¿œå ããã®ã« XNUMX ç§ã§ã¯ãªããXNUMX åã»ã©ããããšããæå³ã§ã¯ãããã»ã©é«éã§ã¯ãããŸããã
ããããç§ã®çµéšããèšãã°ãããã¯ç§ãä»ãŸã§èŠãäžã§æãã¯ãŒã«ãªãã®ã§ãã Cloudnative ã¯ã©ã¹ã¿ãŒãæå»ã«åºã¥ããŠã¹ã±ãŒãªã³ã°ããããšãã ããã¯ããã¯ãªãã£ã¹ã®äººã ã䜿çšããããã¯ãšã³ã ãµãŒãã¹ã§ããã ã€ãŸãã圌ãã¯åå 9 æã«åºå€ããã·ã¹ãã ãžã®ãã°ã€ã³ãéå§ããŸããããã«å¿ããŠããã¹ãŠãå®è¡ãããŠãã Cloudnative ã¯ã©ã¹ã¿ãŒãèšåŒµãå§ããåºå€ããå šå¡ãã¢ããªã±ãŒã·ã§ã³ãæäœã§ããããã«ãæ°ããããããèµ·åãããŸãã ååŸ 8 æãŸãã¯ååŸ 6 æã«é瀟ãããšãKubernetes ã¯ã©ã¹ã¿ãŒã¯ã¢ããªã±ãŒã·ã§ã³ããã誰ã䜿çšããŠããªãããšã«æ°ã¥ããçž®å°ãå§ããŸãã æ倧 30% ã®ç¯çŽãä¿èšŒãããŸãã åœæã®ã¢ããŸã³ã§ã¯ãããããŸããããŸããããåœæãã·ã¢ã«ã¯ããã»ã©äžæã«ã§ãã人ã¯ããŸããã§ããã
ççŽã«èšããŸãããåçŽã« Kubernetes ã䜿çšããã¯ã©ãŠãã®æ©èœã掻çšããŠãããããç¯çŽç㯠30% ã§ãã ããããã·ã¢ã§ãå®çŸã§ããããã«ãªããŸããã ãã¡ããã誰ã«ã宣äŒããã€ããã¯ãããŸãããããããå®è¡ã§ãããããã€ããŒãããããã¿ã³ã䜿ã£ãŠããã«æäŸã§ãããšã ãèšã£ãŠãããŸãããã
æåŸã«ãã XNUMX ã€æ³šæããŠããã ãããç¹ããããŸãã ã¢ããªã±ãŒã·ã§ã³ãã€ã³ãã©ã¹ãã©ã¯ãã£ã Cloudnative ã«ããããã«ã¯ãæçµçã« Infrastructure as a Code ãšåŒã°ããã¢ãããŒãã®é©å¿ãéå§ããã®ãçã«ããªã£ãŠããŸããã³ãŒã ã¢ããªã±ãŒã·ã§ã³ãããžãã¹ ããžãã¯ãã³ãŒãã®åœ¢åŒã§èšè¿°ããŸãã ãããŠããããã³ãŒããšããŠæ±ããŸããã€ãŸãããã¹ãããå±éããgit ã«ä¿åããCICD ãé©çšããŸãã
ããã«ããã第äžã«ãã€ã³ãã©ã¹ãã©ã¯ãã£ãåžžã«å¶åŸ¡ããã€ã³ãã©ã¹ãã©ã¯ãã£ãã©ã®ãããªç¶æ ã«ããããåžžã«ææ¡ã§ããããã«ãªããŸãã 次ã«ããšã©ãŒãåŒãèµ·ããæåæäœãé¿ããŠãã ããã 第äžã«ãåãæåã¿ã¹ã¯ãåžžã«å®è¡ããå¿ èŠããããããããé¢è·ãé¿ããŠãã ããã XNUMX çªç®ã«ãé害ãçºçããå Žåã«ãããè¿ éã«å埩ã§ããããã«ãªããŸãã ãã·ã¢ã§ã¯ãç§ããã®ããšã«ã€ããŠè©±ããã³ã«ããã€ãèšå€§ãªæ°ã®äººãããèšãããã¯ããããã¯æããã§ãããã¢ãããŒãã¯ãããŸããèŠããã«ãäœãä¿®æ£ããå¿ èŠã¯ãããŸãããã ããããããã¯æ¬åœã§ãã ã€ã³ãã©ã¹ãã©ã¯ãã£ã§äœããå£ããå ŽåãCloudnative ã¢ãããŒãã®èŠ³ç¹ããã³ã³ãŒããšããŠã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã®èŠ³ç¹ãããããšããããä¿®æ£ãããããããµãŒããŒã«ã¢ã¯ã»ã¹ããŠäœãå£ããŠããã®ããç¹å®ããŠä¿®æ£ããæ¹ãç°¡åã§ãããµãŒããŒãåé€ããŠå床äœæããŸãã ãããŠãããããã¹ãŠåŸ©å ããŸãã
ããããã¹ãŠã®åé¡ã«ã€ããŠã¯ã以äžã§è©³ãã説æãããŠããŸãã
åºæïŒ habr.com