åæ£ã·ã¹ãã ã®éçšã«ãããéèŠãªãã€ã³ãã¯ãé害ã®åŠçã§ãã Kubernetes ã¯ãã·ã¹ãã ã®å¥å
šæ§ãç£èŠããåäœãåæ¢ãããµãŒãã¹ãåèµ·åããã³ã³ãããŒã©ãŒã䜿çšããŠãããæ¯æŽããŸãã ãã ããKubernetes ã¯ã¢ããªã±ãŒã·ã§ã³ã匷å¶çã«åæ¢ããŠãã·ã¹ãã å
šäœã®å¥å
šæ§ã確ä¿ã§ããŸãã ãã®ã·ãªãŒãºã§ã¯ãKubernetes ãããå¹ççã«ãžã§ããå®è¡ããã¢ããªã±ãŒã·ã§ã³ã®ããŠã³ã¿ã€ã ãåæžããæ¹æ³ãèŠãŠãããŸãã
ã³ã³ãããŒãç»å Žããåã¯ãã»ãšãã©ã®ã¢ããªã±ãŒã·ã§ã³ã¯ä»®æ³ãã·ã³ãŸãã¯ç©çãã·ã³äžã§å®è¡ãããŠããŸããã ã¢ããªã±ãŒã·ã§ã³ãã¯ã©ãã·ã¥ãŸãã¯ããªãŒãºããå Žåãé²è¡äžã®ã¿ã¹ã¯ããã£ã³ã»ã«ããŠããã°ã©ã ãåããŒãããã®ã«é·ãæéãããããŸããã ææªã®ã·ããªãªã§ã¯ã誰ããå€éãæãäžé©åœãªæéã«ãã®åé¡ãæåã§è§£æ±ºããªããã°ãªããŸããã§ããã éèŠãªã¿ã¹ã¯ãå®è¡ããŠããäœæ¥ãã·ã³ã 1 ïœ 2 å°ã ãã§ããå Žåããã®ãããªæ··ä¹±ã¯ãŸã£ãã蚱容ã§ããŸããã
ãã®ãããæåã§åèµ·åãã代ããã«ãããã»ã¹ ã¬ãã«ã®ç£èŠã䜿çšããŠãç°åžžçµäºãçºçããå Žåã«ã¢ããªã±ãŒã·ã§ã³ãèªåçã«åèµ·åããããã«ãªããŸããã ããã°ã©ã ã倱æãããšãç£èŠããã»ã¹ãçµäºã³ãŒããååŸãããµãŒããŒãåèµ·åããŸãã Kubernetes ã®ãããªã·ã¹ãã ã®åºçŸã«ãããã·ã¹ãã é害ã«å¯Ÿãããã®çš®ã®å¯Ÿå¿ã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ã«åçŽã«çµ±åãããããã«ãªããŸããã
Kubernetes ã¯ãobserver-difference-take-action ã€ãã³ã ã«ãŒãã䜿çšããŠãã³ã³ãããŒããããŒãèªäœã«å°éããéäžã§ãªãœãŒã¹ãæ£åžžãªç¶æ ãç¶æã§ããããã«ããŸãã
ã€ãŸããããã»ã¹ç£èŠãæåã§å®è¡ããå¿
èŠããªããªããŸããã ãªãœãŒã¹ããã«ã¹ãã§ãã¯ã«å€±æããå ŽåãKubernetes ã¯ä»£æ¿ãªãœãŒã¹ãèªåçã«ããããžã§ãã³ã°ããŸãã ãã ããKubernetes ã¯ã¢ããªã±ãŒã·ã§ã³ã®é害ãç£èŠããã ãã§ã¯ãããŸããã è€æ°ã®ãã·ã³ã§å®è¡ããã¢ããªã±ãŒã·ã§ã³ã®ã³ããŒãããã«äœæããããã¢ããªã±ãŒã·ã§ã³ãæŽæ°ããããã¢ããªã±ãŒã·ã§ã³ã®è€æ°ã®ããŒãžã§ã³ãåæã«å®è¡ãããã§ããŸãã
ãããã£ãŠãKubernetes ãå®å
šã«æ£åžžãªã³ã³ãããçµäºã§ããçç±ã¯æ°å€ããããŸãã ããšãã°ããããã€ã¡ã³ããã¢ããã°ã¬ãŒããããšãKubernetes ã¯æ°ããããããéå§ããªããå€ããããããã£ãããšåæ¢ããŸãã ããŒããã·ã£ããããŠã³ãããšãKubernetes ã¯ãã®ããŒãäžã®ãã¹ãŠã®ãããã®å®è¡ãåæ¢ããŸãã æåŸã«ãããŒãã®ãªãœãŒã¹ãäžè¶³ãããšãKubernetes ã¯ãã¹ãŠã®ããããã·ã£ããããŠã³ããŠããããã®ãªãœãŒã¹ã解æŸããŸãã
ãããã£ãŠããšã³ã ãŠãŒã¶ãŒãžã®åœ±é¿ãæå°éã«æããå埩æéãæå°éã«æããŠã¢ããªã±ãŒã·ã§ã³ãçµäºããããšãéèŠã§ãã ã€ãŸããã·ã£ããããŠã³ããåã«ãä¿åããå¿ èŠããããã¹ãŠã®ããŒã¿ãä¿åãããã¹ãŠã®ãããã¯ãŒã¯æ¥ç¶ãéããæ®ãã®äœæ¥ãå®äºãããã®ä»ã®ç·æ¥ã¿ã¹ã¯ã管çããå¿ èŠããããŸãã
å®éã«ã¯ãããã¯ãã¢ããªã±ãŒã·ã§ã³ã SIGTERM ã¡ãã»ãŒãž (Unix ãªãã¬ãŒãã£ã³ã° ã·ã¹ãã äžã® kill ãŠãŒãã£ãªãã£ã®ããã©ã«ãã®ä¿¡å·ã§ããããã»ã¹çµäºä¿¡å·) ãåŠçã§ããªããã°ãªããªãããšãæå³ããŸãã ãã®ã¡ãã»ãŒãžãåä¿¡ããããã¢ããªã±ãŒã·ã§ã³ãã·ã£ããããŠã³ããå¿ èŠããããŸãã
Kubernetes ããããã®çµäºã決å®ãããšãå€ãã®ã€ãã³ããçºçããŸãã ã³ã³ãããŒãŸãã¯ããããã·ã£ããããŠã³ãããšãã« Kubernetes ãå®è¡ããåã¹ããããèŠãŠã¿ãŸãããã
ãããã® XNUMX ã€ãçµäºããããšããŸãã ãã®æç¹ã§ãæ°ãããã©ãã£ãã¯ã®åä¿¡ãåæ¢ããŸãããããå ã§å®è¡ãããŠããã³ã³ãããŒã¯åœ±é¿ãåããŸãããããã¹ãŠã®æ°ãããã©ãã£ãã¯ã¯ãããã¯ãããŸãã
preStop ããã¯ãèŠãŠã¿ãŸããããããã¯ããããå
ã®ã³ã³ãããŒã«éä¿¡ãããç¹å¥ãªã³ãã³ããŸã㯠HTTP ãªã¯ãšã¹ãã§ãã SIGTERM ã®åä¿¡æã«ã¢ããªã±ãŒã·ã§ã³ãæ£ããã·ã£ããããŠã³ããªãå Žåã¯ãpreStop ã䜿çšããŠæ£ããã·ã£ããããŠã³ã§ããŸãã
ã»ãšãã©ã®ããã°ã©ã ã¯ãSIGTERM ã·ã°ãã«ãåä¿¡ãããšæ£åžžã«çµäºããŸããããµãŒãããŒãã£ã®ã³ãŒããå®å
šã«ã¯å¶åŸ¡ã§ããªãã·ã¹ãã ã䜿çšããŠããå ŽåãpreStop ããã¯ã¯ãã¢ããªã±ãŒã·ã§ã³ãå€æŽããã«æ£åžžã«ã·ã£ããããŠã³ã匷å¶ããåªããæ¹æ³ã§ãã
ãã®ããã¯ãå®è¡ããåŸãKubernetes ã¯ãããå ã®ã³ã³ãããŒã« SIGTERM ã·ã°ãã«ãéä¿¡ãããŸããªãåæãããããšãã³ã³ãããŒã«ç¥ãããŸãã ãã®ã·ã°ãã«ãåä¿¡ãããšãã³ãŒãã¯ã·ã£ããããŠã³ ããã»ã¹ã«é²ã¿ãŸãã ãã®ããã»ã¹ã«ã¯ãããŒã¿ããŒã¹æ¥ç¶ã WebSocket ã¹ããªãŒã ãªã©ã®é·æéåç¶ããæ¥ç¶ã®åæ¢ãçŸåšã®ç¶æ ã®ä¿åãªã©ãå«ãŸããå ŽåããããŸãã
preStop ããã¯ã䜿çšããå Žåã§ããSIGTERM ã·ã°ãã«ãéä¿¡ãããšãã«ã¢ããªã±ãŒã·ã§ã³ã«æ£ç¢ºã«äœãèµ·ããããããã³ã¢ããªã±ãŒã·ã§ã³ãã©ã®ããã«åäœãããã確èªãããããã®ã·ã£ããããŠã³ã«ãã£ãŠåŒãèµ·ããããã·ã¹ãã åäœã®ã€ãã³ããå€æŽãçºçããªãããã«ããããšãéåžžã«éèŠã§ããããªããžã®é©ãã
ãã®æç¹ã§ãKubernetes ã¯ãterminationGracePeriodSecond ãšåŒã°ããæå®ãããæéããŸã㯠SIGTERM ã·ã°ãã«ãåä¿¡ãããšãã«æ£åžžã«ã·ã£ããããŠã³ãããŸã§ã®æéåŸ æ©ããŠããã次ã®ã¢ã¯ã·ã§ã³ãå®è¡ããŸãã
ããã©ã«ãã§ã¯ããã®æé㯠30 ç§ã§ãã preStop ããã¯ããã³ SIGTERM ã·ã°ãã«ãšäžŠè¡ããŠå®è¡ãããããšã«æ³šæããããšãéèŠã§ãã Kubernetes 㯠preStop ããã¯ãš SIGTERM ãçµäºããã®ãåŸ
ã¡ãŸãããTerminationGracePeriod ãçµäºããåã«ã¢ããªã±ãŒã·ã§ã³ãçµäºããå ŽåãKubernetes ã¯ããã«æ¬¡ã®ã¹ãããã«é²ã¿ãŸãã ãããã£ãŠããã®æéã®å€ (ç§) ãããããæ£ããã·ã£ããããŠã³ããã®ã«å¿
èŠãªæé以äžã§ããããšã確èªãã30 ç§ãè¶
ããå Žåã¯ãæéã YAML ã§å¿
èŠãªå€ãŸã§å¢ãããŸãã äžããããäŸã§ã¯ããã㯠60 代ã§ãã
ãããŠæåŸã®ã¹ãããã¯ãterminationGracePeriod åŸãã³ã³ããããŸã å®è¡ãããŠããå Žåãã³ã³ãã㯠SIGKILL ã·ã°ãã«ãéä¿¡ããŠåŒ·å¶çã«åé€ãããŸãã ãã®æç¹ã§ãKubernetes ã¯ä»ã®ãã¹ãŠã®ããã ãªããžã§ã¯ããã¯ãªãŒã³ã¢ããããŸãã
Kubernetes ã¯ããŸããŸãªçç±ã§ããããçµäºãããããå®å®ãããµãŒãã¹ã確ä¿ããããã«ãã©ã®ãããªå Žåã§ãã¢ããªã±ãŒã·ã§ã³ãæ£åžžã«çµäºããããã«ããŠãã ããã
ããã€ãã®åºå ð
ãã€ãã宿æ³ããã ãããããšãããããŸãã ç§ãã¡ã®èšäºãæ°ã«å
¥ã£ãŠããŸãã? ãã£ãšèå³æ·±ãã³ã³ãã³ããèŠããã§ãã? 泚æããããå人ã«å§ãããããŠç§ãã¡ããµããŒãããŠãã ããã
ã¢ã ã¹ãã«ãã ã®ãšã¯ã€ãã¯ã¹ Tier IV ããŒã¿ã»ã³ã¿ãŒã§ã¯ Dell R730xd ã 2 åå®ã? ããã ã
åºæïŒ habr.com