(ãã®èšäºã¯ã harpoonã®åµèšè å ŒCEOã§ããDominic Holtãå ±åå·çããŠããŸãã

Kubernetesã¯ããœãããŠã§ã¢ãDevOpsãã¯ã©ãŠããã€ãã£ãã®ãšã³ã·ã¹ãã ã§ã¹ã±ãŒã©ãã«ã§é«å¯çšæ§ã®ã³ã³ãããªãŒã±ã¹ãã¬ãŒã·ã§ã³ã確ä¿ããããã®ã²ãŒã ãã§ã³ãžã£ãŒã§ãã 䟡å€ã¯çŽ æŽãããã§ãããç¡æã§æäŸãããããã§ã¯ãããŸããã Kubernetes ãšãããã匷åããããã«å¿ èŠãªãã¹ãŠã®åºç€ãšãªãã€ã³ãã©ã¹ãã©ã¯ãã£ãšæ§æã®åŠç¿ã«ã¯ãå€å€§ãªåŽåãè²»ããããŸãã èªååãããã¹ã±ãŒã©ããªãã£ãã»ãã¥ãªãã£ãããã³ã¯ã©ã¹ã¿ãŒã®ã¡ã³ããã³ã¹ã䜿çšããŠéçšçšã«æ§æãããã¯ã©ã¹ã¿ãŒã皌åãããã«ã¯ãããã«å€ãã®åŽåãããããŸãã
çµå±ã®ãšãããKubernetesã«ã¯ä¿¡ããããªãã»ã©ã®åŽåããããå¯èœæ§ãããããã¹ãŠã®äœæ¥ãªãã§ãã¹ãŠã®äŸ¡å€ãåŸãç°¡åãªæ¹æ³ããããã©ããçåã«æããããããŸããã
ãã®æçš¿ã®å 容:
éã«äŒã
harpoon ã䜿çšãããšã誰ã§ã Kubernetes ã¯ã©ã¹ã¿ãŒãããããžã§ãã³ã°ããã³ãŒããæ§æãèšè¿°ããããšãªããœãããŠã§ã¢ãã¯ã©ãŠãã«ãããã€ã§ããŸãããã©ãã°ã¢ã³ãããããã€ã³ã¿ãŒãã§ã€ã¹ã§æ°ç§ã§ãœãããŠã§ã¢ã皌åãããŸãã ãœãããŠã§ã¢ã®ç£èŠãšæŽæ°ã«é¢ããŠã¯ãharpoonããªã¢ã«ã¿ã€ã ã§åŠçããŠããã¹ãŠãå®ç§ã«å®è¡ãããããã«ããŸãã åé¡ãçºçããå Žåã¯éç¥ãããharpoonã¯ãœãããŠã§ã¢ãåãããã€ãŸãã¯ããŒã«ããã¯ããŠããšã³ããŠãŒã¶ãŒã«ã·ãŒã ã¬ã¹ãªãšã¯ã¹ããªãšã³ã¹ãæäŸã§ããŸãã Harpoonã¯ããã¥ã¬ãŒã·ã§ã³ãããå°ããªãªã¹ãã ãã§ãªãããããããœãããŠã§ã¢ã«å¯ŸããŠãããåçã«è¡ããŸãã
ã¯ã©ãŠãã®Kubernetesã§ãœãããŠã§ã¢ãå®è¡ããã«ã¯ãè³æ Œæ å ±ãå ¥åããŠ[ã¹ã¿ãŒã]ãã¿ã³ãã¯ãªãã¯ããã ãã§ãã æ°åã§ãéçšç°å¢ã¯ã»ãã¥ãªãã£ãçµã¿èŸŒãŸããç¶æ ã§å®å šã«å®è¡ãããŸãã ãœãããŠã§ã¢ã®è¿œå ã¯ããœãããŠã§ã¢ãæ€çŽ¢ããŠç»é¢ã«ãã©ãã°ããã®ãšåããããç°¡åã§ãã ç¬èªã®ãœãããŠã§ã¢ã远å ãããã§ãã? æ°åã¯ãªãã¯ããã ãã§GitHubã¢ã«ãŠã³ãã«æ¥ç¶ããã³ãŒããè€éãªæ§æãªãã§æ°ç§ã§ãã«ãããã³ãããã€ãããªããžããªãéžæããŸãã
Harpoon ã䜿çšãããšããã°èšé²ãšç£èŠãã¯ã©ã¹ã¿ãŒã®ã¹ã±ãŒãªã³ã°ããµãŒãã¹ãšã€ã³ã°ã¬ã¹ã®äœæãã³ãŒããªãã§æ°ç§ã§ããŒã¿ããã£ãã·ã¥ãããªã©ãå¿ èŠãªãã¹ãŠãå®è¡ã§ããŸãã harpoonã¯ãDevOpsã誰ã«ãšã£ãŠãéæå¯èœã«ããããããªã³ã¹ãã§æå€§ãã€æãæè¡çã«é²ãã äŒæ¥ãšåãé床ã§ãœãããŠã§ã¢ãé¡§å®¢ã«æäŸããããšã§ãç«¶äºã®å Žãå¹³æºåããŸãã
éã®å»ºç¯
ããŒããŒã³ã¯ãã€ããªããSaaSã¢ãã«ã§åäœããããŒããŒã³ãšã³ã¿ãŒãã©ã€ãºãã©ãããã©ãŒã ã圢æããããŸããŸãªãã€ã¯ããµãŒãã¹ãšã³ã³ããŒãã³ãããã¹ãããKubernetesèªäœäžã§å®è¡ãããŸãã ããã¯ããã«ãŽã¡ãŒããžã®éããã©ãã°ã¢ã³ããããããããšãã«ã€ã³ã¿ãŒãã§ãŒã¹ãããã®ã§ãã ãŠãŒã¶ãŒãŸãã¯çµç¹ãææããã¢ã«ãŠã³ãã«ã¯ã©ãŠããµãŒãã¹ãããã€ããŒã®èªèšŒæ å ±ãæäŸããããšã§ãharpoon 㯠terraform ã䜿çšããŠãç¬èªã® Kubernetes ã¯ã©ã¹ã¿ãŒãå«ããã¢ã«ãŠã³ãå ã®åºç€ãšãªããã¹ãŠã®ä»®æ³ã€ã³ãã©ã¹ãã©ã¯ãã£ãããããžã§ãã³ã°ããŸãã ãã®ããã«ããŠããã¹ãŠã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãšã¯ã©ã¹ã¿ãŒãå®å šã«å¶åŸ¡ã§ããŸãã

å®å šã«ããããžã§ãã³ã°ããããšãharpoon ã® UI ã¯ãã¯ã©ã¹ã¿ãŒãšéä¿¡ããKubernetes ãããã€ããµãŒãã¹ãæ§æããããã€ã³ã°ã¬ã¹ãããã³ãã®ä»ã®äž»èŠãªæ§é ãäœæããããã«ãããŸããŸãª harpoon ãã€ã¯ããµãŒãã¹ã«ã³ãã³ããéä¿¡ã§ããŸãã
ã¯ã©ãŠããé©ããŠããªãå Žåã¯ãåºæ¬çã«ã©ãã«ã§ãå±éã§ãããå®å šã«ãªã³ãã¬ãã¹ã®ãšã¢ã®ã£ããããŒãžã§ã³ã® harpoon ãæäŸããŠããŸãã
ãªãé?
æ¬çªãœãããŠã§ã¢ç°å¢ã®æ§ç¯ã¯å°é£ã§ãæéãšã³ã¹ããããããç¶æããããã®å¹³åã³ã¹ãã¯ãçµéšè±å¯ãªDevOpsãšã³ãžãã¢ã®å Žåã¯$ 200Kããå§ãŸããå€§èŠæš¡ãªã¯ã©ã¹ã¿ãŒãããŒã ã§ã¯æ°åäžãã«ã«éããããšããããããŸãã ã«ã¹ã¿ã ã¹ã¯ãªãããäœæãã代ããã«ããŒããŒã³ã䜿çšãããšãäžå°äŒæ¥ã§ã¯å¹Žéæ°åäžãã«ãäžèŠæš¡ããå€§èŠæš¡ã®äŒæ¥ã§ã¯å¹Žéæ°çŸäžãã«ã®äººä»¶è²»ãç¯çŽã§ããŸãã
ããŒããŒã³ã䜿çšãããšãããŒã ã¯ãããæ°åã§æé«åè³ªã®æ¬çªç°å¢ã®1ã€ãå©çšã§ããŸãã ã³ãŒããèšè¿°ããã«ãharpoon ã¯å®å šãªç°å¢ã§æ¬çªç°å¢ãèªåçã«ã»ããã¢ããããYAML ã Kubernetes ã®å°éç¥èããªããŠãã¯ã©ã¹ã¿ãŒãåçã«ç¶æã§ããããã«ããŸãã ããã«è¯ãããšã«ãéã¯äœ¿ãã®ã楜ããã§ãã ã©ã®åºç€ãšãªããã¯ãããžããœãããŠã§ã¢ãã¯ã©ãŠãã«ãããã€ããŠãããã«ã€ããŠå¿é ããå¿ èŠã¯ãããŸããã ããã¯ããŸãããã¯ãã§ãã ãããŠããããæ©èœãããã®ã¯ç°¡åãªã¯ãã§ããÂ
ãªãããŒããŒã³ãããã«ãŒæ¡åŒµæ©èœãšããŠå®è¡ããã®ã§ãã?
Dockeræ¡åŒµæ©èœã¯ããœãããŠã§ã¢ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããæ¥åžžã®ã¯ãŒã¯ãããŒã«çµ±åããã®ã«åœ¹ç«ã¡ãŸãã ããŒããŒã³Dockeræ¡åŒµæ©èœã䜿çšãããšããã©ãã°ã¢ã³ãããããã§ãããã€ããã»ã¹ãç°¡çŽ åããã¢ããªã±ãŒã·ã§ã³ãKubernetesç°å¢ã«çŽæ¥èŠèŠçã«ãããã€ããã³æ§æã§ããŸããçŸåšãDocker Desktop ã® harpoon æ¡åŒµæ©èœã§ã¯ãæ¬¡ã®æ©èœããµããŒããããŠããŸãã
- ããŒããŒã³ãAWSãªã©ã®ã¯ã©ãŠããµãŒãã¹ãããã€ããŒã«ãªã³ã¯ããKubernetesã¯ã©ã¹ã¿ãŒãšåºç€ãšãªãä»®æ³ã€ã³ãã©ã¹ãã©ã¯ãã£ããããã€ããŸãã
- åçŽãŸãã¯è€éãªãšã³ã¿ãŒãã©ã€ãºã°ã¬ãŒãã®ã¯ã©ãŠãå±éããã³ãŒããæ§æã¹ã¯ãªãããèšè¿°ããããšãªãç°¡åã«å®çŸã§ããŸãã
- ãœãŒã¹ã³ãŒããªããžããªãæ¥ç¶ããã³ãŒããªãã§èªååããããããã€ãã€ãã©ã€ã³ãæ°ç§ã§ã»ããã¢ããããŸãã
- ãªã¢ã«ã¿ã€ã ã®èŠèŠçæãããã§DevOpsããŒã ã匷åããã¯ã©ãŠãã§å®è¡ãããŠãããœãããŠã§ã¢ã®æ£åžžæ§ãšã¹ããŒã¿ã¹ã確èªããŸãã
- ã³ã³ãã㌠ã€ã¡ãŒãžã Docker HubããœãŒã¹ããŸãã¯ãã©ã€ããŒã ã³ã³ãã㌠ã¬ãžã¹ããªãããã©ãã° ã¢ã³ã ããããããŸã
- ããžã¥ã¢ã«ããããã€ã³ã°ã¬ã¹ãããªã¥ãŒã ãã³ã³ãã£ã°ããããã·ãŒã¯ã¬ãããããŒãã䜿çšã㊠K8s ã¯ã©ã¹ã¿ãŒã管çããŸãã
- ãµãŒãã¹ã¡ãã·ã¥å ã®ã«ãŒãã£ã³ã°ããåçŽãªã¯ãªãã¯ãšããŒãçªå·ã ãã§åçã«æäœããŸãã
ããŒããŒã³ããã«ãŒæ¡åŒµæ©èœã®äœ¿ç𿹿³
åææ¡ä»¶: Docker Desktop 4.8 以éã
ã¹ããã 1: Docker æ¡åŒµæ©èœãæå¹ã«ãã
Docker ãã¹ã¯ãããã® [èšå®] ã¿ãã§ Docker æ¡åŒµæ©èœãæå¹ã«ããå¿ èŠããããŸãã
Docker ãã¹ã¯ãããã«ã¢ã¯ã»ã¹ããŠãDocker æ¡åŒµæ©èœãæå¹ã«ãªã£ãŠããããšã確èªããŸãã [èšå®]>[æ¡åŒµæ©èœ]>ã«ç§»åãã[Dockeræ¡åŒµæ©èœãæå¹ã«ãã]ãã§ãã¯ããã¯ã¹ããªã³ã«ããŸãã
![- Docker æ¡åŒµæ©èœãæå¹ã«ãã 2 Docker Desktop ã® [èšå®] ã§ Docker æ¡åŒµæ©èœãæå¹ã«ããŸãã](https://www.docker.com/ja-jp/app/uploads/2023/01/enable-docker-extensions-2.png)
ã¹ããã2:ããŒããŒã³ããã«ãŒæ¡åŒµæ©èœãã€ã³ã¹ããŒã«ãã
harpoon æ¡åŒµæ©èœã¯ãDocker Desktop ã® Extensions Marketplace ãš Docker Hub ã§å ¥æã§ããŸãã éå§ããã«ã¯ãæ¡åŒµæ©èœããŒã±ãããã¬ãŒã¹ã§ harpoon ãæ€çŽ¢ãã[ ã€ã³ã¹ããŒã«] ãéžæããŸãã

ããã«ãããDocker Hub ããææ°ããŒãžã§ã³ã® harpoon Docker æ¡åŒµæ©èœãããŠã³ããŒãããã³ã€ã³ã¹ããŒã«ãããŸãã

ã¹ããã3:éã«ç»é²ãã
ããŒããŒã³ãåããŠäœ¿çšããå Žåã¯ã[ç»é²]ãã¿ã³ãã¯ãªãã¯ããŠç»é²ããå¿ èŠãããå ŽåããããŸãã ãã以å€ã®å Žåã¯ãè³æ Œæ å ±ã䜿çšããŠãã°ã€ã³ã§ããŸãã

ã¹ããã 4: AWS ã¢ã«ãŠã³ãããªã³ã¯ãã
奜ããªãœãããŠã§ã¢ãKubernetesã³ã³ããŒãã³ãããã©ãã°ã¢ãŠãã§ããŸãããå®éã®ãããã€ãè¡ãå Žåã¯ãæåã«ã¯ã©ãŠããµãŒãã¹ãããã€ããŒã¢ã«ãŠã³ãããªã³ã¯ããå¿ èŠããããŸãã çŸæç¹ã§ã¯ãããŒããŒã³ã¯ã¢ããŸã³ãŠã§ããµãŒãã¹(AWS)ããµããŒãããŠããŸãã ä»åŸãäž»èŠãªã¯ã©ãŠã ãµãŒãã¹ ãããã€ããŒããã¹ãŠãµããŒãããäºå®ã§ãã
AWS äžã«ãœãããŠã§ã¢ããããã€ããå Žåã¯ãã¢ã¯ã»ã¹ã㌠ID ãšã·ãŒã¯ã¬ããã¢ã¯ã»ã¹ããŒã harpoon ã«æäŸããå¿ èŠããããŸãã harpoon 㯠Kubernetes ã¯ã©ã¹ã¿ãŒã«å ã㊠AWS ã«å¿ èŠãªãã¹ãŠã®ã€ã³ãã©ã¹ãã©ã¯ãã£ããããã€ããŠãããããç°å¢ãæ£åžžã«ããããžã§ãã³ã°ããã«ã¯ãã¢ã«ãŠã³ããžã®ããªãåºç¯ãªã¢ã¯ã»ã¹ãå¿ èŠã§ãã ããŒã¯ãã¢ã«ãŠã³ãã§ Kubernetes ãç«ã¡äžããæå®ãããšããã«ã¯ã©ã¹ã¿ãŒãã¹ã±ãŒã«ã¢ãã/ã¹ã±ãŒã«ããŠã³ããããã«å¿ èŠãªã€ã³ãã©ã¹ãã©ã¯ãã£ãããããžã§ãã³ã°ããããã«ã®ã¿äœ¿çšãããŸãã ç§ãã¡ã¯ harpoon ã®ã»ãã¥ãªãã£ãéåžžã«çå£ã«åãæ¢ããŠãããharpoon èªäœã«åºç¯ã§éå±€åãããã»ãã¥ãªãã£ã¢ãããŒãã䜿çšãã以å€ã«ãæ©å¯ããŒã¿ã«ã¯ãã£ã¹ã¯ã¬ãã«ãšãã£ãŒã«ãã¬ãã«ã®æå·åã®äž¡æ¹ã䜿çšããŠããŸãã

以äžã¯ãã¯ã©ã¹ã¿ãŒãæ£åžžã«ãããã€ããããã« harpoon ãå¿ èŠãšããç¹å®ã®ã¢ã¯ã»ã¹èš±å¯ã§ãã
- ã¢ããŸã³RDSãã£ãŒã«ãã¢ã¯ã»ã¹
- IAMFullAccess
- ã¢ããŸã³EC2ãã«ã¢ã¯ã»ã¹
- ã¢ããŸã³VPCãã«ã¢ã¯ã»ã¹
- ã¢ããŸã³S3ãã«ã¢ã¯ã»ã¹
- AWSããŒãããžã¡ã³ããµãŒãã¹ãã¯ãŒãŠãŒã¶ãŒ
ã¹ããã 5: ã¯ã©ã¹ã¿ãŒãéå§ãã
ã¯ã©ãŠããµãŒãã¹ãããã€ããŒã¢ã«ãŠã³ãããªã³ã¯ããããã¯ãŒã¯ã¹ããŒã¹ã®ã¯ã©ãŠã/ããŒãèŠçŽ ã«ãã[éå§]ãã¿ã³ãã¯ãªãã¯ããã ãã§ãã ããã§ãã ããæ¬åœã§ãïŒ ã¯ã©ãŠã/ããŒãèŠçŽ ãé»è²ã«å€ãããã«ãŠã³ãããŠã³ã衚瀺ãããŸãã ãšã¯ã¹ããªãšã³ã¹ã¯å€å°ç°ãªãå ŽåããããŸãããã¯ã©ã¹ã¿ãŒã 6 å以å ã«èµ·åã§ããããšããããããŸãã ã¯ã©ã¹ã¿ãŒãå®è¡ãããŠãããšãé²ãæ»ããèŠçŽ ã幞ããªéè²ã«èŒããŸãã

ã¹ããã 6: ãããã€
Docker Hub ããä»»æã®ã³ã³ãã㌠ã€ã¡ãŒãžãæ€çŽ¢ããããGitHub ã¢ã«ãŠã³ãããªã³ã¯ããŠä»»æã® GitHub ãªããžã㪠(ãããªãã¯ãŸãã¯ãã©ã€ããŒã) ãæ€çŽ¢ããããŒããŒã³ã䜿çšããŠãããã€ããããšãã§ããŸãã æ€çŽ¢çµæãã¯ãŒã¯ã¹ããŒã¹ã«ãã©ãã°ããŠããœãããŠã§ã¢ãèŠèŠçã«è¡šçŸã§ããŸãã
ã³ã³ããã®ãããã€ã¯ãããããã€ããã¿ã³ãæŒãã®ãšåããããç°¡åã§ãã Githubã³ã³ããã§ã¯ãæåã«ãªããžããªãæ§ç¯ããå¿ èŠããããŸãã ããŒããŒã³ãGitHubãªããžããªãæ£åžžã«æ§ç¯ããã«ã¯ãçŸåšããªããžããªã«ãããã¬ãã«ã®Dockerfileãå¿ èŠã§ãããããã¯æ¥çã®ãã¹ããã©ã¯ãã£ã¹ã§ãã Dockerfileãååšããå Žåã[ãã«ã]ãã¿ã³ãã¯ãªãã¯ãããšãharpoonãèªåçã«ãããèŠã€ããŠã³ã³ããã€ã¡ãŒãžããã«ãããŸãã ãã«ããæåãããšã[ãããã€]ãã¿ã³ãæå¹ã«ãªãããœãããŠã§ã¢ãçŽæ¥ãããã€ã§ããŸãã

ãããã€ãäœæããããã€ã³ã°ã¬ã¹ãæ§æããããã·ãŒã¯ã¬ãããæ°žç¶ããªã¥ãŒã èŠæ±ãªã©ãä»»æã® Kubernetes èŠçŽ ãã¢ã¿ããã§ããŸãã
ãã«ããå¿ èŠãªå Žåã¯ãããã§è©³çްæ å ±ãèŠã€ããããšãã§ããŸã: https://docs.harpoon.io/en/latest/usage.htmlÂ
次ã®ã¹ããã
ããŒããŒã³ ããã«ãŒæ¡åŒµæ©èœã䜿çšãããšãKubernetes ã¯ã©ã¹ã¿ãŒã®ããããžã§ãã³ã°ãšç®¡çã容æã«ãªããŸãã ãœãããŠã§ã¢ã Kubernetes ã«èŠèŠçã«ãããã€ããã³ãŒããæ§æãèšè¿°ããããšãªãæ§æã§ããŸãã Docker Desktop ãšçŽæ¥çµ±åããããšã§ãDevOps ããŒã ã YAMLããã«ã ãã£ãŒãããŸã㯠Kubernetes ã®å°éç¥èããªããŠããã¯ã©ã¹ã¿ãŒãåçã«éå§ããŠç¶æããããšã容æã«ãªããŸãã
ããŒããŒã³ããã«ãŒæ¡åŒµæ©èœ ãèªåã§ãã§ãã¯ããŠãã ãã!