25 幎åãJava ã¯ããã°ã©ãã³ã°ã®äž»æµã«å
¥ããæçµçã«ã¯ã¢ããªã±ãŒã·ã§ã³ ã¹ã¿ãã¯ãæ§ç¯ããããã®äžå¿èŠçŽ ã® XNUMX ã€ã«ãªããŸããã ãããçŸåšãé·å¹Žã«ããã£ãŠ Java ãæçšããŠããå€ãã®äººã
ãçµç¹ãããã©ãããã©ãŒã ãžã®ç§»è¡ããŸãã¯ç§»è¡ã®æ€èšã«è¿œãããŠããŸãã
æ®å¿µãªãããKubernetes ã®åŠç¿æ²ç·ã¯æ¥åŸé
ã§ãããJava ããã°ã©ããŒãæ
£ã芪ããã§ããéçºããã»ã¹ã«å¥ã®æäœã¬ã€ã€ãŒãå°å
¥ãããŸãã ä»æ¥ã¯ãã®äœ¿ãæ¹ããäŒãããŸã
åŸæ¥ã® Java éçºããã»ã¹
åŸæ¥ã®éçºããã»ã¹
ç±³ã 1. åŸæ¥ã® Java éçºããã»ã¹ã
ã¯ã©ãŠãåãã® Java éçºããã»ã¹
ã¯ã©ãŠã ã¢ããªã±ãŒã·ã§ã³ãKubernetes ã«ç§»è¡ããå Žåã
ã¯ã©ãŠããžã®ç§»è¡ã«ãããåŸæ¥ã® Java éçºããã»ã¹ã®å€å®¹ãå³ã«ç€ºããŸãã 2.
ç±³ã 2. ã¯ã©ãŠãçšã® Java éçºããã»ã¹ã
Eclipse JKube
Kubernetes ãžã®ç§»è¡ã«ãããéçºããã»ã¹ã«å¥ã®éçšã¬ã€ã€ãŒãè¿œå ãããŸããå€ãã®éçºè
ã¯ãã¢ããªã±ãŒã·ã§ã³ ããžãã¯ã®ãããã€æ¹æ³ã§ã¯ãªããäžæ žãšãªãäœæ¥ (ã¢ããªã±ãŒã·ã§ã³ ããžãã¯) ã«éäžãããããããã®ããšã«äžå®ãæããŠããŸãã ããã§åé¡ãçºçããŸãã
ãã®èšäºã®æ®ãã®éšåã§ã¯ãEclipse JKube ãš Kubernetes Maven ãã©ã°ã€ã³ã䜿çšããŠãKubernetes ç°å¢ã§ã® Java éçºããã»ã¹ãç°¡çŽ åããæ¹æ³ã説æããŸãã
Eclipse JKube ã䜿çšããã¯ã©ãŠãéçºããã»ã¹
å³ 2 ã«ç€ºãããã«ãEclipse JKube ãš Kubernetes Maven ãã©ã°ã€ã³ãå°å ¥ããŠãå³ 3 ãã¯ã©ãŠãçšã«å°ãå€æŽãã Java éçºã¹ããŒã ãèããŠã¿ãŸãããã XNUMX.
ç±³ã 3. Eclipse JKube ã䜿çšããã¯ã©ãŠãçšã® Java éçºããã»ã¹ã
ã芧ã®ãšãããããã§ã¯ãKubernetes ããã³ã³ã³ãããŒãšå¯Ÿè©±ããããã®ãã¹ãŠã®æäœ (å³ã®èµ€ã§åŒ·èª¿è¡šç€ºãããŠãã) ããè¡šã«ãªã¹ããããŠããããã©ã«ãã® Eclipse JKube ç®æšã¿ã¹ã¯ã«çœ®ãæããããŸãã 1.
ããŒãã«1. Eclipse JKube ã®ããã©ã«ã ã¿ã¹ã¯ã
ã¿ã¹ã¯
ã¹ããŒãž
説æ
PRE_INTEGRATION_TEST
Docker ã€ã¡ãŒãžã®æ§ç¯
INSTALL
Docker ã€ã¡ãŒãžãã¬ãžã¹ããªã«ã¢ããããŒããã
PROCESS_RESOURCES
K8 ãããã§ã¹ãã®çæ
ã³ã³ãã€ã«
çæããããããã§ã¹ãã K8 ã«é©çšãã
å°å
¥ã解é€ãã
k8s:apply ããã³ k8s:deploy ã䜿çšããŠãããã€ããã K8s ãªãœãŒã¹ã®åé€
泚æïŒ ã¿ã¹ã¯ã§ãããã®ç¬èªã®ããã©ã«ãã䜿çšããããªãå Žåã¯ãEclipse JKube ãæåã§èšå®ã§ããŸããããã¯ãEclipse JKube ã次ã®ãããªæ§æããµããŒãããŠããããã§ãã
次ã«ãã¢ããªã±ãŒã·ã§ã³ãæäœãããšãã« Eclipse JKube ãš Kubernetes Maven ãã©ã°ã€ã³ã䜿çšããäŸãèŠãŠã¿ãŸãããã
Eclipse JKube ã䜿çšãã Kubernetes ãžã® Java ã¢ããªã±ãŒã·ã§ã³ã®ãããã€
ãã®äŸã§ã¯ãåçŽãª Java ã¢ããªã±ãŒã·ã§ã³ãã¯ã©ã¹ã¿ãŒã«ãããã€ããŸãã
ç§ãã¡ã䜿çšããã¢ããªã±ãŒã·ã§ã³ã®äŸãšããŠã¯ã
~/work/repos/eclipse-jkube-demo-project : $ curl localhost:8080/random | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 45 0 45 0 0 818 0 --:--:-- --:--:-- --:--:-- 818
{
"id": "e80a4d10-c79b-4b9a-aaac-7c286cb37f3c"
}
ã¹ããã 1. Kubernetes Maven ãã©ã°ã€ã³ãããŠã³ããŒããã
Kubernetes Maven ãã©ã°ã€ã³ã¯ãªããžããªã«ãããŸã
<plugin>
<groupId>org.eclipse.jkube</groupId>
<artifactId>kubernetes-maven-plugin</artifactId>
<version>${jkube.version}</version>
</plugin>
çŽç²ãª Kubernetes ã®ä»£ããã« OpenShift ã䜿çšãããå Žåãpom.xml ã¯æ¬¡ã®ããã«å€æŽãããŸãã
<plugin>
<groupId>org.eclipse.jkube</groupId>
<artifactId>openshift-maven-plugin</artifactId>
<version>${jkube.version}</version>
</plugin>
ã¹ããã 2. Docker ã€ã¡ãŒãžããã«ããã
ã¢ããªã±ãŒã·ã§ã³ã® JAR ãã¡ã€ã«ã¯ mvn package ã³ãã³ãã䜿çšããŠãã«ãã§ãããã®åŸãmvn ãŽãŒã« ã¿ã¹ã¯ k8s:build ã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ã® Docker ã€ã¡ãŒãžããã«ãã§ããŸãã ãã®ããããã£ã§ããã©ã«ãã®ã€ã¡ãŒãžåããªãŒããŒã©ã€ãããŠããããšã«æ³šæããŠãã ããã
<jkube.generator.name>docker.io/rohankanojia/random-generator:${project.version}</jkube.generator.name>
ã€ã¡ãŒãžããã«ãããåã«ãDocker ããŒã¢ã³ãæ£ããå ¬éãããŠããããšã確èªããå¿ èŠããããŸãã ããã¯æ¬¡ã®ã³ãã³ãã§å®è¡ã§ããŸãã
$ eval $(minikube docker-env)
次ã«ã mvn k8s:build ã³ãã³ããå ¥åããŸããããã¯ãEclipse JKube ãã«ã ã¿ã¹ã¯ã䜿çšã㊠Docker ã€ã¡ãŒãžããã«ããããšãã«ç»é¢ã«è¡šç€ºãããå 容ã§ãã
~/work/repos/eclipse-jkube-demo-project : $ mvn k8s:build
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Building random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:build (default-cli) @ random-generator ---
[INFO] k8s: Running in Kubernetes mode
[INFO] k8s: Building Docker image in Kubernetes mode
[INFO] k8s: Running generator spring-boot
[INFO] k8s: spring-boot: Using Docker image quay.io/jkube/jkube-java-binary-s2i:0.0.7 as base / builder
[INFO] k8s: [docker.io/rohankanojia/random-generator:0.0.1] "spring-boot": Created docker-build.tar in 251 milliseconds
[INFO] k8s: [docker.io/rohankanojia/random-generator:0.0.1] "spring-boot": Built image sha256:a20e5
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.053 s
[INFO] Finished at: 2020-08-10T11:28:23+05:30
[INFO] ------------------------------------------------------------------------
~/work/repos/eclipse-jkube-demo-project : $
ã¹ããã 3. ã€ã¡ãŒãžã Docker ã¬ãžã¹ããªã«ã¢ããããŒããã
ããã·ã¥ ã¬ãžã¹ã㪠(ãã®å Žå㯠docker.io) ãæ§æã㊠Docker ã€ã¡ãŒãžãæ§ç¯ãããããã®ã€ã¡ãŒãžãã¬ãžã¹ããªã«éä¿¡ã§ããŸãã ããã¯ãEclipse JKube ã« mvn k8s:push ããã·ã¥ ã¿ã¹ã¯ã®å®è¡ãäŸé ŒããåŸã«è¡šç€ºãããå 容ã§ãã
~/work/repos/eclipse-jkube-demo-project : $ mvn k8s:push
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Building random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:push (default-cli) @ random-generator ---
[INFO] k8s: Running in Kubernetes mode
[INFO] k8s: Building Docker image in Kubernetes mode
[INFO] k8s: Running generator spring-boot
[INFO] k8s: spring-boot: Using Docker image quay.io/jkube/jkube-java-binary-s2i:0.0.7 as base / builder
[INFO] k8s: The push refers to repository [docker.io/rohankanojia/random-generator]
5dcd9556710f: Layer already exists
b7139ad07aa8: Layer already exists
b6f081e4b2b6: Layer already exists
d8e1f35641ac: Layer already exists
[INFO] k8s: 0.0.1: digest: sha256:9f9eda2a13b8cab1d2c9e474248500145fc09e2922fe3735692f9bda4c76002d size: 1162
[INFO] k8s: Pushed docker.io/rohankanojia/random-generator:0.0.1 in 7 seconds
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11.222 s
[INFO] Finished at: 2020-08-10T11:35:37+05:30
[INFO] ------------------------------------------------------------------------
~/work/repos/eclipse-jkube-demo-project : $
ã€ã¡ãŒãžãéä¿¡ããåŸããããã¬ãžã¹ããªã«å«ãŸããŠããããšã確èªããå¿ èŠããããŸãã ç§ãã¡ã®å Žåã¯ãå³ã«ç€ºãããã«ãåã« Docker Hub ã§ããã確èªããŸãã 4.
ç±³ã 4. ã¬ãžã¹ããªã«éä¿¡ãããã€ã¡ãŒãžã Docker Hub ã«è¡šç€ºãããŸããã
ã¹ããã 4. ã¢ããªã±ãŒã·ã§ã³ã® Kubernetes ãªãœãŒã¹ ãããã§ã¹ããçæãã
ã¢ããªã±ãŒã·ã§ã³ ã€ã¡ãŒãžãåéããã®ã§ã次㯠Kubernetes ãããã§ã¹ããäœæããå¿
èŠããããŸãã ãããè¡ãããã«ãEclipse JKube ã«ã¯ãåºç€ãšãªã Java ãã¬ãŒã ã¯ãŒã¯ã«åºã¥ããŠå³æ ŒãªãªãœãŒã¹ ãããã§ã¹ããçæããã¿ã¹ã¯ããããŸã (
ãã®äŸã§ã¯ããã¹ãŠããã®ãŸãŸã«ãããããEclipse JKube ã¯ããã©ã«ãã®ãããã€ã¡ã³ããš ClusterIP ã¿ã€ãã®ãµãŒãã¹ã®ãããã§ã¹ããçæããŸãã ãã®åŸããµãŒãã¹ ãããã§ã¹ããå€æŽããŠããµãŒãã¹ ã¿ã€ãã NodePort ã«å€æŽããŸãã 次ã®ããããã£ã䜿çšããŠããã©ã«ãã®åäœããªãŒããŒã©ã€ãã§ããŸãã
<jkube.enricher.jkube-service.type>NodePort</jkube.enricher.jkube-service.type>
Eclipse JKube ã« mvn k8s:resource ãªãœãŒã¹ ã¿ã¹ã¯ãå®è¡ããããäŸé ŒããåŸã®ç»é¢åºåã¯æ¬¡ã®ããã«ãªããŸãã
~/work/repos/eclipse-jkube-demo-project : $ mvn k8s:resource
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Building random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:resource (default-cli) @ random-generator ---
[INFO] k8s: Running generator spring-boot
[INFO] k8s: spring-boot: Using Docker image quay.io/jkube/jkube-java-binary-s2i:0.0.7 as base / builder
[INFO] k8s: jkube-controller: Adding a default Deployment
[INFO] k8s: jkube-service: Adding a default service 'random-generator' with ports [8080]
[INFO] k8s: jkube-healthcheck-spring-boot: Adding readiness probe on port 8080, path='/actuator/health', scheme='HTTP', with initial delay 10 seconds
[INFO] k8s: jkube-healthcheck-spring-boot: Adding liveness probe on port 8080, path='/actuator/health', scheme='HTTP', with initial delay 180 seconds
[INFO] k8s: jkube-revision-history: Adding revision history limit to 2
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.344 s
[INFO] Finished at: 2020-08-10T11:38:11+05:30
[INFO] ------------------------------------------------------------------------
~/work/repos/eclipse-jkube-demo-project : $ ls target/classes/META-INF/jkube/kubernetes
random-generator-deployment.yml random-generator-service.yml
~/work/repos/eclipse-jkube-demo-project : $ cat target/classes/META-INF/jkube/kubernetes/random-generator-deployment.yml | head -n10
---
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
jkube.io/git-url: [email protected]:rohanKanojia/eclipse-jkube-demo-project.git
jkube.io/git-commit: 1ef9ef2ef7a6fcbf8eb64c293f26f9c42d026512
jkube.io/git-branch: master
jkube.io/scm-url: https://github.com/spring-projects/spring-boot/spring-boot-starter-parent/random-generator
jkube.io/scm-tag: HEAD
~/work/repos/eclipse-jkube-demo-project : $
ã¹ããã 5. ã¢ããªã±ãŒã·ã§ã³ã Kubernetes ã¯ã©ã¹ã¿ãŒã«ãããã€ãã
ããã§ãã¢ããªã±ãŒã·ã§ã³ããããã€ããæºåããã¹ãŠæŽããŸãããã¢ããªã±ãŒã·ã§ã³ã®ã€ã¡ãŒãžãçæãããªãœãŒã¹ ãããã§ã¹ããèªåçã«çæããŸããã ããšã¯ãããããã¹ãŠ Kubernetes ã¯ã©ã¹ã¿ãŒã«é©çšããã ãã§ãã ã¢ããªã±ãŒã·ã§ã³ããããã€ããã«ã¯ããã¡ãã kubectl apply -f ã³ãã³ãã䜿çšã§ããŸããããã©ã°ã€ã³ããããå®è¡ã§ããŸãã ããã¯ãEclipse JKube ã« mvn k8s:apply apply ã¿ã¹ã¯ã®å®è¡ãäŸé ŒããåŸã«ç»é¢ã«è¡šç€ºãããå 容ã§ãã
~/work/repos/eclipse-jkube-demo-project : $ mvn k8s:apply
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Building random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:apply (default-cli) @ random-generator ---
[INFO] k8s: Using Kubernetes at https://192.168.39.145:8443/ in namespace default with manifest /home/rohaan/work/repos/eclipse-jkube-demo-project/target/classes/META-INF/jkube/kubernetes.yml
[INFO] k8s: Using namespace: default
[INFO] k8s: Creating a Service from kubernetes.yml namespace default name random-generator
[INFO] k8s: Created Service: target/jkube/applyJson/default/service-random-generator.json
[INFO] k8s: Creating a Deployment from kubernetes.yml namespace default name random-generator
[INFO] k8s: Created Deployment: target/jkube/applyJson/default/deployment-random-generator.json
[INFO] k8s: HINT: Use the command `kubectl get pods -w` to watch your pods start up
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.306 s
[INFO] Finished at: 2020-08-10T11:40:57+05:30
[INFO] ------------------------------------------------------------------------
~/work/repos/eclipse-jkube-demo-project : $ kubectl get pods -w
NAME READY STATUS RESTARTS AGE
random-generator-58b7847d7f-9m9df 0/1 Running 0 7s
random-generator-58b7847d7f-9m9df 1/1 Running 0 17s
^C~/work/repos/eclipse-jkube-demo-project : $ kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
io-openliberty-sample-getting-started NodePort 10.110.4.104 <none> 9080:30570/TCP 44h
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 18d
random-generator NodePort 10.97.172.147 <none> 8080:32186/TCP 22s
~/work/repos/eclipse-jkube-demo-project : $ curl `minikube ip`:32186/random | jq .
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 45 0 45 0 0 1800 0 --:--:-- --:--:-- --:--:-- 1875
{
"id": "42e5571f-a20f-44b3-8184-370356581d10"
}
ã¹ããã 6. Kubernetes ã¯ã©ã¹ã¿ãŒããã¢ããªã±ãŒã·ã§ã³ãã¢ã³ãããã€ãã
ãããè¡ãã«ã¯ãã¢ã³ããã〠ã¿ã¹ã¯ã䜿çšãããŸããããã¯ãåã®ã¹ããããã€ãŸãé©çšã¿ã¹ã¯ã®å®è¡æã«é©çšããããã¹ãŠã®ãªãœãŒã¹ãåçŽã«åé€ããŸãã ããã¯ãEclipse JKube ã« mvn k8s:undeploy ã¢ã³ããã〠ã¿ã¹ã¯ãå®è¡ããããäŸé ŒããåŸã®ç»é¢ã«è¡šç€ºãããå 容ã§ãã
~/work/repos/eclipse-jkube-demo-project : $ kubectl get all
NAME READY STATUS RESTARTS AGE
pod/random-generator-58b7847d7f-9m9df 1/1 Running 0 5m21s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 18d
service/random-generator NodePort 10.97.172.147 <none> 8080:32186/TCP 5m21s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/random-generator 1/1 1 1 5m21s
NAME DESIRED CURRENT READY AGE
replicaset.apps/random-generator-58b7847d7f 1 1 1 5m21s
~/work/repos/eclipse-jkube-demo-project : $ mvn k8s:undeploy
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Building random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:undeploy (default-cli) @ random-generator ---
[INFO] k8s: Using Kubernetes at https://192.168.39.145:8443/ in namespace default with manifest /home/rohaan/work/repos/eclipse-jkube-demo-project/target/classes/META-INF/jkube/kubernetes.yml
[INFO] k8s: Using namespace: default
[INFO] k8s: Deleting resource Deployment default/random-generator
[INFO] k8s: Deleting resource Service default/random-generator
[INFO] k8s: HINT: Use the command `kubectl get pods -w` to watch your pods start up
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.412 s
[INFO] Finished at: 2020-08-10T11:46:22+05:30
[INFO] ------------------------------------------------------------------------
~/work/repos/eclipse-jkube-demo-project : $ kubectl get pods -w
^C~/work/repos/eclipse-jkube-demo-project : $ kubectl get all
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 18d
~/work/repos/eclipse-jkube-demo-project : $
Eclipse JKube ã§ä»ã«ã§ããããš
ããã§ãKubernetes ãã©ãããã©ãŒã çšã® Java ã¢ããªã±ãŒã·ã§ã³ã®éçºã容æã«ãã Eclipse JKube ãš Kubernetes Maven Plugin ã®äž»ãªç®æšã¿ã¹ã¯ã調ã¹ãŸããã ãããã®ã¿ã¹ã¯ãããŒããŒãããåžžã«å ¥åããããªãå Žåã¯ãããšãã°æ¬¡ã®ããã«ãã©ã°ã€ã³èšå®ã«ã¿ã¹ã¯ãèšè¿°ããããšãã§ããŸãã
<plugin>
<groupId>org.eclipse.jkube</groupId>
<artifactId>kubernetes-maven-plugin</artifactId>
<version>${project.version}</version>
<executions>
<execution>
<goals>
<goal>build</goal>
<goal>resource</goal>
<goal>apply</goal>
</goals>
</execution>
</executions>
</plugin>
ãã®èšäºã§ã¯ãEclipse JKube ããã³ Kubernetes Maven Plugin ã«å«ãŸãããã¹ãŠã®ç®æšã¿ã¹ã¯ãæ€èšããããã§ã¯ãªããããè¡š 2 ã«åœ¹ç«ã€å¯èœæ§ã®ããè¿œå ã¿ã¹ã¯ã®ãªã¹ãã瀺ããŸãã
ããŒãã«2. è¿œå ã® Eclipse JKube ç®æšã¿ã¹ã¯ã
ã¿ã¹ã¯
ã¹ããŒãž
説æ
æ€èšŒ
Kubernetes äžã§å®è¡ãããŠããã¢ããªã±ãŒã·ã§ã³ãããã°ãåä¿¡ããŸãã
PACKAGE
ãããã° ããŒããéããšãKubernetes äžã§å®è¡ãããŠããã¢ããªã±ãŒã·ã§ã³ã IDE ããçŽæ¥ãããã°ã§ããããã«ãªããŸãã
INSTALL
é©çšã¿ã¹ã¯ã®å Žåãšåãæ¹æ³ã§ãã€ã³ã¹ããŒã« ã¿ã¹ã¯çšã®ãã©ãŒã¯ãäœæããçæããããããã§ã¹ãã Kubernetes ã¯ã©ã¹ã¿ãŒã«é©çšããŸãã
PACKAGE
åå空éã远跡ããããšã«ããã¢ããªã±ãŒã·ã§ã³ã®èªåããã ãããã€ã¡ã³ãã
OpenShift Maven ãã©ã°ã€ã³ã䜿çšãã Red Hat OpenShift ãžã® Java ã¢ããªã±ãŒã·ã§ã³ã®ãããã€
ãã®äŸã®ã¢ããªã±ãŒã·ã§ã³ã Red Hat OpenShift ãã©ãããã©ãŒã ã«ãããã€ããã«ã¯ããã©ã°ã€ã³ã䜿çšããŸãã
~/work/repos/eclipse-jkube-demo-project : $ mvn oc:build oc:resource oc:apply
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Building random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- openshift-maven-plugin:1.0.0-rc-1:build (default-cli) @ random-generator ---
[INFO] oc: Using OpenShift build with strategy S2I
[INFO] oc: Running in OpenShift mode
[INFO] oc: Running generator spring-boot
[INFO] oc: spring-boot: Using Docker image quay.io/jkube/jkube-java-binary-s2i:0.0.7 as base / builder
[INFO] oc: [random-generator:0.0.1] "spring-boot": Created docker source tar /home/rohaan/work/repos/eclipse-jkube-demo-project/target/docker/random-generator/0.0.1/tmp/docker-build.tar
[INFO] oc: Adding to Secret pullsecret-jkube
[INFO] oc: Using Secret pullsecret-jkube
[INFO] oc: Creating BuildServiceConfig random-generator-s2i for Source build
[INFO] oc: Creating ImageStream random-generator
[INFO] oc: Starting Build random-generator-s2i
[INFO] oc: Waiting for build random-generator-s2i-1 to complete...
[INFO] oc: Caching blobs under "/var/cache/blobs".
[INFO] oc: Getting image source signatures
[INFO] oc: Copying blob sha256:cf0f3ebe9f536c782ab3835049cfbd9a663761ded9370791ef6ea3965c823aad
[INFO] oc: Copying blob sha256:57de4da701b511cba33bbdc424757f7f3b408bea741ca714ace265da9b59191a
[INFO] oc: Copying blob sha256:f320f94d91a064281f5127d5f49954b481062c7d56cce3b09910e471cf849050
[INFO] oc: Copying config sha256:52d6788fcfdd39595264d34a3959464a5dabc1d4ef0ae188802b20fc2d6a857b
[INFO] oc: Writing manifest to image destination
[INFO] oc: Storing signatures
[INFO] oc: Generating dockerfile with builder image quay.io/jkube/jkube-java-binary-s2i:0.0.7
[INFO] oc: STEP 1: FROM quay.io/jkube/jkube-java-binary-s2i:0.0.7
[INFO] oc: STEP 2: LABEL "io.openshift.build.source-location"="/tmp/build/inputs" "io.openshift.build.image"="quay.io/jkube/jkube-java-binary-s2i:0.0.7"
[INFO] oc: STEP 3: ENV JAVA_APP_DIR="/deployments" OPENSHIFT_BUILD_NAME="random-generator-s2i-1" OPENSHIFT_BUILD_NAMESPACE="default"
[INFO] oc: STEP 4: USER root
[INFO] oc: STEP 5: COPY upload/src /tmp/src
[INFO] oc: STEP 6: RUN chown -R 1000:0 /tmp/src
[INFO] oc: STEP 7: USER 1000
[INFO] oc: STEP 8: RUN /usr/local/s2i/assemble
[INFO] oc: INFO S2I source build with plain binaries detected
[INFO] oc: INFO S2I binary build from fabric8-maven-plugin detected
[INFO] oc: INFO Copying binaries from /tmp/src/deployments to /deployments ...
[INFO] oc: random-generator-0.0.1.jar
[INFO] oc: INFO Copying deployments from deployments to /deployments...
[INFO] oc: '/tmp/src/deployments/random-generator-0.0.1.jar' -> '/deployments/random-generator-0.0.1.jar'
[INFO] oc: STEP 9: CMD /usr/local/s2i/run
[INFO] oc: STEP 10: COMMIT temp.builder.openshift.io/default/random-generator-s2i-1:48795e41
[INFO] oc: time="2020-08-10T06:37:49Z" level=info msg="Image operating system mismatch: image uses "", expecting "linux""
[INFO] oc: time="2020-08-10T06:37:49Z" level=info msg="Image architecture mismatch: image uses "", expecting "amd64""
[INFO] oc: Getting image source signatures
[INFO] oc: Copying blob sha256:d8e1f35641acb80b562f70cf49911341dfbe8c86f4d522b18efbf3732aa74223
[INFO] oc: Copying blob sha256:b6f081e4b2b6de8be4b1dec132043d14c121e968384dd624fb69c2c07b482edb
[INFO] oc: Copying blob sha256:b7139ad07aa8ce4ed5a132f7c5cc9f1de0f5099b5e155027a23d57f7fbe78b16
[INFO] oc: Copying blob sha256:98972fc90a1108315cc5b05b2c691a0849a149727a7b81e76bc847ac2c6d9714
[INFO] oc: Copying config sha256:27aaadaf28e24856a66db962b88118b8222b61d79163dceeeed869f7289bc230
[INFO] oc: Writing manifest to image destination
[INFO] oc: Storing signatures
[INFO] oc: --> 27aaadaf28e
[INFO] oc: 27aaadaf28e24856a66db962b88118b8222b61d79163dceeeed869f7289bc230
[INFO] oc: Getting image source signatures
[INFO] oc:
[INFO] oc: Pushing image image-registry.openshift-image-registry.svc:5000/default/random-generator:0.0.1 ...
[INFO] oc: Copying blob sha256:f320f94d91a064281f5127d5f49954b481062c7d56cce3b09910e471cf849050
[INFO] oc: Copying blob sha256:cf0f3ebe9f536c782ab3835049cfbd9a663761ded9370791ef6ea3965c823aad
[INFO] oc: Copying blob sha256:57de4da701b511cba33bbdc424757f7f3b408bea741ca714ace265da9b59191a
[INFO] oc: Copying blob sha256:98972fc90a1108315cc5b05b2c691a0849a149727a7b81e76bc847ac2c6d9714
[INFO] oc: Copying config sha256:27aaadaf28e24856a66db962b88118b8222b61d79163dceeeed869f7289bc230
[INFO] oc: Writing manifest to image destination
[INFO] oc: Storing signatures
[INFO] oc: Successfully pushed image-registry.openshift-image-registry.svc:5000/default/random-generator@sha256:aa9e1a380c04ef9174ba56459c13d44420ebe653ebf32884d60fe4306b17306d
[INFO] oc: Push successful
[INFO] oc: Build random-generator-s2i-1 in status Complete
[INFO] oc: Found tag on ImageStream random-generator tag: sha256:aa9e1a380c04ef9174ba56459c13d44420ebe653ebf32884d60fe4306b17306d
[INFO] oc: ImageStream random-generator written to /home/rohaan/work/repos/eclipse-jkube-demo-project/target/random-generator-is.yml
[INFO]
[INFO] --- openshift-maven-plugin:1.0.0-rc-1:resource (default-cli) @ random-generator ---
[INFO] oc: Using docker image name of namespace: default
[INFO] oc: Running generator spring-boot
[INFO] oc: spring-boot: Using Docker image quay.io/jkube/jkube-java-binary-s2i:0.0.7 as base / builder
[INFO] oc: jkube-controller: Adding a default DeploymentConfig
[INFO] oc: jkube-service: Adding a default service 'random-generator' with ports [8080]
[INFO] oc: jkube-healthcheck-spring-boot: Adding readiness probe on port 8080, path='/actuator/health', scheme='HTTP', with initial delay 10 seconds
[INFO] oc: jkube-healthcheck-spring-boot: Adding liveness probe on port 8080, path='/actuator/health', scheme='HTTP', with initial delay 180 seconds
[INFO] oc: jkube-revision-history: Adding revision history limit to 2
[INFO]
[INFO] --- openshift-maven-plugin:1.0.0-rc-1:apply (default-cli) @ random-generator ---
[INFO] oc: Using OpenShift at https://api.crc.testing:6443/ in namespace default with manifest /home/rohaan/work/repos/eclipse-jkube-demo-project/target/classes/META-INF/jkube/openshift.yml
[INFO] oc: OpenShift platform detected
[INFO] oc: Using project: default
[INFO] oc: Creating a Service from openshift.yml namespace default name random-generator
[INFO] oc: Created Service: target/jkube/applyJson/default/service-random-generator.json
[INFO] oc: Creating a DeploymentConfig from openshift.yml namespace default name random-generator
[INFO] oc: Created DeploymentConfig: target/jkube/applyJson/default/deploymentconfig-random-generator.json
[INFO] oc: Creating Route default:random-generator host: null
[INFO] oc: HINT: Use the command `oc get pods -w` to watch your pods start up
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:07 min
[INFO] Finished at: 2020-08-10T12:08:00+05:30
[INFO] ------------------------------------------------------------------------
~/work/repos/eclipse-jkube-demo-project : $ oc get pods -w
NAME READY STATUS RESTARTS AGE
random-generator-1-deploy 1/1 Running 0 14s
random-generator-1-vnrm9 0/1 Running 0 11s
random-generator-s2i-1-build 0/1 Completed 0 1m
random-generator-1-vnrm9 1/1 Running 0 24s
random-generator-1-deploy 0/1 Completed 0 28s
~/work/repos/eclipse-jkube-demo-project : $ oc get routes
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
random-generator random-generator-default.apps-crc.testing random-generator 8080 None
~/work/repos/eclipse-jkube-demo-project : $ curl random-generator-default.apps-crc.testing/random
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 45 0 45 0 0 1666 0 --:--:-- --:--:-- --:--:-- 1730
{
"id": "d80052d9-2f92-43cb-b9eb-d7cffb879798"
}
~/work/repos/eclipse-jkube-demo-project : $
ãããªã¬ãã¹ã³
Eclipse JKube ã䜿çšã㊠Kubernetes éçºã容æã«ããæ¹æ³ã®è©³çŽ°ã«ã€ããŠã¯ãMinikube ã«ã·ã³ãã«ãª Spring Boot ã¢ããªã±ãŒã·ã§ã³ãè¿ éã«ãããã€ããæ¹æ³ã«é¢ãããã®ãã㪠ãã¥ãŒããªã¢ã«ãã芧ãã ããã
ãŸãšã
ãã®èšäºã§ã¯ãEclipse JKube ã«ãã£ãŠ Java éçºè
ã Kubernetes ã䜿çšããéã®äœæ¥ãã©ã®ããã«å®¹æã«ãªããã説æããŸããã Eclipse JKube ã®è©³çŽ°ã«ã€ããŠã¯ã次㮠Web ãµã€ããåç
§ããŠãã ããã
åºæïŒ habr.com