
- TOP
- ã¿ã°äžèЧ
- Kubernetes
Kubernetes
ã€ãã³ã
該åœããã³ã³ãã³ããèŠã€ãããŸããã§ãã
ãã¬ãžã³
æè¡ããã°
æ¬çš¿ã¯ãKDDI æ ªåŒäŒç€Ÿ ã³ã¢æè¡çµ±æ¬æ¬éš æ
å ±ã·ã¹ãã æ¬éš DX ã·ã¹ãã 2 éš ããã³ã SRE ã°ã«ãŒã 西 ç·äžæ æ°ã«å¯çš¿ããã ããŸããã ã¯ããã« KDDI æ ªåŒäŒç€Ÿ ïŒä»¥äžãKDDIïŒã§ã¯ 2026 幎 7 æãéä¿¡äºæ¥ã®ã客ããŸåããµãŒãã¹ãæ¯ãã Amazon Elastic Kubernetes Service ïŒä»¥äžãEKSïŒã®ã¯ã©ã¹ã¿ãããããŒãžãããŒãã°ã«ãŒããã Amazon EKS Auto Mode ïŒä»¥äžãEKS Auto ModeïŒãžç§»è¡ããŸãããç§»è¡ã®ç®çã¯ãã¯ãŒã«ãŒããŒãã®æŽæ°ã«ãããéçšå·¥æ°ãåæžãããã®ã»ãã¥ãªãã£ãç¶ç¶çã«æ
ä¿ããããšã§ãããEKS Auto Mode ã®å°å
¥ã«éããŠã解決ãã¹ã課é¡ã 2 ã€ãããŸãããèµ·åæã® CPU éèŠãžã®å¯ŸåŠãšãããŒãã®å
¥ãæ¿ãæå»ã®å¶åŸ¡ã§ããåŸè
ã«ã€ããŠã¯ãEKS Auto Mode ã®ä»æ§ãæ¬ã·ã¹ãã ã®èŠä»¶ã«åããããããçè
ãã«ã¹ã¿ã ã³ã³ãããŒã©ãéçºããŸãããç§»è¡å®äºåŸãã¯ãŒã«ãŒããŒã㯠AWS ãæäŸããææ°ã® AMI ãžèªåã§å
¥ãæ¿ãããé
ããšã 21 æ¥ä»¥å
ã«ã¯å¿
ãæŽæ°ããããããè匱æ§ãžã®å¯Ÿå¿ã®ããã«èšç»ããŠããã¯ãŒã«ãŒããŒãã®æŽæ°äœæ¥ã¯ãªããªããéçšå·¥æ°ã®åæžã«ç¹ãããŸãããæ¬çš¿ã§ã¯ãæ¡çšãšå¯ŸåŠã®ããããã®å€æãæ¯ãã宿ž¬å€ãšããããŠãå°å
¥ããéçšãŸã§ã®çµç·¯ã玹ä»ããŸãã ãããžã§ã¯ãã®æŠèŠ KDDI ã¯éä¿¡äºæ¥ãåºç€ãšããªãããau PAYã»Ponta ãã€ã³ãã»ãšã³ã¿ã¡ã»ãšãã«ã®ãŒãªã©ããŠãŒã¶ãŒã®ç掻ã«å¯çããå€åœ©ãªãµãŒãã¹ãå±éããŠããŸããæ¬çš¿ã§æ±ãã®ã¯ããã®ãã¡éä¿¡äºæ¥ã®ã客ããŸåããµãŒãã¹ã§ããçè
㯠KDDI ã®å
補 SRE ããŒã ïŒç€Ÿå
ã§ã¯ãã¯ã©ãŠã SAïŒãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãïŒããšåŒãã§ããŸãïŒã«æå±ããAWS äžã®ã€ã³ãã©ã®èšèšã»æ§ç¯ã»éçšãæ
åœããŠããŸããéçºäœå¶ã®ç¹åŸŽãšããŠãã€ã³ãã©ãšã¢ããªã±ãŒã·ã§ã³ã§å€æŽã®ãªãŒãã¿ã€ã ãç°ãªãç¹ãæããããŸããAWS ã€ã³ãã©ã¯ KDDI ã® SRE ããŒã ãå
補ããŠãããèšèšå€æŽãçããµã€ã¯ã«ã§å®æœã§ããŸããã¢ããªã±ãŒã·ã§ã³ã¯çµç¹ããŸããã§éçºããŠãããããæ¹ä¿®ã«ã¯çžå¿ã®èª¿æŽæéãèŠããŸããããã§æ¬äºäŸã§ã¯äžè²«ããŠãã¢ããªã±ãŒã·ã§ã³éçºããŒã ã®è² è·ãã€ã³ãã©åŽã§åžåããæ¹éã§èšèšãé²ããŸããã æ¬çš¿ã§èšåããã¯ãŒã¯ããŒãã¯ãè€æ°ã® JavaïŒSpring BootïŒãã€ã¯ããµãŒãã¹çŸ€ã§æ§æãããŠããŸãããã©ããã¯ã«ã¯å£ç¯æ§ããããç¹å¿æã«ã¯å¹³åžžæã® 3 å以äžã®ãªã¯ãšã¹ããçºçããŸãã1 æ¥ã®äžã§ããæå€§ãšæå°ã§ 6 å以äžã®éãããããŸããã¢ããªã±ãŒã·ã§ã³ã皌åãã EKS ã¯ã©ã¹ã¿ã¯éå»ã« 7 åã®ããŒãžã§ã³ã¢ãããããŠããŸããããããã®äœæ¥ããåãæ»ãã容æã§ããããšãããæ¢åã¯ã©ã¹ã¿ãšã¯å¥ã«æ°ããã¯ã©ã¹ã¿ãæ§ç¯ããAmazon Route 53 ã®å éã¬ã³ãŒãã§åãæ¿ãã Blue/Green æ¹åŒã§å®æœããŠããŸãããçŽè¿ 2 åã®ããŒãžã§ã³ã¢ããäœæ¥ã®äžã§ãããŒã OS ã® Bottlerocket OS ãžã®å€æŽãšãEKS Auto Mode ãžã®ç§»è¡ã宿œããŸããã EKS Auto Mode ãæ¡çšããçç± è匱æ§å¯Ÿå¿ãã人æã®äœæ¥ããåãé¢ãããã£ã åŸæ¥ã®æ§æã§ã¯ãã¯ãŒã«ãŒããŒããžã®å€æŽãæå°éã®å·®åã«çããæ¹éãæ¡ã£ãŠããŸãããè匱æ§ãžã®å¯Ÿå¿ãå¿
èŠã«ãªããšã察象ã®ããã«ãŠã§ã¢ã«ã ãããããé©çšãããã®äœæ¥ã§ã¯ EKS ã®ããŒãžã§ã³ãã»ãã®ããã«ãŠã§ã¢ã¯å€æŽããŸããã§ããã倿Žç¯å²ãçµãããšã§æ£åžžæ§ã確å®ã«ç¢ºèªããæ§èœãæ©èœã®ãªã°ã¬ãã·ã§ã³ãé²ãããã§ããã¯ãŒã«ãŒããŒããå
¥ãæ¿ããéã¯ã¡ã³ããã³ã¹ç¶æ
ã«ããå¿
èŠããããããã¢ããªã±ãŒã·ã§ã³åŽãšèª¿æŽããããã§å€éã«äœæ¥ããŠããŸãããè匱æ§ã«ã¯éœåºŠå¯Ÿå¿ã§ããŠããäžæ¹ã§ããã®ãã³ã«èª¿æŽã»æ€èšŒã»å€éäœæ¥ã®å·¥æ°ãããã£ãŠããŸããããŸãè¿å¹Žã¯ã»ãã¥ãªãã£èŠä»¶ã峿 Œã«ãªããè匱æ§ãžã®ããè¿
éãªå¯Ÿå¿ãæ±ããããããã人æãåæãšããéçšã§ã¯è² æ
ãå¢ãç¶ããŸãã EKS Auto Mode ã§ã¯ã ããŒãã®æå¹æéãæé· 21 æ¥ã«èšå® ã§ããæå¹æéãè¿ããããŒã㯠AWS ã管çããææ°ã® AMI ãžèªåã§å
¥ãæ¿ãããŸãããŸããAWS ãããããé©çšããæ°ãã AMI ãå
¬éãããšãæå¹æéãåŸ
ããã«èªåã§ææ°ã® AMI ãžãšå
¥ãæ¿ãããŸãã人æãä»ããã«ããŒããæŽæ°ã§ãããã®ä»çµã¿ã¯é
åçã§ããã èªåæŽæ°ãåãå
¥ãããããšå€æããæ ¹æ 㯠2 ã€ãããŸãã ããŒãã®æŽæ°ãã¢ããªã±ãŒã·ã§ã³ã«åœ±é¿ãã«ããããšãEKS Auto Mode ã§ã¯ã«ã¹ã¿ã AMI ã OS ãéžã¹ããããŒãã«ç¬èªã®ãœãããŠã§ã¢ãèšå®ãæã¡èŸŒããŸãããæ¬ã·ã¹ãã ã¯ããšããšãã¢ããªã±ãŒã·ã§ã³ãå¿
èŠãšããæ©èœãããŒãã«äŸåãããŠããŸããã§ããããã®ãããããŒããå
¥ãæ¿ãã£ãŠãã¢ããªã±ãŒã·ã§ã³ãžã®åœ±é¿ã¯å°ãããšå€æããŸããã äºææ§ã®ç¢ºèªãèªåãã¡ã§è¡ãç¯å²ãæžãããšãããŒã OS ãš VPC CNI ã CoreDNS ãªã©ã®åºç€ã³ã³ããŒãã³ãã AWS ãäžäœã§ç®¡çã»æŽæ°ãããããçµã¿åããããšã®æŽæ°èšç»ãäºææ§ã®ç¢ºèªãèªåãã¡ã§æ±ããå¿
èŠãå°ãªããªããŸãã EKS Auto Mode ã«ã¯ããŒãã® Amazon EC2 ã®æéã«å ããŠç®¡çæéãããããŸããããã§ããè匱æ§ãžã®å¯Ÿå¿ã«ãããŠããå·¥æ°ãšæ¯èŒãããšãæ¬ã·ã¹ãã ã®ãããªã»ãã¥ãªãã£èŠä»¶ã®å³ãããšã³ã¿ãŒãã©ã€ãºã®çšéã§ã¯ãè¿œå æéãäžåã广ããããšå€æããŸããã OS ã®åãæ¿ããš EKS Auto Mode ã®å°å
¥ã 2 段éã«åããããšã§ããªã¹ã¯ãæããŠæ®µéçã«ç§»è¡ã§ããèŠéããç«ã£ã EKS Auto Mode ã®ããŒã OS 㯠Bottlerocket OS ã«åºå®ãããŠããŸããBottlerocket OS ã¯ã³ã³ããã®å®è¡ã«å¿
èŠãªæå°éã®æ§æãšã€ãã¥ãŒã¿ãã«ãªã«ãŒããã¡ã€ã«ã·ã¹ãã ã«ãããæ»æé¢ãå°ããããèšèšã® OS ã§ããåœæã®ã¯ã©ã¹ã¿ã¯ Amazon Linux 2 ã§åããŠããŸãããããã§ 2 段éã®èšç»ã«ããŸããã1 床ç®ã®ããŒãžã§ã³ã¢ããã§ãŸãããŒã OS ã Bottlerocket OS ãžåãæ¿ãã2 床ç®ã®ããŒãžã§ã³ã¢ããã§ EKS Auto Mode ãžç§»è¡ããé åºã§ãã1 åã®ç§»è¡ã§å€ããèŠçŽ ãæžãããåé¡ãèµ·ãããšãã«åå ãåãåããããããããã§ããããããŠãEKS ã¢ããªã³ãšããŠå°å
¥ã§ããã³ã³ããŒãã³ãã¯ã¢ããªã³ã«éçŽããæ¹éãæ¡ããŸããã ãã® 2 段éã®éã«ãã¢ããªã±ãŒã·ã§ã³åŽã§ã¯ Graceful Shutdown ãžã®å¯Ÿå¿ãé²ããŸãããEKS Auto Mode ã§ã¯ããŒãã人ã®ç«ã¡äŒããªãã«å
¥ãæ¿ãããŸããããŒãã®å
¥ãæ¿ãæã«ãªã¯ãšã¹ããéåããããªãããã«ã¯ãPod ã SIGTERM ãåããŠããåŠçäžã®ãªã¯ãšã¹ããå®äºããŠçµäºããåäœãå¿
èŠã§ãã ã¢ãŒããã¯ãã£æŠèŠ å³ 1: ã·ã¹ãã ã®ã¢ãŒããã¯ã㣠ã·ã¹ãã ãæ§æããäž»ãªãµãŒãã¹ã¯æ¬¡ã®ãšããã§ãã åœ¹å² ãµãŒãã¹ éçã³ã³ãã³ãã®é
ä¿¡ Amazon CloudFront â Amazon S3 API ã®çµè·¯ Amazon CloudFront â Amazon API Gateway â Application Load BalancerïŒALBïŒâ Pod ã³ã³ããã®å®è¡åºç€ Amazon EKS Auto ModeïŒãã©ã€ããŒããµããããã«é
çœ®ïŒ ããŒã¿ã¹ã㢠Amazon AuroraãAmazon ElastiCache for Valkey èªèšŒåºç€ Amazon Cognito ã¯ã©ã¹ã¿ã¯éåã§ãããŒãããã€ã³ã¿ãŒããããžã®çŽæ¥ã®çµè·¯ã¯ãããŸãããå€éšåãã®é信㯠Squid ã«ãããããã·ãçµç±ããAWS ã® API ãžã¯ VPC ãšã³ããã€ã³ããéããŠå°éããŸãã EKS Auto Mode ã«å
èµããã Karpenter ãããŒããèµ·åããåäœã§ãã NodePool ã¯ãçšéå¥ã« 3 ã€çšæããŸãããAPI ãèŒãã NodePool ã¯ã€ã³ã¹ã¿ã³ã¹ã¿ã€ãã m5.xlarge ã«åºå®ããŠããŸããã»ãã«ãããçšãšãç£èŠç³»ã®ã³ã³ããŒãã³ããèŒããã·ã¹ãã çšã® NodePool ããããŸããã€ã³ã¹ã¿ã³ã¹ã¿ã€ããåºå®ããçç±ã¯åŸè¿°ããŸãã ã¯ã©ã¹ã¿å
ã®ã³ã³ããŒãã³ãã¯ã管çäž»äœããšã«æ¬¡ã®ããã«åãããŸããEKS Auto Mode ãžã®ç§»è¡ã«ãããVPC CNI ã CoreDNS ãªã©ã®ã³ã³ããŒãã³ã㯠AWS ã®ç®¡çäžã«ç§»ããŸããã 管çäž»äœ ã³ã³ããŒãã³ã AWSïŒEKS Auto Mode ã®çµã¿èŸŒã¿æ©èœïŒ VPC CNIãCoreDNSãkube-proxyãEBS CSI DriverãããŒããã©ã³ãµãŒã®ç®¡çïŒAWS Load Balancer Controller çžåœã®æ©èœïŒ KDDIïŒEKS ã¢ããªã³ãšããŠå°å
¥ïŒ metrics-serverãkube-state-metricsãPrometheus Node ExporterãFluent Bit KDDIïŒHelm ãã£ãŒãã§å°å
¥ïŒ Prometheusãæ¬çš¿ã§ç޹ä»ããèªäœããŒã« å°å
¥æã®èª²é¡ãšå¯ŸåŠïŒèµ·åæã® CPU ã¹ããããªã³ã° 課é¡ã¯çµäºæã§ã¯ãªãèµ·åæã«ãã£ã ç§»è¡åã«æ³šåããŠããã®ã¯ãçµäºæã®å¯Ÿçã§ãããGraceful Shutdown ã«å¯Ÿå¿ããã°ããŒãã®å
¥ãæ¿ãã«äŒŽã圱é¿ã¯æããããã¯ãã§ãããæ€èšŒç°å¢ã«æ§ç¯ããæ°ããŒãžã§ã³ã®ã¯ã©ã¹ã¿ã§ã¯ãããŒãã®å
¥ãæ¿ããè² è·ã®é«ãæé垯ã«ãèµ·ããããåæã§ãPod ãå
¥ãæ¿ããªããè² è·è©Šéšã宿œããŸããããããšæ§ããŒãžã§ã³ã®ã¯ã©ã¹ã¿ãšåãæ§æã®ãŸãŸãäž»èŠãªãµãŒãã¹ã®ã¹ã«ãŒããããååè¿ããŸã§èœã¡ãããŒãã® CPU 䜿çšçã¯äžéã«åŒµãä»ãããŸãŸã«ãªããŸããïŒæ°å€ã¯åŸè¿°ã®è¡šã«ãŸãšããŠããŸãïŒãåå ã調ã¹ããšãåé¡ã¯èµ·åæã«ãããŸããããã㯠EKS Auto Mode åºæã®æ§èœå£åã§ã¯ãããŸãããåŸæ¥ã¯äººæã§åžåããŠãã Pod é
眮ã®åãããç¡äººã®ããŒãæŽæ°ãåæã«ããããšã§å°å
¥ã®éå£ãšããŠè¡šé¢åãããã®ã§ãã API ã® Pod 㯠CPU ã® request ã 200mãlimit ã 2000m ã«èšå®ããŠããŸããã10 åã®ãªãŒããŒã³ãããã§ããKubernetes ã®ã¹ã±ãžã¥ãŒã©ã¯ãªãœãŒã¹ã«ã€ããŠã¯ request ã®å€ãèŠãŠ Pod ãé
眮ããŸãããã®ãããèµ·åæã®å®éã® CPU éèŠãåèšãããšããŒãã®å®¹éã倧ããè¶
ããã»ã©ã®æ°ã® Pod ãã1 å°ã«èŒãããšããããŸããJava ã¢ããªã±ãŒã·ã§ã³ã¯èµ·åçŽåŸãJIT ã³ã³ãã€ã«ãšã¯ã©ã¹ããŒãã§ limit è¿ããŸã§ CPU ã䜿ããŸããè€æ°ã® Pod ãåæã«èµ·åãããšéèŠã容éãè¶
ããlimit ã«éããã³ã³ããã§ CPU ã¹ããããªã³ã°ãçºçããåå±
ãã Pod ã®éã§ CPU ã®ç«¶åãéãªããŸããèµ·åãé
ããã ãã§ãªããåãããŒãã§çšŒåäžã® Pod ãŸã§ CPU ã奪ãããéåžžã®ãªã¯ãšã¹ããã¿ã€ã ã¢ãŠãããŸãã åãäºè±¡ã¯æ§ããŒãžã§ã³ã®ã¯ã©ã¹ã¿ã§ãçºçããŠããŸãããçºçæ¡ä»¶ã¯åãããã€æã§ãæ§ããŒãžã§ã³ã®è² è·è©Šéšãšåãã§ããEKS Auto Mode ãžã®ç§»è¡æã«å€åããŠããã®ã¯ã人ãç«ã¡äŒããã©ããã ãã§ããã ç§»è¡åïŒãããŒãžãããŒãã°ã«ãŒãïŒ ç§»è¡åŸïŒEKS Auto ModeïŒ Pod ãå
¥ãæ¿ãã奿© åãããã€ïŒã¡ã³ããã³ã¹ç¶æ
ã«ããŠäººãç«ã¡äŒãåçšäœæ¥ïŒ ããŒãã®èªåæŽæ°ïŒæå»ãåããªããç¡åæ¢ïŒ é
眮ãåã£ããšã è§£æ¶ãããŸã§åãããã€ãããçŽã ããçŽã人ãããªã èµ·åçŽåŸã® CPU ããŒã¹ã ã¡ã³ããã³ã¹ç¶æ
ãè§£é€ããåã«åãŸã ãšã³ããŠãŒã¶ãŒã®ãªã¯ãšã¹ããåããªããçºçãã ãšã³ããŠãŒã¶ãŒãžã®åœ±é¿ ã¡ã³ããã³ã¹ç¶æ
ã®ãããé
眮ã®åããèµ·åçŽåŸã® CPU ããŒã¹ãã®åœ±é¿ã¯åã°ãªã åãããŒãã®ã»ãã®ãŠãŒã¶ãŒãŸã§ã¿ã€ã ã¢ãŠãããå¯èœæ§ æ¬ã·ã¹ãã ã§ã¯ãPod ã®é
眮ãèªåã§é©æ£åããä»çµã¿ããªããã° EKS Auto Mode ãå°å
¥ã§ããŸããã ãããæåã®èª²é¡ã§ããã 察åŠïŒæ¢åã®å°æ°ã®ãŸãŸ Pod ã®é
眮ã驿£åãã å³ 2: Pod é
眮ã®å¯Ÿçåãšå¯ŸçåŸ å¯ŸçãšããŠãæ€èšãããã®ã®æ¡çšããªãã£ãéžæè¢ãšããã®çç±ã¯æ¬¡ã®ãšããã§ãã éžæè¢ æ¡çšããªãã£ãçç± CPU ã® request ã limit ãšåãå€ã«ãã ãªãŒããŒã³ãããã¯è§£æ¶ããããåçšç°å¢ã§å¿
èŠãªããŒãã®å°æ°ã倧å¹
ã«å¢ãã PodDisruptionBudget Pod ã®éé¿ã®çµè·¯ã«ããå¹ãããèµ·åæã®éäžã¯é²ããªã NodePool ã®æéãããã 1 ããŒãã«åå±
ãã Pod ã®ãŸãšãŸãã¯åè§£ã§ããªã æçµçã«ãããŒãã®å°æ°ãå¢ããã Pod ã®é
眮ã驿£åããæ¹éãæ¡çšããŸãããå
·äœçã«ã¯ãé
眮ã®å¶åŸ¡ãäžå¿ã«æ¬¡ã®å¯ŸåŠãçµã¿åãããŸããã å¯ŸåŠ å
容 topologySpreadConstraints ããŒãéã®åæ£ã DoNotSchedule ãAZ éã®åæ£ã ScheduleAnyway ã§å¶çŽ podAntiAffinity CPU æ¶è²»ã®å€§ãããµãŒãã¹ A ãšãµãŒãã¹ B ã® 1 ãã¢ã«éå®ããåãããŒãã«åå±
ãããªã ã€ã³ã¹ã¿ã³ã¹ã¿ã€ãã®åºå® m5.xlarge ã«åºå®ã倧ããã€ã³ã¹ã¿ã³ã¹ã蚱容ãããšãããŒãã®å®¹éã§åå±
æ°ãæããèšèšãæãç«ããªã ALB ã® slow start èµ·åçŽåŸã®ã¿ãŒã²ãããžã®ãã©ããã¯ã段éçã«å¢ããããªã¯ãšã¹ãã®éäžãåé¿ ããŒãé忣ã®å¶çŽã«ã¯ãæ¬æ§æã§ã¯ matchLabelKeys: pod-template-hash ãå¿
èŠã§ãããããããªããš Rolling Update ã§ã®æŽæ°æã«æ°ãã Pod ãæ§ Pod ã®èŒã£ãŠããããŒããåé¿ãç¶ãã maxSurge: 1 ã®æ§æã§ã¯çœ®ãå Žæããªããªã£ãŠ Pending ã®ãŸãŸæ¢ãŸããŸãã è² è·è©Šéšã§ã®å¹ææ€èšŒ 广ã¯ãæ€èšŒç°å¢ïŒm5.xlargeïŒã§ã®è² è·è©Šéšã§ç¢ºãããŸããããã®æ€èšŒã§ã¯åå ã確èªãããããCPU æ¶è²»ã®å€§ãã 3 ãµãŒãã¹ã podAntiAffinity ã§ 1 ããŒãããã 1 Pod ã«éé¢ãããã®åããŒããå¢ãããŠããŸãã衚ã«ã¯ããã®ãã¡åçšç°å¢ã§çžäºæä»ãé©çšãããµãŒãã¹ A ãšãµãŒãã¹ B ã®å€ã瀺ããŸãã ææš ç§»è¡åïŒPod æåå
¥ãæ¿ã ç§»è¡åŸïŒPod å
¥ãæ¿ãæã»å¯Ÿçå ç§»è¡åŸïŒPod å
¥ãæ¿ãæã»å¯ŸçåŸïŒæ€èšŒçšã®é颿§æïŒ ãµãŒãã¹ A ã® RPS 398 216 410 ãµãŒãã¹ B ã® RPS 167 92 179 ããŒãã® CPU 䜿çšçïŒæå€§ïŒ 85% çŽ 100% 72% ã¹ã«ãŒããããš CPU 䜿çšçãç§»è¡åãšåãæ°Žæºã«æ»ããåå ã Pod ã®é
眮ã«ããããšã確èªã§ããŸãããåçšç°å¢ã§ã¯å¿
èŠå°æ°ã®å¢å ãæãããããéé¢ã®å¯Ÿè±¡ã 1 ãã¢ã«çµã£ãŠé©çšããŠããŸãã ãã ãããªãŒããŒã³ãããã®ç¶æ
ãã®ãã®ã¯å€ãã£ãŠããªããããCPU ã¹ããããªã³ã°ã®çºçé »åºŠãäžãã£ã段éã§ãããªãŒããŒã³ãããèªäœãåé¡ãªã®ã§ã¯ãªããèµ·åçŽåŸã® CPU éèŠãåãŸãåã« Pod ããªã¯ãšã¹ããåãä»ããããšãåé¡ã§ããæä¹
çãªå¯Ÿçã¯ãèµ·åçŽåŸã® CPU éèŠãåãŸã£ãŠãã Pod ã healthy ã«ããããšã ãšèããŠããŸãããã®å¯Ÿå¿ã«ã€ããŠã¯ãä»åŸã®å±æãã§è§ŠããŸãã å°å
¥ã®å¹æ EKS Auto Mode ã®å°å
¥ã«ããäžçªã®å¹æã¯ãããŒãã®ç¶ç¶çãªæŽæ°ãéçšã®äžéšã«ãªã£ãããšã§ããããŒãã¯æé· 21 æ¥ã®åšæã§ãAWS ãæäŸããæŽæ°æžã¿ã® AMI ãžå
¥ãæ¿ãããŸããAWS ã AMI ãæŽæ°ãããšãKarpenter ãèšå®ãšã®å·®ç°ïŒDriftïŒãæ€ç¥ããŠããŒããå
¥ãæ¿ããŸãããã®å
¥ãæ¿ãã¯ãDisruption BudgetïŒäžæã®å°æ°ãæé垯ãå¶éããèšå®ïŒã§èš±å¯ããã¡ã³ããã³ã¹ãŠã£ã³ããŠå
ã§è¡ãããŸããåçšå°å
¥ä»¥éã¯ãAMI ã®æŽæ°ã®ãã³ã«å
šããŒãããã®æé垯ã«å
¥ãæ¿ãã£ãŠããŸããAMI ã®æŽæ°ããªããŸãŸæå¹æéãè¿ã¥ããããŒãã¯ãåŸè¿°ãã node-rotation-controller ãåãã¡ã³ããã³ã¹ãŠã£ã³ããŠã§å
¥ãæ¿ããŸããã¯ãŒã«ãŒããŒãåŽã®è匱æ§ãžã®å¯Ÿå¿ãæ±ããããŠãããããŒã OS ã¯èªåã§æŽæ°ããããããååãšããŠåå¥ã®äœæ¥ã¯äžèŠããšåçã§ããããã«ãªããæŽæ°ã®èšç»ãšäœæ¥ã«å
ãŠãŠããå·¥æ°ããªããªããŸããããŸããVPC CNI ã CoreDNS ãªã©ã®åºç€ã³ã³ããŒãã³ãã®æŽæ°ã AWS ã«ä»»ããããããã«ãªã£ãããšãã¡ãªããã®ã²ãšã€ã§ãã ç§»è¡ååŸã®éçšãæ¯ã¹ããšæ¬¡ã®ããã«ãªããŸããåŸåã® 2 ç¹ã¯ EKS Auto Mode ãã®ãã®ã®å¹æã§ã¯ãªããåè¿°ã® Pod é
眮ã®å¯ŸåŠãšãåŸè¿°ãã node-rotation-controller ã«ãããã®ã§ãã é
ç® ç§»è¡åïŒãããŒãžãããŒãã°ã«ãŒãïŒ ç§»è¡åŸïŒEKS Auto ModeïŒ ããŒãã®æŽæ° è匱æ§å¯Ÿå¿ã®ãã³ã«äººãèšç»ããã¡ã³ããã³ã¹ç¶æ
ã«ããŠå€éã«äœæ¥ æé· 21 æ¥ã®åšæã§èªåã§å
¥ãæ¿ããé± 1 åã®ã¡ã³ããã³ã¹ãŠã£ã³ããŠã§ç¡åæ¢ ã¯ãŒã«ãŒããŒãã®è匱æ§ãžã®å¯Ÿå¿ äŸé Œã®ãã³ã«åœ±é¿ã確èªãã察象ã®ããã«ãŠã§ã¢ã ããæŽæ° ãããŒã OS ã¯èªåã§æŽæ°ããããããååãšããŠåå¥ã®äœæ¥ã¯äžèŠããšåç åºç€ã³ã³ããŒãã³ã VPC CNIãCoreDNSãEBS CSI Driver ãªã©ã®ããŒãžã§ã³ã®æŽæ°ãèªåãã¡ã§ç®¡ç AWS ã管ç Pod ã®é
眮 åãããã€æã«åããåºãã人ãããçŽã topologySpreadConstraints ãš podAntiAffinity ã§èªåçã«åæ£ ããŒãã®å
¥ãæ¿ãæå» 人ãäœæ¥ããæé垯 ã¡ã³ããã³ã¹ãŠã£ã³ããŠã«ãŠå®æœïŒEC2 ã®äžæã€ãã³ããªã©ãé€ãïŒ å°å
¥åŸã®éçšèª²é¡ïŒããŒãã®å
¥ãæ¿ãæå»ãå¶åŸ¡ãã å°å
¥åŸã«ããããŒããå
¥ãæ¿ãããã³ã«çŽé¢ãã課é¡ããããŸããããã®èª²é¡ã«å¯ŸããŠçè
ãéçºããã®ããåŸè¿°ãã node-rotation-controller ã§ãã 倱å¹ã«ããå
¥ãæ¿ãã¯ãæé垯ãéžã¹ãªã EKS Auto Mode ã®ããŒãã«ã¯ãOSS ã® Karpenter ã«ã¯ãªãäžéããããŸããæå¹æéïŒ expireAfter ïŒãšã倱å¹åŸã« Pod ã®éé¿ãåŸ
ã€ç¶äºïŒ terminationGracePeriod ïŒã®åèšã 21 æ¥ä»¥å
ã§ãªããã°ãªãããããŒãã¯å¿
ã倱å¹ããŸããKarpenter ã¯ããŒãã®äžæã graceful ãš forceful ã«åããŠããŸããå°æ°ãæé垯ãå¶éãã Disruption Budget ãå¹ãã®ã¯ãgraceful ãªäžæã ãã§ãã äžæã®çš®é¡ Disruption Budget 該åœããäžæ graceful å¹ãïŒå°æ°ã»æé垯ãå¶éã§ããïŒ DriftãUnderutilizedãEmpty forceful å¹ããªãïŒæ¡ä»¶ãæç«ãããš Disruption Budget ãåŸ
ããã«éå§ïŒ ExpirationãInterruption å®éãAMI ã®æŽæ°ã«äŒŽã Drift ã«ããå
¥ãæ¿ãã¯ãDisruption Budget ã®ãšããã¡ã³ããã³ã¹ãŠã£ã³ããŠã«åãŸã£ãŠããŸãããäžæ¹ã倱å¹ïŒExpirationïŒã¯ forceful ã«åé¡ãããŠãããããæé垯ãå¶éã§ããŸãããåè¿°ã®ãšãããæ¬ã·ã¹ãã ã§ã¯ Pod ã®èµ·åæã« CPU ã®éèŠãéäžããŸããã¢ã¯ã»ã¹ã®å€ãæ¥äžã«ããŒããå
¥ãæ¿ãããšéåžžã®ãªã¯ãšã¹ããã¿ã€ã ã¢ãŠããããããå
¥ãæ¿ãã®æå»ãå¶åŸ¡ããææ®µãå¿
èŠã§ããã 察åŠïŒå€±å¹ã®åã«ãã¡ã³ããã³ã¹ãŠã£ã³ããŠã®äžã§å
åãããŠçœ®æãã å³ 3: æšæºã®å€±å¹ãš node-rotation-controller ã«ãã眮æã®æ¯èŒ ããŒãã倱å¹ãè¿ããåã«ãã¡ã³ããã³ã¹ãŠã£ã³ããŠã®äžã§å
åãããŠçœ®æããã«ã¹ã¿ã ã³ã³ãããŒã©ãéçºããŸãããããã node-rotation-controller ã§ããåããŒãã«ã€ããŠãæå¹æéãŸã§ã«ã¡ã³ããã³ã¹ãŠã£ã³ããŠãããšäœåå·¡ã£ãŠããããæ°ããæ®ãã®åæ°ãæå®å€ãäžåã£ãããŒããæ¬¡ã®ãŠã£ã³ããŠã§çœ®æããŸãã眮æã¯æ°ããããŒããå
ã«çšæããŠããå€ãããŒããåé€ããæ¹åŒïŒmake-before-breakïŒã§ã次ã®é ã«é²ã¿ãŸãã 眮æã«å¿
èŠãªå®¹éãèŠæ±ãã placeholder Pod ãäœæãã placeholder Pod ã Pending ã«ãªããKarpenter ãæ°ããããŒããèµ·åãã æ°ããããŒããå©çšå¯èœã«ãªã£ãããšã確èªãã æ§ããŒãã drain ã㊠Pod ãç§»ããæ§ããŒããåé€ãã ãã®æ¹åŒã¯ãKarpenter ã Pending ã® Pod ã«å¿ããŠããŒããèµ·åãã NodePool ãåæãšããŠããŸãã眮æäžã¯äžæçã«ããŒããå¢ãããããNodePool ã® limits ã EC2 ã®ã¯ã©ãŒã¿ã«ã¯äœè£ãæãããŠããŸãã åçšç°å¢ã®èšå®ã¯æ¬¡ã®ãšããã§ããã³ã³ãããŒã©ã®ã¡ã³ããã³ã¹ãŠã£ã³ããŠãš Karpenter åŽã® Disruption Budget ã¯ãåãæéåž¯ã«æããŠããŸãã èšå® å€ æå³ expireAfter 500 æé ããŒãã®æå¹æé terminationGracePeriod 1 æé 倱å¹åŸã« Pod ã®éé¿ãåŸ
ã€ç¶äºãåèš 501 æéïŒ20 æ¥ãš 21 æéïŒã§ãäžéã® 21 æ¥ã«å¯Ÿã㊠3 æéã®äœè£ ã³ã³ãããŒã©ã®ã¡ã³ããã³ã¹ãŠã£ã³ã㊠æ¯é± 1 å 倱å¹åã®çœ®æãå®è¡ããæé垯 Disruption BudgetïŒãŠã£ã³ããŠå
ïŒ åæã«æå€§ 1 å° graceful ãªäžæã®åæå®è¡æ°ãæå€§ 1 å°ã«å¶é Disruption BudgetïŒãŠã£ã³ããŠå€ïŒ 0 å° ã¡ã³ããã³ã¹ãŠã£ã³ããŠå€ã¯èšå®ãšã®å·®ç°ïŒDriftïŒãšäœäœ¿çšçïŒUnderutilizedïŒã«ããäžæãçŠæ¢ã空ããŒãã®åé€ïŒEmptyïŒã¯åžžæãåæã«æå€§ 1 å°ãŸã§èš±å¯ ãã€ã©ã®ããŒããå
¥ãæ¿ããããäºåã«ææ¡ã§ããããã眮æäºå®ãã·ãã¥ã¬ãŒã·ã§ã³ããããŒã«ãããããŠéçºããŸããã åçšå°å
¥åŸã® 1 ãæã¯ AMI ã®æŽæ°ãç¶ããDrift ã«ããå
¥ãæ¿ãã§æå¹æéãæŽæ°ãããŠãããããã³ã³ãããŒã©ã眮æãå®è¡ããããšã¯ãããŸããã§ããããã®åŸãAMI ã®æŽæ°ãéçµ¶ããæéã«åããŠã³ã³ãããŒã©ã眮æãå®è¡ããã¡ã³ããã³ã¹ãŠã£ã³ããŠå
ã« API ããŒãå
šå°ã®çœ®æãå®äºããŸãããAMI ã®æŽæ°ãåéããŠããã¯ãDrift ã«ããå
¥ãæ¿ãã«æ»ã£ãŠããŸãã倱å¹ãš Drift ã«ããããŒãã®å
¥ãæ¿ãã«ã€ããŠã¯ãã¡ã³ããã³ã¹ãŠã£ã³ããŠã«åãŸãç¶æ
ã«ãªã£ãŠããŸãã ä»åŸã®å±æ ãŸãããã°ã®ä¿å
šãé²ããŸããç§»è¡æç¹ã® EKS Auto Mode ã§ã¯ kubelet ã®ãã°ããŒããŒã·ã§ã³èšå®ã倿Žã§ããã1 ã³ã³ãããããåèš 50 MiB ãŸã§ãããã°ãä¿æãããŸããã§ããããã®ããããã°ã®åºåéãå€ãç°å¢ã§ã¯ãFluent Bit ã転éããåã«ãã°ãç Žæ£ãããæãããããŸãããã®å¶çŽã«åããŠãçè
ã¯ãã°ãã¡ã€ã«ãããŒããªã³ã¯ã§éé¿ãã転éã®å®äºã確èªããŠããåé€ãã pod-log-preserver ãéçºããŸãããçŸåšã¯éå®çãªç¯å²ã§æ€èšŒããŠããŸãããŸããæ¬ãããžã§ã¯ãå®äºåŸã® 2026 幎 10 æã®ã¢ããããŒãã§ãNodeClass ã® advancedCompute.kubelet.logging ããããã°ããŒããŒã·ã§ã³ã®ãµã€ãºãšäžä»£æ°ã倿Žã§ããããã«ãªããŸããããã¡ããããããŠå°å
¥ãæ€èšããŠãããŸãã Pod ã®ãªãŒãã¹ã±ãŒã«ã®å°å
¥ãšãããã«ãããããªãœãŒã¹ã®æé©åã«ãåãçµã¿ãŸããKarpenter ã¯ãPod ã®ãªãœãŒã¹èŠæ±ã«å¿ããŠããŒãã®å°æ°ãèªåã§æ±ºããŸããPod ã®ãªãŒãã¹ã±ãŒã«ãå°å
¥ããã°ã墿žãããã©ããã¯ã«ããŒãã®å°æ°ã远éãããããŸããKarpenter ã®æ©èœã掻ãããæ¬¡ã®é åã§ããããããŠãèµ·åçŽåŸã® CPU éèŠãåãŸã£ãŠãã Pod ã healthy ã«ãã察å¿ããã¢ããªã±ãŒã·ã§ã³åŽãšé²ããŸãã node-rotation-controller ã¯ãæ¬ã·ã¹ãã ã®ã¡ã³ããã³ã¹ãŠã£ã³ããŠã®èŠä»¶ã EKS Auto Mode ã®çŸæç¹ã®æ©èœã«åãããŠè£ããã®ã§ãã倱å¹ã®æéåž¯ãæšæºæ©èœã§å¶åŸ¡ã§ããããã«ãªãã°ãæ§æãèŠçŽãäºå®ã§ãã ãŸãšã EKS Auto Mode ã§ã¯ã人ãç«ã¡äŒãããšãåæã«ããéçšã¯æãç«ã¡ãŸãããããŒãã¯ç¡äººã®æé垯ã«å
¥ãæ¿ãããPod ã®é
眮ã®ããçŽãããå
¥ãæ¿ãæå»ã®éžæããäººã®æã«ã¯æ»ã£ãŠããŸãããã ãããããããããèªåã§è¡ãä»çµã¿ãèªåãã¡ã§çšæããå¿
èŠããããŸãããGraceful Shutdown ãžã®å¯Ÿå¿ã¯ã¢ããªã±ãŒã·ã§ã³åŽãšé²ããPod ã®é
眮ãšå
¥ãæ¿ãæå»ã®å¶åŸ¡ã¯ã€ã³ãã©åŽã§è£ããŸããããã®çµæãšããŠåŸãããã®ããããŒãã®ç¶ç¶çãªèªåæŽæ°ã«ããéçšå·¥æ°ã®åæžãšãã¯ãŒã«ãŒããŒãã®ã»ãã¥ãªãã£ã®æ
ä¿ã§ããEKS Auto Mode ã®å°å
¥ãæ€èšãããŠããæ¹ããšãã«ãšã³ã¿ãŒãã©ã€ãºã§ã¢ããªã±ãŒã·ã§ã³ãšã€ã³ãã©ãè€æ°ã®ããŒã ã§åæ
ããŠéçºãããŠããæ¹ã®åèã«ãªãã°å¹žãã§ãã èè
ã«ã€ã㊠西 ç·äžæ KDDI æ ªåŒäŒç€Ÿ ã³ã¢æè¡çµ±æ¬æ¬éš æ
å ±ã·ã¹ãã æ¬éš DX ã·ã¹ãã 2 éš ããã³ã SRE ã°ã«ãŒã 2024 幎㫠KDDI ã«å
¥ç€Ÿããéä¿¡äºæ¥ã®ã客ããŸåããµãŒãã¹ãæ¯ãã AWS äžã®ã€ã³ãã©ã®èšèšã»æ§ç¯ã»éçšã«åŸäºããŠããŸããæ¬äºäŸã§ã¯ EKS Auto Mode ãžã®ç§»è¡ãšãnode-rotation-controller ããã³ pod-log-preserver ã®éçºãæ
åœããŸãããèè
ã®åçã¯ãAWS re:Invent 2025 åå æã«ãç±³åœã©ã¹ãã¬ã¹ã§æ®åœ±ããŸããã
ãã®èšäºã¯ Introducing advanced Kubernetes control plane configuration in Amazon EKS (èšäºå
¬éæ¥: 2026 幎 8 æ 12 æ¥) ã翻蚳ãããã®ã§ãã å€§èŠæš¡ãª Amazon Elastic Kubernetes Service (Amazon EKS) ã¯ã©ã¹ã¿ãŒãéçšããã客æ§ã¯ããªãœãŒã¹ã®äœ¿çšçãé«ããŠã³ã³ãã¥ãŒãã£ã³ã°ã³ã¹ããäžããããã«ãPod ã®é
眮æŠç¥ãæé©åããããšèããŠããŸããå
¥ãæ¿ããã®æ¿ããããããç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ãšç¶ç¶çããªããªãŒ (CI/CD)ãAI ãšæ©æ¢°åŠç¿ (AI/ML) ã®ã¯ãŒã¯ããŒããå®è¡ããããŒã ã¯ãetcd ã®ã¹ãã¬ãŒãžã®éŒè¿«ãæããããã«ãã€ãã³ãã®ä¿ææéãªã©ã®ãªãœãŒã¹ã®ã©ã€ããµã€ã¯ã«ç®¡çã®èšå®ãã«ã¹ã¿ãã€ãºããããšèããŠããŸãããŸããã»ã«ããããŒãžãã® Kubernetes ããç§»è¡ããã客æ§ã¯ãé·å¹Žèª¿æŽããŠããã¹ã±ãžã¥ãŒã©ã®èšå®ãåŒãç¶ããããšèããŠããŸãããããŸã§ãããããããŒãºã®å€ãã«å¿ããã«ã¯ç¬èªã®ä»çµã¿ãæ§ç¯ããŠç¶æããå¿
èŠããããéçšãªãŒããŒããããšã¡ã³ããã³ã¹ã®è² æ
ãå¢ããŠããŸããã2026 幎 8 æã«ãAmazon EKS ã¯é«åºŠãª Kubernetes ã³ã³ãããŒã«ãã¬ãŒã³èšå®ã®æäŸãéå§ããŸãããAPI ãµãŒããŒãã¹ã±ãžã¥ãŒã©ãã³ã³ãããŒã©ãŒãããŒãžã£ãŒã®ãã©ã¡ãŒã¿ããAmazon EKS ã§çŽæ¥èšå®ã§ããããã«ãªããŸãããAmazon EKS ã®å¯çšæ§ãšããã©ãŒãã³ã¹ç¹æ§ã¯ããããŸã§ãšå€ãããŸããã ãã®èšäºã§ã¯ããã®æ©èœã®æŠèŠãšãµããŒããããŠãããã©ã¡ãŒã¿ã説æããããã§ã2 ã€ã®ãŠã©ãŒã¯ã¹ã«ãŒã§å®éã«è©ŠããŸãããŸãã MostAllocated ã¹ã³ã¢ãªã³ã°æŠç¥ã䜿ã£ãŠãããã©ã«ãã®åæ£é
眮ããããªãœãŒã¹ã®äœ¿çšçãåªå
ããããã« Pod ã®é
眮æŠç¥ãèšå®ããŸããæ¬¡ã«ããããã°ã®ãããããšã¹ãã¬ãŒãžã®å¹çã®ãã©ã³ã¹ãåãããã«ãã€ãã³ãã®ä¿ææéãèšå®ããŸãã èšå®ã§ããé
ç® ã¹ã±ãžã¥ãŒã©ã®ã«ã¹ã¿ãã€ãºã§ã¯ãPod ã®é
眮æŠç¥ãèšå®ããŠãPod ã®ã¹ã±ãžã¥ãŒãªã³ã°ã§ããŒããã©ã®ããã«ã¹ã³ã¢ãªã³ã°ããããå¶åŸ¡ã§ããŸããããã©ã«ãã§ã¯ãKubernetes ã¹ã±ãžã¥ãŒã©ã¯ LeastAllocated ã¹ã³ã¢ãªã³ã°æŠç¥ã䜿ããŸãããã®æŠç¥ã¯ãå¯çšæ§ãéèŠããŠããªãœãŒã¹ã®å²ãåœãŠãå°ãªãããŒããåªå
ããŸãã MostAllocated ã¹ã³ã¢ãªã³ã°æŠç¥ã¯ããã§ã«å²ãåœãŠãå€ãããŒããåªå
ãããªãœãŒã¹ã®äœ¿çšçãæé©åããŸãã MostAllocated æŠç¥ã§ã¯ã䜿çšçããã§ã«é«ãããŒãã« Pod ãè©°ã蟌ãã®ã§ãåãã¯ãŒã¯ããŒããããå°ãªãããŒãã§å®è¡ã§ããŸãããã®çµæãã³ã³ãã¥ãŒãã£ã³ã°ã³ã¹ããäžãããã¯ã©ã¹ã¿ãŒå
ã§äžéšãã䜿ãããŠããªãã€ã³ã¹ã¿ã³ã¹ãæžããŸãã ã³ã³ãããŒã©ãŒãããŒãžã£ãŒã®èšå®ã§ã¯ã Horizontal Pod Autoscaler (HPA) ãã¹ã±ãŒãªã³ã°ã倿ããé »åºŠãå¶åŸ¡ã§ããŸããåæééãçããããšãHPA ã³ã³ãããŒã©ãŒãã¡ããªã¯ã¹ãè©äŸ¡ããŠå¯Ÿå¿ããé »åºŠãäžããã®ã§ãè² è·ãå¢ããŠããã¯ãŒã¯ããŒããã¹ã±ãŒã«ã¢ãŠããããŸã§ã®æéãçããªããŸãã Amazon EKS Provisioned Control Plane ã®ã¯ã©ã¹ã¿ãŒã§ã¯ãæè¿ã®æ¹åã§ HPA ã®åæã®åæå®è¡æ°ã Kubernetes ã®ããã©ã«ãå€ã®æå€§ 40 åã«åŒãäžããããŠã㊠( çºè¡š )ãåæééã®èšå®ãšçµã¿åãããŠäœ¿ããŸããåæå®è¡æ°ã®åŒãäžããšåæééã®ççž®ã«ãã£ãŠãHPA ã³ã³ãããŒã©ãŒã¯ããå€ãã®ã¹ã±ãŒãªã³ã°ã€ãã³ãã䞊åã«åŠçããã¯ãŒã¯ããŒãã®éèŠã®å€åã«ãã°ãã察å¿ã§ããŸãããã®çµæãPod ã®ãªãŒãã¹ã±ãŒãªã³ã°ãéããªããéèŠã®å€åãžã®å¿çæ§ãé«ãŸããŸãã API ãµãŒããŒã§ã¯ã ã€ãã³ãã®ä¿ææé ãèšå®ããŠããããã°ã®ãããããšã¹ãã¬ãŒãžã®å¹çã®ãã©ã³ã¹ãåããŸããããããã€ãã©ã€ã³ãCI/CD ã©ã³ããŒãAI/ML ãžã§ããªã©ãPod ã®å
¥ãæ¿ãããæ¿ããã¯ã©ã¹ã¿ãŒã§ã¯ã倧éã® Kubernetes ã€ãã³ããçæãããŸãããããã®ã€ãã³ã㯠etcd ã®é åãæ¶è²»ããã¯ã©ã¹ã¿ãŒã®åäœã«å¿
èŠãªãªããžã§ã¯ããšé åã奪ãåããŸããä¿ææéãçããããšãããããçæéãã䜿ããªã蚺æããŒã¿ãæ©ãæ¶å»ãããã®ã§ãetcd ã®ããŒã¿éãæããlist ãš watch ã®ãªã¯ãšã¹ããéãã§ããŸããäžæ¹ãä¿ææéãé·ããããšãããŒã ããã©ãã«ã·ã¥ãŒãã£ã³ã°ã«äœ¿ããå±¥æŽãå¢ããŸãããŸãã NodePort ã¿ã€ãã® Service ã«å²ãåœãŠãããŒãçªå·ã®ç¯å² ã倿ŽããŠãããŒãã®å²ãåœãŠãçµç¹ã®ãããã¯ãŒã¯ãšãã¡ã€ã¢ãŠã©ãŒã«ã®ããªã·ãŒã«åãããããNodePort ã¿ã€ãã® Service ã倿°å®è¡ããã¯ã©ã¹ã¿ãŒã§ç¯å²ãããã©ã«ãããåºãããããããšãã§ããŸãããã®èšå®ã¯ç§»è¡ã®éã«åœ¹ç«ã¡ãŸããã¬ã¬ã·ãŒã¢ããªã±ãŒã·ã§ã³ãšãã®åŒã³åºãå
ã®ã¯ã©ã€ã¢ã³ãã¯ãç¹å®ã®åºå®ããŒãã§ãµãŒãã¹ãæäŸãããããšãåæã«ããŠããããšããããããŸãããããã®ããŒãã Kubernetes ã®ããã©ã«ãã®ç¯å²å€ã«ããå Žåãéåžžã¯ã¢ããªã±ãŒã·ã§ã³ã倿Žããããã¢ããªã±ãŒã·ã§ã³ã®åã«å€éšã®ãããã·ãç«ãŠãå¿
èŠããããŸããç¯å²ãã¢ããªã±ãŒã·ã§ã³ããã§ã«äœ¿ã£ãŠããããŒãã«åãããã°ããã®äœæ¥ãäžèŠã«ãªããã¢ããªã±ãŒã·ã§ã³ãæžãçŽããããä¿å®ãå¿
èŠãªãããã¯ãŒã¯ã³ã³ããŒãã³ãã远å ãããããã«ãã¯ãŒã¯ããŒãã Amazon EKS ã«ç§»è¡ã§ããŸãã æäŸéå§æã«ãµããŒãããããã©ã¡ãŒã¿ 次ã®è¡šã«ãæäŸéå§æã«äœ¿çšã§ãããã©ã¡ãŒã¿ããŸãšããŸãããµããŒããããŠããå€ãšç¯å²ãå«ãå
šäžèЧã¯ã Amazon EKS ã®ããã¥ã¡ã³ã ãã芧ãã ããã ã³ã³ããŒãã³ã ãã©ã¡ãŒã¿ å¶åŸ¡ããå
容 kube-scheduler nodeResourcesFit.scoringStrategy ãªãœãŒã¹ã®å²ãåœãŠã«åºã¥ããŠããŒããã¹ã³ã¢ãªã³ã°ããPod ã®é
眮æŠç¥ãèšå®ããŸããMostAllocated ã¯ãã§ã«å²ãåœãŠãå€ãããŒãããLeastAllocated ã¯äœ¿çšå¯èœãªãªãœãŒã¹ãå€ãããŒããåªå
ããŸããcpuãmemoryãã¢ã¯ã»ã©ã¬ãŒã¿ãŒ (nvidia.com/gpuãaws.amazon.com/neuronãaws.amazon.com/neuroncore) ã«ããªãœãŒã¹ããšã®éã¿ (1ïœ100) ãæå®ã§ããŸãã kube-controller-manager horizontalPodAutoscalerControllerConfig.horizontalPodAutoscalerSyncPeriod ã¢ããªã±ãŒã·ã§ã³ã®èŠä»¶ã«åãããŠãHPA ãã¡ããªã¯ã¹ãè©äŸ¡ããŠã¹ã±ãŒãªã³ã°ã倿ããé »åºŠ (10ïœ15 ç§) ãèšå®ããŸãã kube-apiserver eventTtl ãããã°ã®ãããããš etcd ã®ã¹ãã¬ãŒãžã®å¹çã®ãã©ã³ã¹ãåãããã«ãã€ãã³ãã®ä¿ææé (10ïœ60 å) ãã«ã¹ã¿ãã€ãºããŸãã kube-apiserver serviceNodePortRange NodePort ã¿ã€ãã® Service ã«å²ãåœãŠãããŒãçªå·ã®ç¯å² (10260ïœ32767) ãå®çŸ©ããŸããã¢ããªã±ãŒã·ã§ã³ã倿Žããã«ã¬ã¬ã·ãŒã·ã¹ãã ãç§»è¡ã§ããŸãã æ³š: horizontalPodAutoscalerSyncPeriod ãã©ã¡ãŒã¿ã䜿ãã«ã¯ã Amazon EKS Provisioned Control Plane ãå¿
èŠã§ããProvisioned Control Plane ã¯ãè² è·ã®é«ãã¯ãŒã¯ããŒãã«åžžã«å¯Ÿå¿ã§ããã³ã³ãããŒã«ãã¬ãŒã³ã®ãã£ãã·ãã£ãäºåã«å²ãåœãŠã远å ã®è² è·ãåžåã§ãããµã€ãºã確ä¿ããŸãã ãããã¯ã¯ã©ã¹ã¿ãŒå
šäœã®èšå®ã§ãã¯ã©ã¹ã¿ãŒã§å®è¡ãããã¯ãŒã¯ããŒãã«é©çšãããŸããåã®è¡šã¯ãã客æ§ã®èŠæã«åºã¥ããŠéžãã ãæåã«ãµããŒããããã©ã¡ãŒã¿ã®äžèЧã§ããä»ã«èšå®ããããã©ã¡ãŒã¿ãããã°ã AWS Containers Roadmap ã§ãç¥ãããã ããã åææ¡ä»¶ ãã®ãŠã©ãŒã¯ã¹ã«ãŒã宿œããã«ã¯ã次ã®ãã®ãå¿
èŠã§ãã AWS ã¢ã«ãŠã³ã Kubernetes ããŒãžã§ã³ 1.31 以éãå®è¡ããŠãã Amazon EKS Auto Mode ã¯ã©ã¹ã¿ãŒ æå
ã®ããã€ã¹ã§èšå®æžã¿ã®ææ°ããŒãžã§ã³ã® AWS ã³ãã³ãã©ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ (AWS CLI) ããŸã㯠AWS CloudShell ã¯ã©ã¹ã¿ãŒãšéä¿¡ã§ããããã«èšå®ãã kubectl Amazon EKS ã¯ã©ã¹ã¿ãŒã®æ
å ±ã®ååŸãšæŽæ°ãã¯ã©ã¹ã¿ãŒãžã®ã¯ãŒã¯ããŒãã®ãããã€ãè¡ãã¢ã¯ã»ã¹èš±å¯ãæã€ AWS Identity and Access Management (IAM) ããªã³ã·ãã« ãŸããã¯ã©ã¹ã¿ãŒåãš AWS ãªãŒãžã§ã³ãèšå®ããŸãã export CLUSTER=my-eks-cluster export AWS_REGION=us-west-2 ãŠã©ãŒã¯ã¹ã«ãŒ 1: MostAllocated ã¹ã³ã¢ãªã³ã°æŠç¥ã«ãã Pod ã®é
çœ®ã®æé©å ãã®ãŠã©ãŒã¯ã¹ã«ãŒã§ã¯ãæ¢åã®ã¯ã©ã¹ã¿ãŒã§ MostAllocated ã¹ã³ã¢ãªã³ã°æŠç¥ãèšå®ããKubernetes ã¹ã±ãžã¥ãŒã©ãæ°ãã Pod ãã䜿çšå¯èœãªãªãœãŒã¹ãå€ãããŒãã§ã¯ãªãããã§ã«å²ãåœãŠãå€ãããŒãã«é
眮ããæ§åã確èªããŸããé«åºŠãª Kubernetes ã³ã³ãããŒã«ãã¬ãŒã³èšå®ã䜿ãã°ããã®æŠç¥ã Amazon EKS ã¯ã©ã¹ã¿ãŒã§çŽæ¥èšå®ã§ããã®ã§ãã«ã¹ã¿ã ã¹ã±ãžã¥ãŒã©ãç¶æããéçšã®è² æ
ããªããªããŸãã ã¹ããã 1. ããŒãã®äœ¿çšçã«åãã®ããã¯ã©ã¹ã¿ãŒãçšæãã ãã®äŸã§ã¯ãPod ã®æ°ã«é¢ä¿ãªãäžå®æ°ã®ããŒããç¶æããããã«ã éçãã£ãã·ãã£ã®ããŒãããŒã« ãèšå®ãã Amazon EKS Auto Mode ã¯ã©ã¹ã¿ãŒã䜿ããŸããéçãã£ãã·ãã£ã®ããŒãããŒã«ã¯ãäºæž¬å¯èœãªãã£ãã·ãã£ããªã¶ãŒããã€ã³ã¹ã¿ã³ã¹ãå¿
èŠãªã¯ãŒã¯ããŒãããã€ã³ãã©ã¹ãã©ã¯ãã£ã®èŠæš¡ãäžå®ã«ä¿ã€ããšãæ±ããããã³ã³ãã©ã€ã¢ã³ã¹èŠä»¶ã®ããã¯ãŒã¯ããŒãã«åœ¹ç«ã¡ãŸããããŒãããŒã«ãäœæããŸãã cat <<EOF | kubectl apply -f - apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: demo-static spec: replicas: 2 template: spec: nodeClassRef: group: eks.amazonaws.com kind: NodeClass name: default requirements: - key: "node.kubernetes.io/instance-type" operator: In values: ["m5.large"] limits: nodes: 2 EOF kubectl wait --for=condition=Ready nodes --all --timeout=180s äž¡æ¹ã®ããŒãã®æºåãã§ãããããµã€ãºã®ç°ãªãã¯ãŒã¯ããŒãããããã€ããŠãå²ãåœãŠã«åããäœããŸãã # 1 ã€ã®ããŒãã§éãã¯ãŒã¯ããŒããå®è¡ãã (ããŒãã®ãã£ãã·ãã£ã®å€§åã䜿ã) cat <<EOF | kubectl apply -f - apiVersion: apps/v1 kind: Deployment metadata: name: heavy-app spec: replicas: 1 selector: matchLabels: app: heavy-app template: metadata: labels: app: heavy-app spec: nodeSelector: karpenter.sh/nodepool: demo-static containers: - name: pause image: registry.k8s.io/pause:3.9 resources: requests: cpu: 1500m memory: 1Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: light-app spec: replicas: 1 selector: matchLabels: app: light-app template: metadata: labels: app: light-app spec: nodeSelector: karpenter.sh/nodepool: demo-static containers: - name: pause image: registry.k8s.io/pause:3.9 resources: requests: cpu: 500m memory: 512Mi EOF kubectl wait --for=condition=Ready pods --all --timeout=120s 次ã®ã³ãã³ãã§ãåããŒãã®ãªãœãŒã¹ã®å²ãåœãŠã確èªããŸããã¹ã±ãžã¥ãŒã©ã¯ãã¹ã³ã¢ãªã³ã°ã®å€æã« (å®éã®äœ¿çšéã§ã¯ãªã) ãªãœãŒã¹ã®èŠæ±éã䜿ããŸãã kubectl get pods -o wide kubectl describe nodes -l karpenter.sh/nodepool=demo-static | grep -A 5 "Allocated resources" Node: i-0b3a5fb6f3823fd2f Allocated resources: CPU Requests: 1500m (84%) Memory Requests: 1Gi (14%) Node: i-08c2daa17b2fbe865 Allocated resources: CPU Requests: 500m (28%) Memory Requests: 512Mi (7%) ããŒã A (i-0b3a5fb6f3823fd2f) 㯠CPU ã® 84% ãå²ãåœãŠãããŠããŸããããŒã B (i-08c2daa17b2fbe865) 㯠28% ã ãã§ããkube-scheduler ã¯ãããŒããã¹ã³ã¢ãªã³ã°ãããšãã«ããã®å²ãåœãŠã®å·®ã䜿ããŸãã ã¹ããã 2. ããã©ã«ãã®é
眮 (LeastAllocated) ã確èªãã æ°ãã Pod ããããã€ããŠãã¹ã±ãžã¥ãŒã©ãã©ã®ããŒãã«é
眮ãããã確èªããŸãã cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata: name: test-pod spec: nodeSelector: karpenter.sh/nodepool: demo-static containers: - name: pause image: registry.k8s.io/pause:3.9 resources: requests: cpu: 200m memory: 128Mi EOF kubectl wait --for=condition=Ready pods --all --timeout=120s kubectl get pods -o wide NAME READY STATUS NODE test-pod 1/1 Running i-08c2daa17b2fbe865 LeastAllocated ã§ã¯ãã¹ã±ãžã¥ãŒã©ã¯äœ¿çšå¯èœãªãªãœãŒã¹ãå€ãããŒããåªå
ããPod ãããŒã B (CPU 28%ãã¡ã¢ãª 7% ãå²ãåœãŠæžã¿) ã«é
眮ããŸãããå
ã«é²ãåã«ããã®ãã¹ãçšã® Pod ãåé€ããŸãã kubectl delete pod test-pod ã¹ããã 3. MostAllocated ã¹ã³ã¢ãªã³ã°æŠç¥ãæå¹ã«ãã æ¢åã®ã¯ã©ã¹ã¿ãŒã«ã¹ã±ãžã¥ãŒã©ã®èšå®ãé©çšããŸãã aws eks update-cluster-config \ --name "$CLUSTER" \ --kube-scheduler-config '{ "nodeResourcesFit": { "scoringStrategy": { "type": "MostAllocated" } } }' 泚: å¿
èŠã«å¿ããŠãã«ã¹ã¿ã ã®éã¿ãæå®ãã resources é
åãæå®ããã¹ã³ã¢ãªã³ã°ã®å€æã§ã©ã®ãªãœãŒã¹ãéèŠãããã調æŽã§ããŸãããµããŒããããŠãããªãœãŒã¹ã¯ cpu ã memory ã nvidia.com/gpu ã aws.amazon.com/neuron ã aws.amazon.com/neuroncore ã§ãéã¿ã¯ 1ïœ100 ã§ãã ã¬ã¹ãã³ã¹ãšããŠãé²è¡ç¶æ³ã远跡ã§ããæŽæ°ã®æ
å ±ãè¿ãããŸãã { "update": { "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "status": "InProgress", "type": "ControlPlaneComponentConfigUpdate" ... } Amazon EKS ã¯ãä»ã®ã¯ã©ã¹ã¿ãŒã®æŽæ°ãšåæ§ã«ãã³ã³ãããŒã«ãã¬ãŒã³ã®èšå®ã®æŽæ°ãéåæã«é©çšããŸããæŽæ°ãå®äºãããŸã§åŸ
ã¡ãŸãã aws eks wait cluster-active --name "$CLUSTER" ãã®ã³ãã³ãã¯ãã¯ã©ã¹ã¿ãŒã Active ã¹ããŒã¿ã¹ã«æ»ããŸã§åŸ
æ©ããŸããéåžžã¯æ°å以å
ã«æ»ããŸãã ã¹ããã 4. æ°ããé
眮 (MostAllocated) ã確èªãã ããã§ãæ°ããã¹ã±ãžã¥ãŒãªã³ã°ã®å€æã«ã¯ MostAllocated ã䜿ãããŸããå¥ã®ãã¹ãçšã® Pod ããããã€ããŠãã©ã®ããŒãã«é
眮ããããã確èªããŸãã cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata: name: test-pod spec: nodeSelector: karpenter.sh/nodepool: demo-static containers: - name: pause image: registry.k8s.io/pause:3.9 resources: requests: cpu: 200m memory: 128Mi EOF kubectl wait --for=condition=Ready pods --all --timeout=120s kubectl get pods -o wide NAME READY STATUS NODE test-pod 1/1 Running i-0b3a5fb6f3823fd2f MostAllocated ã§ã¯ãã¹ã±ãžã¥ãŒã©ã¯ããã§ã«ãªãœãŒã¹ã®å²ãåœãŠãå€ãããŒã A (CPU 84%ãã¡ã¢ãª 14% ãå²ãåœãŠæžã¿) ãåªå
ããããã«ãªããŸãããããŒãã¢ãã£ããã£ãTaint ãš TolerationãããããžãŒåæ£å¶çŽãªã©ãç¬èªã®ã¹ã±ãžã¥ãŒãªã³ã°èŠä»¶ãæå®ãã Pod ã§ã¯ãåŒãç¶ããã®èŠä»¶ãåªå
ãããã¹ã±ãžã¥ãŒã©ã¯ããã«åŸããŸãããã®è©°ã蟌ãåäœã«ãã£ãŠãæéããã€ã«ã€ããŠã䜿çšçã®äœãããŒãã«ã¯æ°ããã¯ãŒã¯ããŒããé
眮ãããªããªããçµ±å (consolidation) ã«å¯Ÿå¿ããããŒãããŒã«ã§ã¯ããããã®ããŒããçµ±åã§ããããã«ãªããŸãããã€ã³ãã¯ãã«ã¹ã¿ã ã¹ã±ãžã¥ãŒã©ã䜿ããã«ã1 åã® API ã³ãŒã«ã§ã¯ã©ã¹ã¿ãŒå
šäœã®ã¹ã±ãžã¥ãŒãªã³ã°æŠç¥ã倿Žã§ããããšã§ãã ãŠã©ãŒã¯ã¹ã«ãŒ 2: eventTtl ã«ããã€ãã³ãã®ä¿ææéã®èšå® Kubernetes ã¯ãPod ã®ã¹ã±ãžã¥ãŒãªã³ã°ã®å€æãã€ã¡ãŒãžã®ãã«ããã«ã¹ãã§ãã¯ã®å€±æãã¹ã±ãŒãªã³ã°ã®ã¢ã¯ã·ã§ã³ãªã©ã®ã¯ã©ã¹ã¿ãŒã®ã¢ã¯ãã£ããã£ãèšé²ããããã«ãã€ãã³ãã etcd ããŒã¿ããŒã¹ã«ä¿åããŸããã¢ããã¹ããªãŒã ã®ããã©ã«ãã§ã¯ãã€ãã³ã㯠1 æéä¿æãããŸããå€§èŠæš¡ãªããããžã§ããæ©æ¢°åŠç¿ (ML) ã®ãã¬ãŒãã³ã°ãCI/CD ãã€ãã©ã€ã³ãå€§èŠæš¡ãª CronJob ãªã©ãå
¥ãæ¿ããã®æ¿ããã¯ãŒã¯ããŒããå®è¡ããã¯ã©ã¹ã¿ãŒã§ã¯ãæ°åã®ã€ãã³ããããã«èç©ããŸããetcd å
ã®ã€ãã³ããå¢ãããšãã¹ãã¬ãŒãžãéŒè¿«ããAPI ãµãŒããŒã® list åŠçãé
ããªããããããããŸãã é«åºŠãª Kubernetes ã³ã³ãããŒã«ãã¬ãŒã³èšå®ã§ã¯ããããã°ã®ãããããšã¹ãã¬ãŒãžã®å¹çã®ãã©ã³ã¹ãåãããã«ãã€ãã³ãã®ä¿ææéã調æŽã§ããŸãããã®ãŠã©ãŒã¯ã¹ã«ãŒã§ã¯ã eventTtl ãããã©ã«ãã® 1 æéãã 15 åã«ççž®ããŸãã ã¹ããã 1. eventTtl ã 15 åã«ççž®ãã API ãµãŒããŒã®èšå®ãé©çšããŸãã aws eks update-cluster-config \ --name "$CLUSTER" \ --kube-api-server-config '{ "eventTtl": "15m" }' æŽæ°ãå®äºãããŸã§åŸ
ã¡ãŸãã aws eks wait cluster-active --name "$CLUSTER" ã¹ããã 2. ççž®ã®å¹æã確èªãã æ°ãã eventTtl ã®èšå®ã¯ãèšå®ã®å€æŽãåæ ãããåŸã« Kubernetes ãäœæããã€ãã³ãã«é©çšãããŸããæ¢åã®ã€ãã³ãã¯å
ã®ä¿ææéãç¶æãããã®æéã«åŸã£ãŠæéåãã«ãªããŸããä¿ææéãçããªã£ãããšã確ãããããã«ãæ°ãã Pod ãäœæããŠããã® Pod ã®ã€ãã³ãã確èªããŸãã kubectl run ttl-test --image=registry.k8s.io/pause:3.9 kubectl get events --field-selector involvedObject.name=ttl-test LAST SEEN TYPE REASON OBJECT MESSAGE 6s Normal Scheduled pod/ttl-test Successfully assigned default/ttl-test to i-0b3a5fb6f3823fd2f 3s Normal Pulled pod/ttl-test Container image "registry.k8s.io/pause:3.9" already present on machine 3s Normal Created pod/ttl-test Container created 3s Normal Started pod/ttl-test Container started çŽ 15 ååŸã«ãåãã€ãã³ããç
§äŒããŸãã kubectl get events --field-selector involvedObject.name=ttl-test No resources found in default namespace. Kubernetes ã 15 ååŸã«ã€ãã³ããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ã§åé€ããããšãããæ°ããä¿ææéãæå¹ã«ãªã£ãŠããããšã確èªã§ããŸããèšå®ã®å€æŽåãããã£ãã€ãã³ãã¯ãåŒãç¶ãå
ã®ä¿ææéã§æéåãã«ãªããŸãã1 æéã«æ°åã®ããããžã§ããå®è¡ããã¯ã©ã¹ã¿ãŒã§ã¯ããã®èšå®ã«ãã£ãŠ etcd ã®é åã倧å¹
ã«ç©ºããããã€ãã³ããå€ãæ±ãã¯ãšãªã«å¯Ÿãã API ãµãŒããŒã®å¿çæéãççž®ã§ããŸãã ã€ãã³ãã®ä¿ææéãèšå®ããã¿ã€ãã³ã° 次ã®ãããªå Žåã¯ã eventTtl ãçãããã®ãé©ããŠããŸãã ã¯ã©ã¹ã¿ãŒã§ã倧éã®ã€ãã³ããçæããããããCI/CDãML ã®ãã¬ãŒãã³ã°ãCronJob ã®ã¯ãŒã¯ããŒããå®è¡ããŠããã etcd ã®ã¹ãã¬ãŒãžã容éã®äžéã«è¿ã¥ããŠããã ã€ãã³ããæ°žç¶çã«ä¿åããããã«å€éšã®ãªãã¶ãŒãããªãã£ã·ã¹ãã ( Amazon CloudWatch Container Insights ããã°ã¢ã°ãªã²ãŒã¿ãŒãªã©) ãå©çšããŠããŠãéå»ã®ã€ãã³ãã調ã¹ãã®ã« kubectl get events ã«é Œã£ãŠããªãã TTL ãçããããšã kubectl describe pod ãš kubectl get events ã§è¡šç€ºãããæéãçããªãããšã«æ³šæããŠãã ãããã¹ãã¬ãŒãžã®å¹çãšãããã°ã®æé ã®ãã©ã³ã¹ãåããå€ãéžãã§ãã ããã ã¯ãªãŒã³ã¢ãã ç¶ç¶çãªæéãçºçããªãããã«ãAWS ã¢ã«ãŠã³ãã§äœæãã Amazon EKS ã¯ã©ã¹ã¿ãŒã®ãªãœãŒã¹ãå¿
ãåé€ããŠãã ããã kubectl delete deployment heavy-app light-app kubectl delete pod test-pod kubectl delete nodepool demo-static Amazon EKS ã¯ã©ã¹ã¿ãŒãåé€ããã«ã¯ãAmazon EKS ã®ããã¥ã¡ã³ãã® æé ã«åŸã£ãŠãã ããã èæ
®äºé
é«åºŠãª Kubernetes ã³ã³ãããŒã«ãã¬ãŒã³èšå®ãé©çšããåã«ã次ã®ç¹ã«çæããŠãã ããã æ¢åã® Amazon EKS API ã§ç®¡ç: é«åºŠãª Kubernetes ã³ã³ãããŒã«ãã¬ãŒã³èšå®ã§ã¯ãæ¢åã® CreateCluster API ãš UpdateClusterConfig API ãæ°ãããã©ã¡ãŒã¿ãšãšãã«äœ¿ããŸããèšå®ã¯ã AWS ãããžã¡ã³ãã³ã³ãœãŒã« ãAWS CLIã AWS CloudFormation ã§é©çšã§ããŸãã eksctl ãAWS Controllers for Kubernetes (ACK)ãTerraform ã®ãµããŒããäºå®ãããŠããŸãã(蚳泚: eksctl ã¯ã2026 幎 8 æ 14 æ¥ã«ãªãªãŒã¹ããã v0.230.0 ã§ãµããŒããããŸããã)Amazon EKS ã¯åèšå®ãé©çšããåã«æ€èšŒããç£æ»ã§ããããã«å€æŽã AWS CloudTrail ã«èšé²ããŸãã èšå®ã¯ã¯ã©ã¹ã¿ãŒå
šäœã«é©çš: ãµããŒããããŠããåãã©ã¡ãŒã¿ã¯ãã¯ã©ã¹ã¿ãŒå
šäœãšãã¯ã©ã¹ã¿ãŒã§å®è¡ãããã¯ãŒã¯ããŒãã«é©çšãããŸããKubernetes ããã§ã«åŸã£ãŠãã Pod ã¬ãã«ã®æå® (Pod èªèº«ã®ãªãœãŒã¹ã®èŠæ±éãªã©) ã¯ãåŒãç¶ãé©çšãããŸããã¯ã©ã¹ã¿ãŒã®èšå®ã§å€ããã®ã¯ã³ã³ãããŒã«ãã¬ãŒã³ã®ããã©ã«ããšã¹ã³ã¢ãªã³ã°ã®åäœã§ãçŸåšå©çšããŠãã Kubernetes ã®åªå
é äœã®ã«ãŒã«ã¯å€ãããŸããã ã¹ã±ãžã¥ãŒã©ãšããŒã管çã¯å¥ã®ã¬ã€ã€ãŒã§åäœ: MostAllocated ã¹ã³ã¢ãªã³ã°æŠç¥ã圱é¿ããã®ã¯ãã¹ã±ãžã¥ãŒã©ããæ¡ä»¶ãæºããæ¢åã®ããŒãã®ã©ãã« Pod ãé
眮ãããã§ããAmazon EKS Auto Mode ã Karpenter ãããŒããããããžã§ãã³ã°ãããåé€ãããããæ¹æ³ã¯å€ãããŸãããèšå®ãæŽæ°ããåã«ãã¯ãŒã¯ããŒãã§ã¹ã±ãžã¥ãŒã©ãšããŒã管çãçµã¿åãããåäœãæ€èšŒããããšããå§ãããŸãã äžéšã®ãã©ã¡ãŒã¿ã«ã¯ Provisioned Control Plane ãå¿
èŠ: horizontalPodAutoscalerSyncPeriod ãªã©ãã³ã³ãããŒã«ãã¬ãŒã³ã®ããã©ãŒãã³ã¹ããªãœãŒã¹ã®æ¶è²»ã«åœ±é¿ããããã©ã¡ãŒã¿ã¯ã Provisioned Control Plane ã®éå±€ã䜿ãã¯ã©ã¹ã¿ãŒã§ã®ã¿äœ¿çšã§ããŸãã HPA ã®åæééãšã¯ã©ã¹ã¿ãŒã®èŠæš¡: Provisioned Control Plane ã®ã¯ã©ã¹ã¿ãŒã§ã¯ãAmazon EKS 㯠HPA ã®åæã®åæå®è¡æ°ã Kubernetes ã®ããã©ã«ãå€ã®æå€§ 40 åã«åŒãäžããŠããŸããåæå®è¡æ°ã®åŒãäžããšãHPA ã®åæéé (10ïœ15 ç§) ãèšå®ã§ããããšã«ãã£ãŠãHPA ã³ã³ãããŒã©ãŒã¯ããå€ãã®ã¹ã±ãŒãªã³ã°ã€ãã³ãã䞊åã«åŠçããã¯ãŒã¯ããŒãã®éèŠã®å€åã«ãã°ãã察å¿ã§ããŸããHPA ãªããžã§ã¯ããå€ãã¯ã©ã¹ã¿ãŒã§ã¯ãæ¬çªç°å¢ã«é©çšããåã«ãéžãã åæééãš HPA ãªããžã§ã¯ãã®æ°ã§æåŸ
ã©ããã«åäœãããããã客æ§ã®ç°å¢ã§æ€èšŒããŠãã ããã Kubernetes ããŒãžã§ã³ãšãªãŒãžã§ã³ã®ãµããŒã: é«åºŠãª Kubernetes ã³ã³ãããŒã«ãã¬ãŒã³èšå®ã¯ãKubernetes 1.31 以éãå®è¡ããæ°èŠããã³æ¢åã® Amazon EKS ã¯ã©ã¹ã¿ãŒã§ãµããŒããããŠããŸããAmazon EKS ãå©çšã§ãããã¹ãŠã® AWS åçšãªãŒãžã§ã³ãAWS GovCloud (ç±³åœ)ãäžåœãªãŒãžã§ã³ã§ãè¿œå æéãªãã§å©çšã§ããŸãã horizontalPodAutoscalerSyncPeriod ã䜿ãã«ã¯ Provisioned Control Plane ãå¿
èŠã§ãProvisioned Control Plane ã«ã¯ã¹ã±ãŒãªã³ã°éå±€ã«å¿ããæéæéãããããŸãã ãŸãšã é«åºŠãª Kubernetes ã³ã³ãããŒã«ãã¬ãŒã³èšå®ã«ãããã¯ã©ã¹ã¿ãŒç®¡çè
㯠Amazon EKS ã®å¯çšæ§ãšããã©ãŒãã³ã¹ç¹æ§ãç¶æãããŸãŸãã¹ã±ãžã¥ãŒãªã³ã°ããªãœãŒã¹ç®¡çãAPI ãµãŒããŒã®èšå®ãçŽæ¥å¶åŸ¡ã§ããŸããã客æ§ã¯ãããã©ã«ãã® Kubernetes ã¹ã±ãžã¥ãŒã©ãæ¹å€ãããã®ãå®è¡ããããåé¿çãå®è£
ãããããå¿
èŠããªããªããéçšãªãŒããŒããããæžãããªããããªãœãŒã¹ã®äœ¿çšçãé«ããã³ã¹ããäžããããŸãããã®èšäºã§ã¯ã MostAllocated ã®ãã³ãããã³ã°ã§ Pod ã®é
眮ãæé©åããŠãªãœãŒã¹ã®äœ¿çšçãé«ããã€ãã³ãã®ä¿ææéã調æŽããŠãããã°ã®ãããããšã¹ãã¬ãŒãžã®å¹çã®ãã©ã³ã¹ãåããŸããããã²ãã®æ©èœã䜿ãå§ããŠã AWS Containers Roadmap ã§ãã£ãŒãããã¯ããå¯ããã ããã 䜿ãå§ããã«ã¯ãæ¬¡ã®æ
å ±ãã芧ãã ããã Amazon EKS ãŠãŒã¶ãŒã¬ã€ã ã§ãé«åºŠãª Kubernetes ã³ã³ãããŒã«ãã¬ãŒã³èšå®ã«ã€ããŠç¢ºèªããŠãã ããã ã³ã³ãããŒã«ãã¬ãŒã³ã®ãã£ãã·ãã£ãäºåã«å²ãåœãŠãå¿
èŠããããã©ã¡ãŒã¿ã«ã€ããŠã¯ã Amazon EKS Provisioned Control Plane ã®è©³çްãã芧ãã ããã ããŒãã®ç®¡çãèªååããŠã¯ã©ã¹ã¿ãŒã®éçšãç°¡çŽ åãã Amazon EKS Auto Mode ã«ã€ããŠã詳ããã芧ãã ããã 翻蚳ã¯ã·ãã¢ããŒãããŒãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã®åžå·ãæ
åœããŸãããåæã¯ ãã¡ã ã§ãã
ã¯ããã« ãããã®ãã¬ããžç·šééšã®æ³æã§ãã ãããã€ã³ã¿ãŒãããã§ã¯ãæè¡ã³ãã¥ããã£ãåŠçã®æŽ»åãæ¯æŽããããã«ããµãŒããªã©ã®ã€ã³ãã©ãæäŸããæŽ»åãè¡ã£ãŠããŸããæ¬èšäºã§ã¯ã€ã³ãã©ãæäŸããŠããå£äœã®äžãããé岡ç […]













