ãã®æçš¿ã¯ãKubernetes ã§ã®ã¢ããªã±ãŒã·ã§ã³éçºã OpenShift ã§ã®ãã®ãããªéçºã®è©³çŽ°ã«ã€ããŠãåœç€Ÿã®ã¹ã¿ãããã¯ã©ã€ã¢ã³ããšããªãã®æ°ã®äŒè©±ãè¡ã£ãããã«æžãããŸããã
ç§ãã¡ã¯éåžžãKubernetes ã¯åãªã Kubernetes ã§ãããOpenShift ã¯ãã§ã« Microsoft AKS ã Amazon EKS ã®ãã㪠Kubernetes ãã©ãããã©ãŒã ã§ãããšãã仮説ããå§ããŸãã ãããã®ãã©ãããã©ãŒã ã«ã¯ãããããç¹å®ã®å¯Ÿè±¡ãŠãŒã¶ãŒã«çŠç¹ãåœãŠãç¬èªã®å©ç¹ããããŸãã ãã®åŸãäŒè©±ã¯ãã§ã«ç¹å®ã®ãã©ãããã©ãŒã ã®é·æãšçæã®æ¯èŒã«æµããŠããŸãã
äžè¬çã«ãç§ãã¡ã¯ãã®èšäºã次ã®ãããªçµè«ã§æžãããšèããŠããŸããããOpenShift äžã§ããAKS äžã§ããEKS äžã§ããã«ã¹ã¿ã Kubernetes äžã§ããã©ã® Kubernetes äžã§ããã³ãŒããã©ãã§å®è¡ãããã¯é¢ä¿ãããŸããã (ç¥ããŠKUKãšåŒã³ãŸã) ãããããããããæ¬åœã«ã·ã³ãã«ãªãã§ããã
次ã«ãæãåçŽãªãHello Worldãã䜿çšããŠãCMC ãš Red Hat OpenShift Container Platform (以äžãOCP ãŸãã¯åã« OpenShift) ã®å ±éç¹ãšçžéç¹ã瀺ãããšãèšç»ããŸããã
ãããããã®èšäºãæžããŠãããã¡ã«ãç§ãã¡ã¯é·ãé OpenShift ã䜿çšããããšã«æ £ããŠãããããOpenShift ãã©ã®ããã«æé·ããåãªã Kubernetes ãã£ã¹ããªãã¥ãŒã·ã§ã³ãã¯ããã«è¶ ããçŽ æŽããããã©ãããã©ãŒã ã«å€ãã£ãã®ããå šãç解ããŠããªãã£ãããšãããããŸããã ç§ãã¡ã¯ OpenShift ã®æç床ãšã·ã³ãã«ããåœç¶ã®ããšãšèãããã®çŽ æŽããããèŠå€±ããã¡ã§ãã
äžè¬ã«ãç©æ¥µçã«æãæ¹ããã¹ãæãæ¥ãŸãããããã§ãKUK ãš OpenShift ã§ã®ãHello Worldãã®ã³ããã·ã§ãã³ã°ã段éçã«æ¯èŒããå¯èœãªéã客芳çã«æ¯èŒããŠã¿ãŸã (ãŸããå人çãªãã®ãæã
瀺ãããšãé€ããŠ)äž»é¡ã«å¯Ÿããæ
床ïŒã ãã®åé¡ã«é¢ããçŽç²ã«äž»èŠ³çãªæèŠã«èå³ãããå Žåã¯ãèªãã§ãã ããã
ã¯ã©ã¹ã¿ãŒ
ãããã£ãŠããHello Worldãã«ã¯ã¯ã©ã¹ã¿ãŒãå¿
èŠã§ãã ãµãŒããŒãã¬ãžã¹ããªããããã¯ãŒã¯ãããŒã¿è»¢éãªã©ã®è²»çšãæ¯æããªãããã«ããããªã㯠ã¯ã©ãŠãã«ã¯ãããŒããšèšããŸãããã ãããã£ãŠãåçŽãª XNUMX ããŒã ã¯ã©ã¹ã¿ãŒãéžæããŸãã
KUK-eã§ã®çµã¿ç«ãŠ
ããã§ã¯è¡ããŸãããã
ã¹ããã 1 â ã³ã³ããã€ã¡ãŒãžãæ§ç¯ãã
ãŸãã¯ãHello Worldãã minikube ã«ãããã€ããŸãããã ããã«ã¯ä»¥äžãå¿ èŠã«ãªããŸãã
- 1.Dockerãã€ã³ã¹ããŒã«ãããŠããŸãã
- 2. Git ãã€ã³ã¹ããŒã«ããŸããã
- 3. Maven ãã€ã³ã¹ããŒã«ããŸãã (å®éããã®ãããžã§ã¯ãã§ã¯ mvnw ãã€ããªã䜿çšããŠãããããããããªããŠãåé¡ãããŸãã)ã
- 4. å®éã«ã¯ããœãŒã¹èªäœãã€ãŸããªããžããªã®ã¯ããŒã³
github.com/gcolman/quarkus-hello-world.git
æåã®ã¹ãããã¯ãQuarkus ãããžã§ã¯ããäœæããããšã§ãã Quarkus.io ã䜿çšããããšããªããŠãå¿é ããå¿ èŠã¯ãããŸãããç°¡åã§ãã ãããžã§ã¯ãã§äœ¿çšããã³ã³ããŒãã³ã (RestEasyãHibernateãAmazon SQSãCamel ãªã©) ãéžæããã ãã§ãQuarkus èªäœããŠãŒã¶ãŒã®é¢äžãªãã« Maven ã¢ãŒãã¿ã€ããæ§æãããã¹ãŠã github ã«é 眮ããŸãã ã€ãŸããæåéãããŠã¹ã XNUMX åã¯ãªãã¯ããã ãã§å®äºããŸãã ãããç§ãã¡ãQuarkusãæããçç±ã§ãã
ãHello Worldããã³ã³ãã㌠ã€ã¡ãŒãžã«æ§ç¯ããæãç°¡åãªæ¹æ³ã¯ãå¿ èŠãªäœæ¥ããã¹ãŠå®è¡ãã Docker çšã® quarkus-maven æ¡åŒµæ©èœã䜿çšããããšã§ãã Quarkus ã®ç»å Žã«ãããããã¯éåžžã«ç°¡åãã€ã·ã³ãã«ã«ãªããŸãããcontainer-image-docker æ¡åŒµæ©èœãè¿œå ãããšãMaven ã³ãã³ãã䜿çšããŠã€ã¡ãŒãžãäœæã§ããããã«ãªããŸãã
./mvnw quarkus:add-extension -Dextensions=âcontainer-image-dockerâ
æåŸã«ãMaven ã䜿çšããŠã€ã¡ãŒãžãæ§ç¯ããŸãã ãã®çµæããœãŒã¹ ã³ãŒãã¯æ¢è£œã®ã³ã³ãã㌠ã€ã¡ãŒãžã«ãªããã³ã³ãã㌠ã©ã³ã¿ã€ã ã§ãã§ã«å®è¡ã§ããããã«ãªããŸãã
./mvnw -X clean package -Dquarkus.container-image.build=true
ããã§ãdocker run ã³ãã³ãã䜿çšããŠã³ã³ãããŒãèµ·åãããµãŒãã¹ãããŒã 8080 ã«ãããã³ã°ããŠã¢ã¯ã»ã¹ã§ããããã«ãªããŸãã
docker run -i â rm -p 8080:8080 gcolman/quarkus-hello-world
ã³ã³ãã㌠ã€ã³ã¹ã¿ã³ã¹ãèµ·åããããããšã¯ãµãŒãã¹ãå®è¡ãããŠããããšãcurl ã³ãã³ãã§ç¢ºèªããã ãã§ãã
ãããã£ãŠããã¹ãŠãããŸããããéåžžã«ç°¡åã§ã·ã³ãã«ã§ããã
ã¹ããã 2 - ã³ã³ãããã³ã³ãã ã€ã¡ãŒãž ãªããžããªã«éä¿¡ãã
ä»ã®ãšãããäœæããã€ã¡ãŒãžã¯ããŒã«ã«ã®ã³ã³ãã ã¹ãã¬ãŒãžã«ä¿åãããŠããŸãã ãã®ã€ã¡ãŒãžã COOK ç°å¢ã§äœ¿çšãããå Žåã¯ãä»ã®ãªããžããªã«é 眮ããå¿ èŠããããŸãã Kubernetes ã«ã¯ãã®ãããªæ©èœããªããããdockerhub ã䜿çšããŸãã ãªããªãã第äžã«ãããã¯ç¡æã§ããã第äºã«ãïŒã»ãŒïŒèª°ãããããè¡ãããã§ãã
ãããéåžžã«ç°¡åã§ãããã§å¿ èŠãªã®ã¯ dockerhub ã¢ã«ãŠã³ãã®ã¿ã§ãã
ããã§ãdockerhub ãã€ã³ã¹ããŒã«ããã€ã¡ãŒãžãããã«éä¿¡ããŸãã
ã¹ããã 3 - Kubernetes ãéå§ãã
ãHello Worldããå®è¡ããããã« Kubernetes æ§æããŸãšããæ¹æ³ã¯ãããããããŸãããç§ãã¡ã¯ãã®ãããªäººéãªã®ã§ããã®ãã¡ã®æãåçŽãªæ¹æ³ã䜿çšããŸãã
ãŸããminikube ã¯ã©ã¹ã¿ãŒãèµ·åããŸãããã
minikube start
ã¹ããã 4 - ã³ã³ãã ã€ã¡ãŒãžã®ãããã€
次ã«ãã³ãŒããšã³ã³ãã㌠ã€ã¡ãŒãžã kubernetes æ§æã«å€æããå¿ èŠããããŸãã ã€ãŸããdockerhub äžã®ã³ã³ãã㌠ã€ã¡ãŒãžãæãããããšãããã€ã¡ã³ãå®çŸ©ãå¿ èŠã§ãã ãããè¡ãæãç°¡åãªæ¹æ³ã® XNUMX ã€ã¯ãã€ã¡ãŒãžãæå®ã㊠createdeployment ã³ãã³ããå®è¡ããããšã§ãã
kubectl create deployment hello-quarkus â image =gcolman/quarkus-hello-world:1.0.0-SNAPSHOT
ãã®ã³ãã³ãã䜿çšããŠãCOO ã«ãã³ã³ãã㌠ã€ã¡ãŒãžã®ãããä»æ§ãå«ããããã€ã¡ã³ãæ§æãäœæããããã«æ瀺ããŸããã ãã®ã³ãã³ãã¯ããã®æ§æã minikube ã¯ã©ã¹ã¿ãŒã«ãé©çšããã³ã³ãã㌠ã€ã¡ãŒãžãããŠã³ããŒãããŠã¯ã©ã¹ã¿ãŒäžã§ããããå®è¡ãããããã€ã¡ã³ããäœæããŸãã
ã¹ããã 5 - åœç€Ÿã®ãµãŒãã¹ãžã®ãªãŒãã³ã¢ã¯ã»ã¹
ã³ã³ãã㌠ã€ã¡ãŒãžããããã€ããã®ã§ããã® Restful ãµãŒãã¹ãžã®å€éšã¢ã¯ã»ã¹ãæ§æããæ¹æ³ãèããŸããå®éããã®ãµãŒãã¹ã¯ã³ãŒãã§ããã°ã©ã ãããŠããŸãã
ããã«ã¯ããããã®æ¹æ³ããããŸãã ããšãã°ãexpose ã³ãã³ãã䜿çšããŠããµãŒãã¹ããšã³ããã€ã³ããªã©ã®é©å㪠Kubernetes ã³ã³ããŒãã³ããèªåçã«äœæã§ããŸãã å®éã«ã¯ãããã¯ããããã€ã¡ã³ã ãªããžã§ã¯ãã«å¯Ÿã㊠Expose ã³ãã³ããå®è¡ããããšã§è¡ãããšã«ãªããŸãã
kubectl expose deployment hello-quarkus â type=NodePort â port=8080
ããã§ã¯ãexpose ã³ãã³ãã®ã-typeããªãã·ã§ã³ã«æ³šç®ããŠã¿ãŸãããã
ãµãŒãã¹ã®å®è¡ã«å¿ èŠãªã³ã³ããŒãã³ããå ¬éããŠäœæããå Žåãç¹ã«ããœãããŠã§ã¢å®çŸ©ãããã¯ãŒã¯å ã«ãã hello-quarkus ãµãŒãã¹ã«å€éšããæ¥ç¶ã§ããå¿ èŠããããŸãã ãããŠãã©ã¡ãŒã¿ type ããã«ãããããŒã ãã©ã³ãµãŒãªã©ãäœæããŠæ¥ç¶ãããã®ãããã¯ãŒã¯ã«ãã©ãã£ãã¯ãã«ãŒãã£ã³ã°ã§ããããã«ãªããŸãã
ããšãã°ãæžãããš type=ããŒããã©ã³ãµãŒãKubernetes ã¯ã©ã¹ã¿ãŒã«æ¥ç¶ããããã«ãããªã㯠ã¯ã©ãŠã ããŒã ãã©ã³ãµãŒãèªåçã«åæåããŸãã ããã¯ãã¡ããçŽ æŽãããããšã§ããããã®ãããªæ§æã¯ç¹å®ã®ãããªã㯠ã¯ã©ãŠãã«å¯æ¥ã«çµã³ä»ããããç°ãªãç°å¢ã«ãã Kubernetes ã€ã³ã¹ã¿ã³ã¹éã§è»¢éããã®ãããå°é£ã«ãªãããšãç解ããå¿ èŠããããŸãã
ç§ãã¡ã®äŸã§ã¯ type=ããŒãããŒãã€ãŸãããµãŒãã¹ã¯ããŒãã® IP ã¢ãã¬ã¹ãšããŒãçªå·ã«ãã£ãŠã¢ã¯ã»ã¹ãããŸãã ãã®ãªãã·ã§ã³ã䜿çšãããšããããªã㯠ã¯ã©ãŠãã䜿çšããªããŠãæžã¿ãŸãããããã€ãã®è¿œå æé ãå¿ èŠã«ãªããŸãã ãŸããç¬èªã®ããŒã ãã©ã³ãµãŒãå¿ èŠãªã®ã§ãNGINX ããŒã ãã©ã³ãµãŒãã¯ã©ã¹ã¿ãŒã«ãããã€ããŸãã
ã¹ããã 6 â ããŒããã©ã³ãµãŒãã€ã³ã¹ããŒã«ãã
minikube ã«ã¯ãã€ã³ã°ã¬ã¹ ã³ã³ãããŒã©ãŒãªã©ãå€éšã¢ã¯ã»ã¹ã«å¿ èŠãªã³ã³ããŒãã³ããç°¡åã«äœæã§ãããã©ãããã©ãŒã æ©èœãå€æ°ãããŸãã Minikube 㯠Nginx Ingress ã³ã³ãããŒã©ãŒã«ãã³ãã«ãããŠãããå¿ èŠãªã®ã¯ãããæå¹ã«ããŠèšå®ããããšã ãã§ãã
minikube addons enable ingress
ããã§ããã£ã XNUMX ã€ã®ã³ãã³ãã§ãminikube ã¯ã©ã¹ã¿ãŒå ã§åäœãã Nginx Ingress ã³ã³ãããŒã©ãŒãäœæããŸãã
ingress-nginx-controller-69ccf5d9d8-j5gs9 1/1 Running 1 33m
ã¹ããã 7 - ã€ã³ã°ã¬ã¹ãã»ããã¢ãããã
次ã«ãHello-quarkus ãªã¯ãšã¹ããåãå ¥ããããã« Nginx Ingress ã³ã³ãããŒã©ãŒãæ§æããå¿ èŠããããŸãã
æåŸã«ããã®æ§æãé©çšããå¿ èŠããããŸãã
kubectl apply -f ingress.yml
ããããã¹ãŠãç¬èªã®ãã·ã³ã§å®è¡ããŠãããããããŒãã® IP ã¢ãã¬ã¹ã /etc/hosts ãã¡ã€ã«ã«è¿œå ããŠãminikube ãžã® http ãªã¯ãšã¹ãã NGINX ããŒã ãã©ã³ãµãŒã«éä¿¡ããã ãã§ãã
192.168.99.100 hello-quarkus.info
ããã§ãminikube ãµãŒãã¹ã Nginx Ingress ã³ã³ãããŒã©ãŒãä»ããŠå€éšããå©çšã§ããããã«ãªããŸããã
ãŸããããã¯ç°¡åã§ããã? ãããšãããã»ã©ã§ã¯ãªãã§ããããïŒ
OpenShift ã§å®è¡ (Code Ready Containers)
ããã§ã¯ãRed Hat OpenShift Container Platform (OCP) ã§ãã¹ãŠãã©ã®ããã«è¡ãããããèŠãŠã¿ãŸãããã
minikube ãšåæ§ã«ãCode Ready Containers (CRC) ã®åœ¢åŒã§ã·ã³ã°ã«ããŒã OpenShift ã¯ã©ã¹ã¿ãŒèšèšãéžæããŸãã 以å㯠minishift ãšåŒã°ããOpenShift Origin ãããžã§ã¯ãã«åºã¥ããŠããŸããããçŸåšã¯ CRC ãšãªããRed Hat ã® OpenShift Container Platform äžã«æ§ç¯ãããŠããŸãã
ããã§ã¯ãç³ãèš³ãããŸãããããOpenShift ã¯çŽ æŽãããã§ã!ããšèšããããåŸãŸããã
åœåãOpenShift ã§ã®éçºã¯ Kubernetes ã§ã®éçºãšå€ãããªããšæžãããšèããŠããŸããã ãããŠå®éããã®éãã§ãã ãããããã®èšäºãæžããŠããéçšã§ãOpenShift ããªãå Žåã¯ã©ãã ãå€ãã®äœåãªåäœãããªããã°ãªããªãããæãåºããŸãããã ãããããOpenShift ã¯çŽ æŽãããã®ã§ãã ç§ãã¡ã¯ããã¹ãŠãç°¡åã«å®äºããããšããšãŠãæ°ã«å ¥ã£ãŠããŸããminikube ãšæ¯èŒããŠãOpenShift äžã§ã®ãµã³ãã«ã®ãããã€ãšå®è¡ãããã«ç°¡åã§ããããããã®èšäºãæžããã£ããã«ãªããŸããã
ããã»ã¹ã確èªããŠãäœãããå¿ èŠãããããèŠãŠã¿ãŸãããã
ãããã£ãŠãminikube ã®äŸã§ã¯ãDocker ããå§ããŸããâŠåŸ ãŠããããã·ã³ã« Docker ãã€ã³ã¹ããŒã«ããå¿ èŠã¯ãããŸããã
ããŒã«ã« git ãå¿
èŠãããŸããã
ãããŠMavenã¯å¿
èŠãããŸããã
ãŸããã³ã³ãã㌠ã€ã¡ãŒãžãæåã§äœæããå¿
èŠããããŸããã
ãŸããã³ã³ãã㌠ã€ã¡ãŒãžã®ãªããžããªãæ¢ãå¿
èŠããããŸããã
ãŸããã€ã³ã°ã¬ã¹ ã³ã³ãããŒã©ãŒãã€ã³ã¹ããŒã«ããå¿
èŠããããŸããã
ãŸããã€ã³ã°ã¬ã¹ãèšå®ããå¿
èŠããããŸããã
ããããŸããïŒ OpenShift äžã§ã¢ããªã±ãŒã·ã§ã³ããããã€ããŠå®è¡ããã«ã¯ãäžèšã®ããããå¿ èŠãããŸããã ãããŠãããã»ã¹èªäœã¯æ¬¡ã®ãšããã§ãã
ã¹ããã 1 â OpenShift ã¯ã©ã¹ã¿ãŒã®èµ·å
Red Hat ã® Code Ready Containers ã䜿çšããŠããŸããããã¯æ¬è³ªçã«ã¯ Minikube ãšåãã§ãããå®å šãªåäžããŒã Openshift ã¯ã©ã¹ã¿ãŒã®ã¿ã䜿çšããŸãã
crc start
ã¹ããã 2 - ã¢ããªã±ãŒã·ã§ã³ããã«ãã㊠OpenShift ã¯ã©ã¹ã¿ãŒã«ãããã€ãã
ãã®æ®µéã§ãOpenShift ã®ã·ã³ãã«ããšå©äŸ¿æ§ããã®æ å ã®äžã§æããã«ãªããŸãã ãã¹ãŠã® Kubernetes ãã£ã¹ããªãã¥ãŒã·ã§ã³ãšåæ§ãã¯ã©ã¹ã¿ãŒå ã§ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããæ¹æ³ã¯æ°å€ããããŸãã ãããŠãKUK ã®å Žåãšåæ§ã«ãç¹ã«æãã·ã³ãã«ãªãã®ãéžæããŸãã
OpenShift ã¯åžžã«ãã³ã³ããåãããã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããã³å®è¡ããããã®ãã©ãããã©ãŒã ãšããŠæ§ç¯ãããŠããŸããã ã³ã³ããã®æ§ç¯ã¯åžžã«ãã®ãã©ãããã©ãŒã ã®äžå¯æ¬ ãªéšåã§ããããã察å¿ããã¿ã¹ã¯çšã«è¿œå ã® Kubernetes ãªãœãŒã¹ã倧éã«ãããŸãã
OpenShift ã® Source 2 Image (S2I) ããã»ã¹ã䜿çšããŸãããã®ããã»ã¹ã«ã¯ããœãŒã¹ (ã³ãŒããŸãã¯ãã€ããª) ãååŸããŠãOpenShift ã¯ã©ã¹ã¿ãŒäžã§å®è¡ãããã³ã³ããåãããã€ã¡ãŒãžã«å€æããããã€ãã®ç°ãªãæ¹æ³ããããŸãã
ãããè¡ãã«ã¯ã次㮠XNUMX ã€ã®ããšãå¿ èŠã§ãã
- git ãªããžããªå ã®ãœãŒã¹ ã³ãŒã
- ã¢ã»ã³ããªã®å®è¡ã«åºã¥ããŠãã«ã㌠ã€ã¡ãŒãžã
ãã®ãããªã€ã¡ãŒãžã¯ Red Hat ãšã³ãã¥ããã£ã®äž¡æ¹ã«ãã£ãŠä¿å®ãããŠãããæ°å€ããããŸããç§ã¯ Java ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããŠããã®ã§ãOpenJDK ã€ã¡ãŒãžã䜿çšããŸãã
S2I ãã«ãã¯ãOpenShift Developer ã°ã©ãã£ã«ã« ã³ã³ãœãŒã«ãšã³ãã³ãã©ã€ã³ã®äž¡æ¹ããå®è¡ã§ããŸãã new-app ã³ãã³ãã䜿çšããŠããã«ã㌠ã€ã¡ãŒãžãšãœãŒã¹ ã³ãŒããååŸããå Žæãæ瀺ããŸãã
oc new-app registry.access.redhat.com/ubi8/openjdk-11:latest~https://github.com/gcolman/quarkus-hello-world.git
以äžã§ãã¢ããªã±ãŒã·ã§ã³ãäœæãããŸããã ãã®éãS2I ããã»ã¹ã¯æ¬¡ã®ããšãå®è¡ããŸããã
- ã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ã«é¢é£ããããããçš®é¡ã®ãµãŒãã¹ build-pod ãäœæããŸããã
- OpenShift ãã«ãæ§æãäœæããŸããã
- ãã«ã㌠ã€ã¡ãŒãžã OpenShift å éš Docker ã¬ãžã¹ããªã«ããŠã³ããŒãããŸããã
- ãHello WorldããããŒã«ã« ãªããžããªã«ã¯ããŒã³ããŸããã
- ããã« maven pom ãããããšã«æ°ã¥ããmaven ã§ã¢ããªãã³ã³ãã€ã«ããŸããã
- ã³ã³ãã€ã«ããã Java ã¢ããªã±ãŒã·ã§ã³ãå«ãæ°ããã³ã³ãã㌠ã€ã¡ãŒãžãäœæãããã®ã€ã¡ãŒãžãå éšã³ã³ãã㌠ã¬ãžã¹ããªã«é 眮ããŸãã
- ãããããµãŒãã¹ãªã©ã®ä»æ§ãå«ã Kubernetes ãããã€ã¡ã³ããäœæããŸããã
- ã³ã³ããã€ã¡ãŒãžã®ãããã€ãéå§ããŸããã
- ãµãŒãã¹ build-pod ãåé€ããŸããã
ãã®ãªã¹ãã«ã¯ããããã®é ç®ããããŸãããéèŠãªã®ã¯ããã«ãå šäœã OpenShift å ã§æä»çã«è¡ãããå éš Docker ã¬ãžã¹ããªãŒã OpenShift å ã«ããããã«ã ããã»ã¹ã§ãã¹ãŠã® Kubernetes ã³ã³ããŒãã³ããäœæãããã¯ã©ã¹ã¿ãŒå ã§å®è¡ããããšããããšã§ãã
ã³ã³ãœãŒã«ã§ S2I ã®èµ·åãèŠèŠçã«ç£èŠãããšããã«ãäžã«ãã«ã ããããã©ã®ããã«èµ·åããããã確èªã§ããŸãã
次ã«ããã«ã㌠ãããã®ãã°ãèŠãŠã¿ãŸãããããŸããMaven ãã©ã®ããã«ãžã§ããå®è¡ããäŸåé¢ä¿ãããŠã³ããŒãã㊠Java ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ãããã瀺ããŸãã
Maven ã®ãã«ããå®äºãããšãã³ã³ãã㌠ã€ã¡ãŒãžã®ãã«ããéå§ããããã®ãã«ããããã€ã¡ãŒãžãå éšãªããžããªã«éä¿¡ãããŸãã
以äžã§çµã¿ç«ãŠå·¥çšã¯å®äºã§ãã 次ã«ãã¢ããªã±ãŒã·ã§ã³ã®ããããšãµãŒãã¹ãã¯ã©ã¹ã¿ãŒå ã§éå§ãããŠããããšã確èªããŸãããã
oc get service
ããã ãã§ãã ãããXNUMXããŒã ã ãã ç§ãã¡ãããªããã°ãªããªãã®ã¯ããã®ãµãŒãã¹ãå€éšããã¢ã¯ã»ã¹ã§ããããã«å ¬éããããšã ãã§ãã
ã¹ããã 3 â å€éšããã®ã¢ã¯ã»ã¹ã®ããã«ãµãŒãã¹ãå ¬éãã
KUC ã®å Žåãšåæ§ãOpenShift ãã©ãããã©ãŒã äžã®ãHello Worldãã«ããå€éšãã©ãã£ãã¯ãã¯ã©ã¹ã¿ãŒå ã®ãµãŒãã¹ã«éä¿¡ããã«ãŒã¿ãŒãå¿ èŠã§ãã OpenShift ã䜿çšãããšããããéåžžã«ç°¡åã«ãªããŸãã ãŸããHAProxy ã«ãŒãã£ã³ã° ã³ã³ããŒãã³ãã¯ããã©ã«ãã§ã¯ã©ã¹ã¿ãŒã«ã€ã³ã¹ããŒã«ãããŸã (åã NGINX ã«å€æŽã§ããŸã)ã 第 XNUMX ã«ãRoutes ãšåŒã°ããç¹å¥ã§é«åºŠã«ã«ã¹ã¿ãã€ãºå¯èœãªãªãœãŒã¹ããããå€ãè¯ã Kubernetes ã® Ingress ãªããžã§ã¯ãã«äŒŒãŠããŸã (å®éãOpenShift ã® Routes 㯠Ingress ãªããžã§ã¯ãã®èšèšã«å€§ããªåœ±é¿ãäžããŠãããçŸåš OpenShift ã§äœ¿çšã§ããŸã)ã ããã®ä»ã®ã»ãšãã©ãã¹ãŠã®ã±ãŒã¹ã§ã¯ãè¿œå ã®èšå®ãè¡ããªããŠããæšæºã® Route ã§ååã§ãã
ãHello Worldãã®ã«ãŒãã£ã³ã°å¯èœãª FQDN ãäœæããã«ã¯ (ã¯ããOpenShiift ã«ã¯ãµãŒãã¹åã«ããã«ãŒãã£ã³ã°çšã®ç¬èªã® DNS ããããŸã)ãåçŽã«ãµãŒãã¹ãå ¬éããŸãã
oc expose service quarkus-hello-world
æ°ããäœæãããã«ãŒããèŠããšãFQDN ãšãã®ä»ã®ã«ãŒãã£ã³ã°æ å ±ãèŠã€ãããŸãã
oc get route
æåŸã«ããã©ãŠã¶ãããµãŒãã¹ã«ã¢ã¯ã»ã¹ããŸãã
ã§ãä»ã§ã¯æ¬åœã«ç°¡åã«ãªããŸããïŒ
ç§ãã¡ã¯ Kubernetes ãšãã®ãã¯ãããžã§å®è¡ã§ãããã¹ãŠã®æ©èœãæããŠãããã·ã³ãã«ããšè»œãã倧奜ãã§ãã Kubernetes ã¯ãåæ£åã®ã¹ã±ãŒã©ãã«ãªã³ã³ãããä¿¡ããããªãã»ã©ç°¡åã«æäœã§ããããã«èšèšãããŠããŸããããã®ã·ã³ãã«ãã¯ãä»æ¥ã¢ããªã±ãŒã·ã§ã³ãéçšç°å¢ã«å°å ¥ããã«ã¯ååã§ã¯ãããŸããã ãã㧠OpenShift ãç»å ŽããŸããOpenShift ã¯æ代ã«å¯Ÿå¿ããäž»ã«éçºè ã«çŠç¹ãåœãŠã Kubernetes ãæäŸããŸãã S2IãODIãéçºè ããŒã¿ã«ãOpenShift Operator FrameworkãIDE çµ±åãéçºè ã«ã¿ãã°ãHelm çµ±åãã¢ãã¿ãªã³ã°ãªã©ã®ããŒã«ã®äœæãå«ããOpenShift ãã©ãããã©ãŒã ãéçºè å°çšã«èª¿æŽããããã«å€ãã®åªåãè²»ããããŠããŸããã
ãã®èšäºãèå³æ·±ããã圹ã«ç«ãŠã°å¹žãã§ãã ããŒã¿ã«ã§ã¯ãOpenShift ãã©ãããã©ãŒã ã§ã®éçºã«åœ¹ç«ã€è¿œå ã®ãªãœãŒã¹ãè³æããã®ä»ã®ãã®ãèŠã€ããããšãã§ããŸãã
åºæïŒ habr.com