Kubernetesã®è³æãèªãã§ãããšãããŸããŸãªkubectlã³ãã³ããããªãããŒãªYAMLæ§æã®äŸã«ç¹°ãè¿ãåºããããããšã§ãããã K8ã«ç²ŸéããŠãã人ã«ãšã£ãŠããã®ã¢ãããŒãã¯ééããªãæçµ¶ãåŒãèµ·ãããŸãããããããWebã€ã³ã¿ãŒãã§ã€ã¹ãæ®åããŠããæä»£ã§ã¯ãäžè¬ãŠãŒã¶ãŒã«ãšã£ãŠäœ¿ãããããšã¯èšããŸãããããã¯åå¿è ã®ããã®åŠç¿ããã»ã¹ãè€éã«ããKubernetesã«ããŸã粟éããŠããªã人ã ã®ããã®éå£ãšããŠæ©èœããŸãã
ãã¡ãããKubernetesã¢ããã¹ããªãŒã èªäœã®äžéšã§ããKubernetesããã·ã¥ããŒããå«ãK8çšã®ããŸããŸãªGUIããã ãŸãã ïŒæ³šã®ç¿»èš³ïŒãã®æ¯èŒã§ã¯ãæ¢åã®ãœãªã¥ãŒã·ã§ã³ã®å€ãã«ã€ããŠãã§ã«èª¬æããŸãããïŒ ããããããŸããŸãªãªãã·ã§ã³ããã¹ãŠèª¿ã¹ããšãããå®å šã«é©ãããœãªã¥ãŒã·ã§ã³ãèŠã€ããããšãã§ããŸããã§ããã ç§ã¯ã€ã³ã¿ãŒãã§ãŒã¹ã欲ããã£ãïŒ
- 100ïŒ ãªãŒãã³ãœãŒã¹ã§ããã
- ã³ãã¥ããã£ã«ãã£ãŠç©æ¥µçã«ãµããŒããããŠããŸãã
- ç¹å®ã®ãã³ããŒã®Kubernetesãã£ã¹ããªãã¥ãŒã·ã§ã³ã«é¢é£ä»ããããŠããªããšããæå³ã§æ®éçã§ããã
- ã¢ãžã¥ãŒã«åŒã§æ¡åŒµå¯èœã§ããã
- ãã¡ããšããã¢ãã³ãªå€èгã§ããã
- éçºè ã«éŠŽæã¿ã®ããã¹ã¿ãã¯ïŒGoãJavaScript / TypeScriptãReactïŒã«å®è£ ãããŸããã
- ã€ã³ã¿ã©ã¯ãã£ãã§ããïŒã€ãŸããåéãããããŒã¿ã ãã§ãªããã¯ã©ã¹ã¿ãŒã§ç¹å®ã®ã¢ã¯ã·ã§ã³ãèš±å¯ããŸããïŒã
- ãã«ãã¯ã©ã¹ã¿ãŒã¢ãŒãããµããŒãããŸããã
ããªãè±å¯ãªéžæè¢ã«ããããããããã¹ããããœãªã¥ãŒã·ã§ã³ã®ãããããäžèšã®ãã¹ãŠã®åºæºãæºãããŠããŸããã§ããïŒãŸãã¯ãæ°ãããœãªã¥ãŒã·ã§ã³ãäœæããããã®åªããåºç€ãšããŠåœ¹ç«ã€å¯èœæ§ããããŸãïŒããããã£ãŠãæãªããã®äŒçµ±ã«åŸã£ãŠãç§ãã¡ã¯ãããèªåãã¡ã§äœãããšã«ããŸãã...
ãããã©ã³ãã®ã玹ä»
æ¬æ¥ããããã©ã³ããšåŒã°ããKubernetesã®æ°ããUIãåºãå©çšå¯èœã«ãªã£ãããšãçºè¡šã§ããããšãèªãã«æããŸã ã
ãããã©ã³ãã¯ãäžèšã®åºæºãæºããå€çšéã§æ¡åŒµå¯èœãªKubernetesãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã§ãããã¡ãããKinvolkã®çºæ¡ã«ãããã®ã§ããã100ïŒ ãªãŒãã³ãœãŒã¹ã§ããKubernetesã³ãã¥ããã£ã®å€ãã®ã¡ã³ããŒããããã©ã³ããé«ãè©äŸ¡ããã ãã§ãªãããããžã§ã¯ãã«è²¢ç®ããããšãé¡ã£ãŠããŸãã
ãã®äž»ãªç¹åŸŽãç°¡åã«èŠãŠã¿ãŸãããã
æ¡åŒµå¯èœãªUI
ãããã©ã³ããã§ããã ãå€ãã®ãŠãŒã¹ã±ãŒã¹ã«é©ããŠããããšã確èªããããåªããŠããŸãããããžã§ã¯ãã®å¯Ÿè±¡è ã¯ãKubernetesã®åå¿è ã ãã§ãªããéåžžã«ç°ãªãããŒãºãæã€çµéšè±å¯ãªç®¡çè ãK8sãã³ããŒã§ããããŸããå€ãã®å ŽåïŒç¹ã«UIãããžã§ã¯ãã®å ŽåïŒããã®ãããªããŸããŸãªãŠãŒã¹ã±ãŒã¹ã¯ã倿°ã®ãã©ãŒã¯ãäœæããããšã«ãã£ãŠå®è£ ãããåãã©ãŒã¯ã¯ç¬èªã®ããŠã³ã¹ããªãŒã ããŒã ã«ãã£ãŠç¶æãããŸãããã ãããã©ãŒã¯ãææ°ã®ç¶æ ã«ä¿ã€ããšã¯ããã©ãŒã¯ã®å€æŽã倧ããã»ã©é£ãããªããŸãã
ãã©ã°ã€ã³ã·ã¹ãã ã¯ãã®åé¡ã解決ããŸãããã®ãããHeadlampã¯ããªãŒå€ã®UIãã©ã°ã€ã³ããµããŒãããŠããŸãããããã¯ããããã©ã³ãããã¯ãšã³ãã«ãã£ãŠããŒããããã¯ã©ã€ã¢ã³ãã«æž¡ãããJavaScriptãã¡ã€ã«ã§ãããã¯ã©ã€ã¢ã³ãã¯ããããåçã«ããŒãããŸãã
ãã®ã¢ãããŒãã¯é©æ°ã®å€§ããªæ©äŒãéããå€ãã®æ°æ©èœã®åºçŸã«è²¢ç®ããŸããããšãã°ããããã®è©³çްãããã¯ã«ãã¿ã³ãäœæããŠããã®ãããã®è²¡åã³ã¹ãã衚瀺ãããµãŒãã¹ã«ãŠãŒã¶ãŒããªãã€ã¬ã¯ãããã®ã¯ç°¡åã§ãã
ãããã©ã³ããã©ã°ã€ã³ã¡ã«ããºã ã¯ãã³ãã¥ããã£ã«å€§ããªãã£ã³ã¹ããããããŸãããããŠãHeadlampã®æ°ãããã©ã°ã€ã³ã®éçºã«åå ããããã¹ãŠã®äººãšååããã¡ã«ããºã èªäœãéçºããŠãæ°ãããŠãŒã¹ã±ãŒã¹ã«é©å¿ãããæºåãã§ããŠããŸãã
Traceloop
ãã©ã°ã€ã³ã¡ã«ããºã ïŒããã³ããŒã«èªäœïŒã®èœåãå®èšŒããããã«ããããžã§ã¯ãInspektor Gadget ïŒKubernetesã®ã¢ããªã±ãŒã·ã§ã³ããããã°ããã³æ€æ»ããããã®ããŒã«ã®ã»ãã-caãPerevi..ïŒã«å«ãŸããã¬ãžã§ããtraceloopçšã®ãããã©ã³ããã©ã°ã€ã³ãéçºã ãŸãã ã
Inspektorã¬ãžã§ãããã€ã³ã¹ããŒã«ããtraceloopã¬ãžã§ãããæå¹ã«ãããšãããããã埪ç°ãããã¡ãŒãžã®ãã¹ãŠã®ã·ã¹ãã åŒã³åºãã®æžã蟌ã¿ãéå§ãããŸãããã®ãããã¡ã¯ããããã®å®è¡äžã«ãªã¢ã«ã¿ã€ã ã§è¡šç€ºã§ããŸããèšãæãããšãtraceloopã䜿çšãããšãããããçŸåšå®è¡ããŠããããšã確èªã§ããŸããããã«ããããã¡å ã®ããŒã¿ã¯ãçµäºãããããçšã«ä¿åãããŸãããã®ããã«ããŠãé害ãçºçããåŸã®é害ã®åå ãç¹å®ã§ããŸããããã¯ãKubernetesã¢ããªã±ãŒã·ã§ã³ã®äžçš®ã®ããã©ãã¯ããã¯ã¹ãã§ãã
éžæçãªUI
å€ãã®CRUDãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®åé¡ã¯ãã¢ã¯ã»ã¹å¶åŸ¡ã®å éšæ§æã«ã€ããŠäœãç¥ããªãããšã§ããããšãã°ãç·šé/åé€ãã¿ã³ã®ååšã¯ããŠãŒã¶ãŒãå®éã«ãªãœãŒã¹ã倿Žããæš©éãæã£ãŠããªãå ŽåããŠãŒã¶ãŒã誀解ãããŸãããããã©ã³ãã¯RBACKubernetesèšå®ããã§ãã¯ãããŠãŒã¶ãŒã䜿çšã§ããã¢ã¯ã·ã§ã³ã®ã³ã³ãããŒã«ã®ã¿ã衚瀺ããŸããããšãã°ããŠãŒã¶ãŒã«ãªãœãŒã¹ãç·šéããæš©éããªãå Žåããç·šéããã¿ã³ã¯è¡šç€ºãããŸããã
ããã¯ãã¹ãŠããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«éåžžã«æçãªå¹æããããããŸããçµå±ã®ãšããããªãã¬ãŒã¿ãŒã¯ãçŸåšã®æš©å©ãèæ ®ããŠãèªåãå©çšã§ããã¢ã¯ã·ã§ã³ãããã«ç¢ºèªã§ããŸããããã¯ãæéå¶éã®ããã¢ã¯ã»ã¹èš±å¯ïŒãªãœãŒã¹ãåé€ããããã®äžæçãªã¢ã¯ã»ã¹èš±å¯ãªã©ïŒãä»äžãããŠããç¶æ³ã«æé©ã§ãã
ãŠãŒã¶ãŒãç·šé/å逿š©éãæã£ãŠããå Žåã®ãããã§ã®ã¢ã¯ã·ã§ã³ã«äœ¿çšã§ãããã¿ã³ãŠãŒã¶ãŒãç·šé/å逿š©éã
æã£ãŠããªãå Žåã«äœ¿çšã§ãããã¿ã³
ãã¶ã€ã³/ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹
ãåŸæ¥ã®ãKubernetesUIãŸãã¯ããã·ã¥ããŒãã¹ã¿ã€ã«ãç¶æããªããããããã©ã³ãã®ãã¶ã€ã³ãå¯èœãªéãç°¡æœã§ã¢ãã³ã«ããããšãç®æããŸãããããšãã°ãããªãã¿ã®è¡šåœ¢åŒã®ãã¥ãŒã¯äœæ¥ã«æé©ã§ãããšç¢ºä¿¡ããŠããããã©ã°ã€ã³ã䜿çšããŠä»ã®ã¿ã€ãã®èŠèŠåïŒããšãã°ãã°ã©ã圢åŒã§ã®ã¯ã©ã¹ã¿ãŒã®è¡šçŸïŒãå®è£ ã§ããããšãæåŸ ããŠããŸãã
ããã³ããšã³ãã¯ãReact with Material UIã©ã€ãã©ãªã«å®è£ ãããŠããŸã ïŒææ°ã§ããã¡ããšããŠããŠãå€§èŠæš¡ãªãŠãŒã¶ãŒã³ãã¥ããã£ã«ãã£ãŠãµããŒããããŠããŸãïŒãããã«ãä»ã®ãããžã§ã¯ãã§ããNebraska ïŒFlatcar Container Linuxã®æŽæ°ãããŒãžã£ãŒ-çŽTranslãïŒã®æè¡ã¹ã¿ãã¯ã«å«ãŸããŠããŸã ãçµéšãšãªãœãŒã¹ãå ±æãããã¹ãŠã®è£œåã§äžè²«ããUIã確ä¿ã§ããŸãã
ããŒã«ã«ãŸãã¯ã¯ã©ã¹ã¿ãŒå
ã»ãšãã©ã®KubernetesUIã¯ãKubernetes Dashboardã®ãããªãªã¢ãŒãïŒããã¯ãšã³ãã¯å€ãã®å Žåã¯ã©ã¹ã¿ãŒå ã«ãããŸãïŒãŸãã¯VMwareã®Octantã®ãããªããŒã«ã«ïŒã¢ããªã±ãŒã·ã§ã³ã¯ã³ã³ãã¥ãŒã¿ãŒã«ã€ã³ã¹ããŒã«ãããŸãïŒã®2ã€ã®ã°ã«ãŒãã«åé¡ãããŸã ã
ãããã®ã¢ãããŒãã«ã¯ããããé·æãšçæããããŸããããšãã°ããªã¢ãŒãã¢ããªã±ãŒã·ã§ã³ã®å ŽåãURLãä»ã®ãŠãŒã¶ãŒãšå ±æããOIDCãä»ããŠãã°ã€ã³ãå®è£ ããã®ã¯éåžžã«ç°¡åã§ãã ãã©ãã§ããå©çšã§ããææ°ã®ç¶æ ã«ä¿ã€ã®ã¯ç°¡åã§ããéã«ããã¹ã¯ãããçã®å ŽåãUIã®é 眮ãèããå¿ èŠã¯ãããŸããããã®ã¢ãããŒãã¯ããè¯ãåé¢ãæäŸããŸãããã¢ããªã±ãŒã·ã§ã³ãææ°ã®ç¶æ ã«ä¿ã€ã®ã¯ãŠãŒã¶ãŒæ¬¡ç¬¬ã§ãã
ãããã©ã³ãã䜿çšãããšãããã2ã€ã®ã¢ãããŒãã®ã©ã¡ãããéžæããå¿ èŠããªããªããŸããäž¡æ¹ããµããŒããããŸãããããã©ã³ãã¯ãYAMLãã¡ã€ã«ã䜿çšããŠç°¡åã«ã¯ã©ã¹ã¿ãŒåïŒããã³ããããé©å¿ãããïŒããããšããLinuxãmacOSããŸãã¯Windowsãã·ã³ã«ããŒã«ã«ã«ã€ã³ã¹ããŒã«ããããšãã§ããŸãã
ãã«ãã¯ã©ã¹ã¿ãŒã¢ãŒã
ã»ãšãã©ã®Kubernetesãããã€ã¡ã³ãã¯ãããã€ãã®ã¯ã©ã¹ã¿ãŒã§æ§æãããŠããŸãïŒå°ãªããšããéçºç°å¢ãšè£œåç°å¢ãåé¢ããããïŒããããã©ã³ãã¯ãããããã¹ãŠã®ã¯ã©ã¹ã¿ãŒãžã®ã¢ã¯ã»ã¹ãæäŸããŸããå ·äœçãªæ¹æ³ã¯ãããŒã«ã«ã§å®è¡ããããªã¢ãŒãã§å®è¡ãããã«ãã£ãŠç°ãªããŸãã
ããŒã«ã«ã§å®è¡ããŠããå ŽåãHeadlampã¯kubeconfigãèªã¿åããããã§äœ¿çšå¯èœãªã³ã³ããã¹ãã衚瀺ããŸãããŠãŒã¶ãŒã¯ãããŒã«ã«ç°å¢å€æ°ãé©åãªã¯ã©ã¹ã¿ãŒã«èšå®ããã ãã§ãå¿ èŠã«å¿ããŠã³ã³ããã¹ãã倿Žã§ããŸãã
ãã«ãã¯ã©ã¹ã¿ãŒã¢ãŒãã¯éåžžã«åçŽã§ããæ§æãããã¯ã©ã¹ã¿ãŒããšã«ãããã·ãäœæãããUIããã®èŠæ±ïŒKubernetes APIãžã®åŒã³åºããå«ãïŒãç®çã®ã¯ã©ã¹ã¿ãŒã®ã¢ãã¬ã¹ã«ãªãã€ã¬ã¯ããããŸããK8dashãããžã§ã¯ãã¯ããã§èšåãããã¹ã ã§ãããããã©ã³ãã®éçºæã«äœ¿çšãããªã¯ãšã¹ã/ APIã管çããããã®ã¢ãžã¥ãŒã«ã
ãã®ã¢ãããŒãã¯ãã¯ã©ã¹ã¿ãŒå ã§ã®å®è¡ãšçµã¿åãããããšãã§ããŸããããã®ããã«ã¯ãã¢ããªã±ãŒã·ã§ã³ãå®è¡ãããŠããã¯ã©ã¹ã¿ãŒã§ãæå®ãããä»ã®ã¯ã©ã¹ã¿ãŒãžã®APIã¢ã¯ã»ã¹ãå¿ èŠã«ãªããŸãã
LokomotiveKubernetesæ¥ç¶
ãåç¥ãããããŸããããKubernetesã®ç¬èªã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã§ããLokomotiveããããŸã ãLokomotiveã§ã¯Headlampãæ¬æ¥ã®ç®çã§äœ¿çšããŠããŸããããããã¯ç¬ç«ããç¬ç«ãããããžã§ã¯ãã§ããããšã匷調ããããšæããŸããHeadlampãK8sãµãŒãã¹ãããã€ããŒã«çµã³ä»ããã€ããã¯ãªããäžè¬çãªKubernetesã¯ã©ã¹ã¿ãŒã§åäœããããã«èšèšããŠããŸãã
ã¯ã©ã¹ã¿ãŒã§ãããã©ã³ãã詊ããŠãã ããïŒ
ãããè¡ãã®ã¯éåžžã«ç°¡åã§ããã¯ã©ã¹ã¿ãŒã«ãããã€ã¡ã³ãããããã€ããŠãã©ãŠã¶ãŒã§å¯Ÿå¿ããã¢ãã¬ã¹ã«ç§»åããããWindowsãmacOSããŸãã¯Linuxçšã®ãã¹ã¯ãããããŒãžã§ã³ãããŠã³ããŒãããŠã€ã³ã¹ããŒã«ããŸãã詳现ã¯ããã¥ã¡ã³ãã«ãã ãŸãã
ãããã©ã³ãã¯ãApache2.0ã©ã€ã»ã³ã¹ã®äžã§ãªãªãŒã¹ãããå®å šã«ãªãŒãã³ãœãŒã¹ã®ããŒã«ã§ããåè¿°ã®ããã«ãKubernetesãµãŒãã¹ãããã€ããŒããç¬ç«ããçšéãåºãïŒå€æ°ã®ãŠãŒã¹ã±ãŒã¹ãã«ããŒïŒããã«ããŸãããæ¬æ¥ã¯ããããžã§ã¯ãã®éçºã«ãã²ãåå ãã ããããããè¡ãã«ã¯ãé¢é£ããã¬ã€ãã©ã€ã³ããèªã¿ ãã ããã
ãããã©ã³ãããæ¥œãã¿ãã ããïŒ
翻蚳è ããã®PS
ç§ãã¡ã®ããã°ãèªãã§ãã ããïŒ