Craigãããªã1å°ã®ãã·ã³ã«ãã³ã³ããã§å±éãã䟡å€ãããã®ãââããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã·ã¹ãã ãæ¥ç¶ããã¿ã€ãã³ã°ãKubernetesãæã€ä»£æ¿æ段ããããŠä»åŸã®æåŸ ããäŒãããŸãã 詳现-ã«ããã®äžã
Craig BoxïŒã¯ã¬ã€ã°ããã¯ã¹ïŒ-ãšãã¹ããŒãã§ãããGoogle Cloudã®ããããã®éšéã®è²¬ä»»è ã 圌ã®è²¬ä»»ã«ã¯ããã©ãããã©ãŒã ã®æäœããŠãŒã¶ãŒã¬ãã¥ãŒã®åéããšã³ãžãã¢ãšã®ããåããå«ãŸããŸãã ã·ã¹ãã 管çè ããå§ãŸããéçºãå®è£ ãDevOpsãã³ã³ãµã«ãã£ã³ã°ã管çã«åãæ¿ããŸããã
ã¬ããŒãã«ã€ããŠå°ãæããŠãã ããã ããªãã話ããŠãããã®æã¯ããã§ã«çç£ã®èª°ãã«ãã£ãŠäœ¿çšãããŠããŸããããããšãæŠå¿µã§ããïŒ lstioã¯ã©ããããæçããŠããŸããïŒ
ã¯ã¬ã€ã°ãã¯ã·ã³ã°ïŒ Istioã¯ãã¯ãŒã¯ãããŒãéçºããåãé¢ããªãŒãã³ãœãŒã¹ãµãŒãã¹ãããã¯ãŒã¯ã§ãã ãã€ãããã±ããã§ã¯ãªãããµãŒãã¹ã®ãããã¯ãŒã¯ãšããŠæ³åã§ããŸãã
ã¢ããªã·ãã¯ããã»ã¹ãããã€ã¯ããµãŒãã¹ã«ã¢ããªã±ãŒã·ã§ã³ã転éãããšããå€ãã®åæ£ãšã³ããã€ã³ãã®ããã«ãåžžã«ç¢ºå®ã«åäœãããšã¯éããªããããã¯ãŒã¯ãå®è£ ããŸãã äžéšã®äŒæ¥ãç¹ã«Netflixã¯ãåãã€ã¯ããµãŒãã¹ã«å«ãŸããã¹ãã©ã€ãã©ãªã䜿çšããŠããã€ã¯ããµãŒãã¹ã®ãããã¯ãŒã¯ã®åé¡ã解決ããŸããã ãã€ã¯ããµãŒãã¹ã§ã¯åã³ã³ããŒãã³ããä»»æã®èšèªã§éçºã§ãããããã©ã€ãã©ãªãè€æ°ã®èšèªã§ãµããŒãããå¿ èŠããããããã«ãããè¿œå ã®åé¡ã«ãªããŸããã
Istioã§ã¯ãæ¢åã®ãµãŒãã¹ãšæ°ãããµãŒãã¹ãä»»æã®èšèªã§åäžã®æ¹æ³ã§ç®¡çã§ããŸãã ä»»æã®èšèªã®ãã€ã¯ããµãŒãã¹ã管çãç£èŠãä¿è·ããã©ãã«ã§ãå±éã§ããŸãã
管çè ã¯ã«ãŒã«ãå®çŸ©ããŸãïŒããšãã°ããããã¯ãšã³ããã©ãã£ãã¯ã®10ïŒ ããµãŒãã¹ã«éä¿¡ããããŸãã¯ãAãšBéã®ãã¹ãŠã®ãã©ãã£ãã¯ãTLSçžäºæå·åã䜿çšããŠå®è¡ãããããã«ãããïŒã Istioã¯ããããã®ã«ãŒã«ãå®æœããããã«ããã°ã©ã ãããåãµãŒãã¹ã®åã«ãããã·ãµãŒããŒãå®è£ ããŸãã ãŸããäœãå®çŸ©ããªããŠããIstioãKubernetesã¯ã©ã¹ã¿ãŒã«ã€ã³ã¹ããŒã«ããåŸãããã«è±å¯ãªãã©ãã£ãã¯ã¢ãã¿ãªã³ã°ã®ã³ã¬ã¯ã·ã§ã³ãå ¥æãããšã³ããã€ã³ãéã§åæ£ãã¬ãŒã¹ãæäŸã§ããŸãã
Istioã䜿çšãããããã·ãµãŒããŒã¯EnvoyãšåŒã°ããŸãã Matt KleinçããLyftããŒã ã«ãã£ãŠæžãããŸããã Lyftã¯ãããžã§ã¯ãã§é·ãéEnvoyã䜿çšããŠããŸãããããã®éã«ããŸããŸãªãµã€ãºã®ã·ã¹ãã ã§ãã®åäœããã¹ãããŸããã
Istioã³ãã¥ããã£ã«ã¯åœåãGoogleãIBMãããã³Lyftãå«ãŸããŠããŸããããä»ã®å€ãã®ã¡ã³ããŒã«åå ããåŸãããŒãžã§ã³0.2ããªãªãŒã¹ãããŸããã ç§ãã¡ã¯ããããããŒã¿çããšã¿ãªããä»å¹Žã®çµããã«ããŒãžã§ã³0.3ã®éå®çãªç£æ¥å©çšãèšç»ãããªãªãŒã¹1.0ã¯2018幎ã«äºå®ãããŠãããããã«å€ãã®ç°å¢ããµããŒãããŸãã
Istioã¯ããšããšKubernetesã念é ã«çœ®ããŠèšèšãããŠãããKubernetesã¯ãã¡ãããããã«äœ¿ããæçãã補åã§ãã 調æ»äŒç€Ÿã®Redmonkã¯ãKubernetesã¯Fortune 100äŒæ¥ã®54ïŒ ã§äœ¿çšãããŠãããã³ã³ããäŒç€Ÿå šäœã®75ïŒ ãå ããŠãããšäž»åŒµããŠããŸãã
-ã»ãšãã©ã®DevOpsãã©ã¯ãã£ã¹ãšã¯ç°ãªãããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã·ã¹ãã ã䜿çšããå¿ èŠæ§ã¯ãç¹ã«æ¯èŒçå°ããªããŒã ããããžã§ã¯ãã®å Žåãå¿ ãããæããã§ã¯ãããŸããã ãããã¯ãã¹ãŠã®äººã«åžžã«å¿ èŠã§ããããããšãåæ§ã®ã·ã¹ãã ãç»å Žãããã€ã¯ããµãŒãã¹ãšå€æ°ã®ãã·ã³ã®å Žåã«ã®ã¿ã¡ãªããããããŸããïŒ
Craig BoxingïŒ 1å°ã®ãã·ã³ã«ãµãŒãã¹ã1ã€ãããªãå Žåã§ããã³ã³ããã䜿çšããããšã«ã¯å©ç¹ããããŸãããã¹ãŠã®äŸåé¢ä¿ã1ã€ã®ã¢ãããã¯ãŠãããã«ãããã€ã§ããŸãããã€ã§ãããã¹ãŠã®å€æŽãç°¡åã«ããŒã«ããã¯ã§ããŸãã
ã³ã³ããã1ã€ãããªãå Žåã§ããKubernetesã¯ãã®ã³ã³ããã®ã©ã€ããµã€ã¯ã«ã管çããããã®åªããAPIã§ãããä»»æã®ãã·ã³ã§å®è¡ãããŸãã ã¡ã¢ãªããããã¯ãŒã¯ãªã©ãã¢ããªã±ãŒã·ã§ã³ãããäœãæœè±¡åãåŠçããå±éããŒã«ã䜿çšããŠç°¡åã«æ§æã§ããAPIãµãŒããŒãæäŸããŸãã
ããã§ãç°å¢éã移åã§ããããŒã¿ãã«ã¢ããªã±ãŒã·ã§ã³ãã§ããŸããã ã¢ããªã±ãŒã·ã§ã³ãæ§æããããã¹ã±ãŒãªã³ã°ã«é²ãããšãã§ããŸãã
-åæ§ã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã·ã¹ãã ãªãã§ãããžã§ã¯ããæåã«éå§ãããå ŽåãçŸåšå¿ èŠãªãã®ãã©ã®ãããªå åã§ç解ã§ããŸããïŒ
ã¯ã¬ã€ã°ãã¯ã·ã³ã°ïŒ Kubernetesã®ãããªã·ã¹ãã ã¯ãæåããæåŸãŸã§APIã«ãã£ãŠç®¡çãããŸãã Google Container Engineãªã©ã®ãµãŒãã¹ã䜿çšããã¯ã©ã¹ã¿ãŒã®äœæããããã®ã¯ã©ã¹ã¿ãŒã§ã®ã¢ããªã±ãŒã·ã§ã³ã®ãããã€ãšæŽæ°ãŸã§ããã¹ãŠãèªååã§ããŸãã
人ã ããããè¡ãæãäžè¬çãªçç±ã®1ã€ã¯ãå€åçãäžããããšã§ãã ããã¯æ¬¡ã®ãããªãã®ã§ããã³ã³ããããªãŒã±ã¹ãã¬ãŒã·ã§ã³ãããã³ãã€ã¯ããµãŒãã¹ãã¯ã©ãŠãã«ç§»åãããšãåäžã®å±éã®ãªã¹ã¯ã軜æžãããŸãã ããã«ãããç¶ç¶çãªéçšãä¿èšŒãããŸãã ããã§ãã«ããªã¢å±éãªã©ã®ãã³ãã¬ãŒãã䜿çšããŠã¢ã¯ãã£ãåãããããã»ã¹ã«èªä¿¡ãæãŠãŸãïŒæåã¯ãã©ãã£ãã¯ã®1ïŒ ãæ°ãããµãŒãã¹ã«ã次ã«5ïŒ ã次ã«20ïŒ ãªã©ïŒã äœãåé¡ãçºçããå Žåã¯ãæ»ãããšãã§ããŸãã
ã客æ§ããã¯ã1ãæã«1åã®å±éãã1æ¥ã«æ°ååãŸã§å±éã§ãããšèšãããŸããã ããã¯ãæ°ããã³ãŒããããé«éã«ãªããæçµçã«ããžãã¹ããã»ã¹ã®ããæè»ãªç®¡çã«ã€ãªããããšãæå³ããŸãã
-Kubernetesã«ä»£ããæ·±å»ãªéžæè¢ã¯ãããŸããïŒ ãŸãã¯ã圌ã®ã¢ãã«ã¯éåžžã«åªããŠãããååãšããŠå¿ èŠã§ã¯ãªãã®ã§ãæçµçã«ã¯1ã€ãããããŸããã
Craig BoxingïŒ Kubernetesã¯ãGoogleãäœæããã¯ã©ã¹ã¿ãªã³ã°ã¢ãã«ã®é²åçã§ãã ãã®åéã®ä»ã®ã·ã¹ãã ãããšãã°Mesosã«åœ±é¿ãäžããäœæ¥ã«é¢ããããã¥ã¡ã³ããå ¬éããŸããã
Kubernetesãç»å Žããã®ãšã»ãŒåææã«ãä»ã®åæ§ã®ã·ã¹ãã ãç»å ŽããŸããã ãããã®å€ãã¯ããã«Kubernetesã«åãæ¿ããŸããïŒããšãã°ãOpenShiftãDeis Workflowãæè¿ã§ã¯RancherïŒã
GoogleãKubernetesãäœæããŠãªãŒãã³ã©ã€ã»ã³ã¹ã§ãªãªãŒã¹ããããšã決å®ããçç±ã®1ã€ã¯ããã¹ãŠã®ãããã€ããŒã§äœ¿çšã§ããæšæºAPIã誰ããå¿ èŠãšããŠããããã§ãã
Kubernetesã¯Linux for the CloudãšåŒã°ããŸãã Unixãå¿ èŠãªå ŽåãLinuxã¯ããæå³ã§äºå®äžã®éžæã§ãããã¯ããŒãºããœãŒã¹ã®äžçãWindowsã¯ãã¡ããã®ããšãããŸããŸãªå Žé¢ã§ä»ã®ãªãŒãã³ãœãŒã¹ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ãšã³ã·ã¹ãã ãååšããŸãã
åæ§ã«ãã¹ããŒããã«ãªWebãµãŒãã¹ããããã°ããŒã¿ãšGPUã䜿çšããMLã¢ãã«ã®ãããã¯ãŒã¯ããŒããŸã§ãããããçš®é¡ã®ã¢ããªã±ãŒã·ã§ã³ã管çã§ããKubernetesã®çŽ æŽãããAPIã»ãããäœæããŸããã ãŸããKubernetesã§æ¡åŒµæ©èœãäœæããã®ã«å€ãã®æéãè²»ãããŸãããããã«ãããèããããªãã£ãçš®é¡ã®ãªããžã§ã¯ããå®çŸ©ã§ããŸãã Kubernetesã¯ãšã³ã·ã¹ãã ã®äžå¿ã§ãããæ¡å€§ã§ãããã®ã§ãããšèããŠããŸãã
-æ¢åã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã®æ±ºå®ãç¶æããã®ã¯ã©ããããé£ããã§ããïŒ ããã«å ¥åããŠèµ·åããå¿ããããšã¯ãããŸããïŒ ãŸãã¯ãäžå®ã®ãã¥ãŒãã³ã°ãã¯ã©ã¹ã¿ãŒã®åŽ©å£ããã®ä»ã®åé¡ããããŸããïŒ
Craig BoxingïŒåãŠãŒã¶ãŒã«ã¯ãã¯ã©ã¹ã¿ãŒã䜿çšããç¬èªã®çç±ããããŸãã æ倧ã®é»åå©çšã®ããã«ããããå ±æããé·æéåäœããããå ŽåããããŸãã ä»ã®ãŠãŒã¶ãŒã¯ãå¿ èŠãªå Žåã«ã®ã¿ããããå«ããç°ãªãããžãã¹ãŠãããã«ç¬èªã®ã¯ã©ã¹ã¿ãŒãäžããããšæãã§ãããã äžå®æ°ã®ãã·ã³ã§äœæ¥ãã人ã¯ãå¿ èŠã«å¿ããŠãã·ã³ãèªåçã«è¿œå ã§ãããããã¯ã©ãŠãã§äœæ¥ãã人ãšã¯äœ¿çšæ¹æ³ãç°ãªããŸãã
Kubernetesã¯ãã¹ãŠã®ç¶æ³ã§é©åã«åäœããããã«èšèšãããŠãããåœç€Ÿã®è£œåã§ããGoogle Container Engineã䜿çšãããšãã¯ã©ã¹ã¿ãŒã3åæªæºã§ãããã€ã§ããŸãã
-æ¢åã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ã·ã¹ãã ã®å©ããåããŠè§£æ±ºã§ããªãããŸãã¯å°é£ãªã¿ã¹ã¯ã¯äœã§ããïŒ åœŒãã®éçºã¯ã©ãã«åãã£ãŠããŸããïŒ
Craig BoxingïŒã³ã³ãããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã·ã¹ãã ã¯ãã¹ã±ãŒã©ãã«ãªã·ã¹ãã ã§ã®äžè¬çãªåçã¯ãŒã¯ããŒãã«é©ããŠããŸãã 1å°ã®ãã·ã³ã§1ã€ã®åçšããŒã¿ããŒã¹ãå®è¡ãããã®ãã·ã³ã®ãã¹ãŠã®ãªãœãŒã¹ã䜿çšããå Žåã¯ãäœãå€æŽããªãããšããå§ãããŸãã ãã®ãµãŒããŒãæ éããå Žåã移åã«ãããåŽåãšè²»çšã¯ãä¿®çã«ãããåŽåãšè²»çšããã倧ãããªãå¯èœæ§ããããŸãã ããã念é ã«çœ®ããŠãã¯ã©ã¹ã¿ãŒå ã®å€éšãµãŒãã¹ã«åçŽã«æ¥ç¶ããããšããå§ãããŸãã
åæ§ã«ãGoogle BigQueryãªã©ã®ãããŒãžããµãŒãã¹ãããå Žåãã¯ã©ã¹ã¿ãŒã§ããŒã¿ãŠã§ã¢ããŠã¹ãéå§ããå¿ èŠã¯ãããŸããã
Istioã¯ããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ãKubernetesã§å®è¡ãããããã§ã¯ãªãããšãç¥ã£ãŠããŸãã ããŒãžã§ã³0.2ã§ã¯ãä»®æ³ãã·ã³ãšå®ãã·ã³ã®äž¡æ¹ã§å®è¡ãããŠãããµãŒãã¹ãè¿œå ã§ããŸãã
Oracleã¯ã³ã³ããã§OracleããŒã¿ããŒã¹ããã¹ãããã¹ã¯ãªãããå ¬éããŸããããMicrosoftã¯ããã«äžæ©èžã¿èŸŒãã§SQL Serverã€ã¡ãŒãžãDocker Hubã«ã¢ããããŒãããŸããã ãã®ãããªã¯ãŒã¯ããŒãã移åãããå Žåãããã¯å¯èœãªç¯å²ãè¶ ããŠããŸãïŒ
-ã¹ããŒããã«ãµãŒãã¹ã«ã€ããŠã¯ã©ãã§ããïŒ æ®éçãªã¡ã«ããºã ã®åºçŸãæåŸ ãã¹ãã§ããïŒ
Craig BoxingïŒ Kubernetesã®MVPã¯ã¹ããŒãã¬ã¹WebãµãŒãã¹ããã¹ãããŠããŸããããã¹ããŒããã«ã¯ãŒã¯ããŒããå®è¡ã§ããããã«ããããã«å¿ èŠãªããšãåžžã«èããŠããŸããã
åã¡ã³ããŒã«åºæ°ïŒçªå·ä»ãïŒèå¥åãšåå¥ã®ãªããžããªãæäŸãããStatefulSetãã®æŠå¿µã«åãçµã¿ãŸããã ããã«ãã¯ã©ã¹ã¿ãŒã«ã¢ã€ãã ãè¿œå ãŸãã¯åé€ããããã«äœãå¿ èŠããç¥ã£ãŠããã¢ããªã±ãŒã·ã§ã³ã®ãã¹ããŒãã¡ã³ãããäœæã§ããŸãã
Kubernetesã³ãã¥ããã£ã¯ãCassandraãMongoDBãªã©ã®äžè¬çãªãªãŒãã³ãœãŒã¹ã¢ããªã±ãŒã·ã§ã³çšã®ãã³ãã¬ãŒããå€æ°éçºããŠãããå€ãã®äŒæ¥ãåŸæ¥ã®ãšã³ã¿ãŒãã©ã€ãºã¢ããªã±ãŒã·ã§ã³ãã³ã³ãããŒã«ç§»è¡ããŠããŸãã ãã¹ãŠã®ã³ãã¥ããã£ããKubernetesãäžæµã®ãµããŒããããå±éãã©ãããã©ãŒã ãšããŠäœ¿çšããããšãé¡ã£ãŠããŸãã
ãã€ã¯ããµãŒãã¹ç®¡çã®åé¡ãé¢é£ããŠããå Žåã¯ãCraig Boxã®è¬æŒã DevOops 2017ã§KubernetesãšIstioãäœ¿çš ããŠãã€ã¯ããµãŒãã¹ã管çãããããèªã¿ãã ãã ã
ãŸããããªãã¯ããããäŒè°ãå«ãä»ã®ã¹ããŒãã«èå³ãããã§ãããïŒ
- k8ã®æ¡åŒµ ïŒãã³ã©ã€ãªãžã³ãããã«ã¹ãµã ã©ã€ïŒ
- Kubernetesã®æ¬çªã¢ããªã±ãŒã·ã§ã³ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ãšãããã°ãå¥åThe Failing Demo Talk ïŒRaysangãGoogleããã³Baruch SadogurskyãJFrogïŒ
- SmartMonitoring-Odnoklassnikiã®ããžãã¹ããžãã¯ã®ç£èŠ ïŒSergey SharapovãOdnoklassnikiïŒ