Pirms 25 gadiem Java ienÄca galvenajÄ programmÄÅ”anas virzienÄ un galu galÄ kļuva par vienu no galvenajiem elementiem, ap kuru tiek veidotas lietojumprogrammu kopas. TomÄr Å”odien daudzi cilvÄki un organizÄcijas, kas ir bijuÅ”i uzticÄ«gi Java daudzus gadus, ir aizÅemti ar migrÄciju vai apsver migrÄÅ”anu uz platformu.
DiemžÄl Kubernetes ir strauja mÄcÄ«Å”anÄs lÄ«kne, un tÄ izstrÄdes procesÄ ievieÅ” vÄl vienu darbÄ«bas slÄni, pie kura Java programmÄtÄji ir pieraduÅ”i. Å odien mÄs jums pateiksim, kÄ to izmantot
TradicionÄlais Java izstrÄdes process
TradicionÄlais attÄ«stÄ«bas process
RÄ«si. 1. TradicionÄlais Java izstrÄdes process.
Java izstrÄdes process mÄkoÅam
PÄrejot uz mÄkoÅa aplikÄcijÄm, Kubernetes un
TradicionÄlÄ Java izstrÄdes procesa metamorfoze pÄrejÄ uz mÄkoni ir parÄdÄ«ta attÄlÄ. 2.
RÄ«si. 2. Java izstrÄdes process mÄkonim.
Eclipse JKube
MigrÄÅ”ana uz Kubernetes pievieno izstrÄdes procesam vÄl vienu darbÄ«bas slÄni, un daudzi izstrÄdÄtÄji par to ir satraukti, jo vÄlas koncentrÄties uz savu pamatdarbu ā lietojumprogrammu loÄ£iku ā, nevis uz to izvietoÅ”anu. Un Å”eit tas izpaužas.
PÄrÄjÄ Å”Ä« raksta daÄ¼Ä mÄs parÄdÄ«sim, kÄ vienkÄrÅ”ot Java izstrÄdes procesu Kubernetes vidÄ, izmantojot Eclipse JKube ar Kubernetes Maven spraudni.
MÄkoÅu izstrÄdes process, izmantojot Eclipse JKube
ApskatÄ«sim nedaudz modificÄtu Java izstrÄdes shÄmu mÄkoÅam no 2. att., ievieÅ”ot tajÄ Eclipse JKube un Kubernetes Maven Plugin, kÄ parÄdÄ«ts attÄlÄ. 3.
RÄ«si. 3. Java izstrÄdes process mÄkonim, izmantojot Eclipse JKube.
KÄ redzam, Å”eit visas darbÄ«bas mijiedarbÄ«bai ar Kubernetes un konteineriem (diagrammÄ iezÄ«mÄtas sarkanÄ krÄsÄ) tiek aizstÄtas ar noklusÄjuma Eclipse JKube mÄrÄ·a uzdevumiem, kas ir norÄdÄ«ti tabulÄ. 1.
Tabula 1. Eclipse JKube noklusÄjuma uzdevumi.
Uzdevums
Posms
Apraksts
PRE_INTEGRATION_TEST
Docker attÄlu veidoÅ”ana
INSTALL
Docker attÄlu augÅ”upielÄde reÄ£istrÄ
PROCESS_RESOURCES
K8s manifestu Ä£enerÄÅ”ana
SASTÄDÄŖT
Ä¢enerÄto manifestu lietoÅ”ana K8s
NEDARBINÄT
K8s resursu noÅemÅ”ana, kas tika izvietoti, izmantojot k8s:apply un k8s:deploy
PiezÄ«me: Ja nevÄlaties, lai uzdevumos tiktu izmantoti Å”ie noklusÄtie iestatÄ«jumi, varat manuÄli konfigurÄt Eclipse JKube pats, jo tas atbalsta konfigurÄciju, izmantojot
Tagad apskatÄ«sim piemÄrus, kÄ izmantot Eclipse JKube un Kubernetes Maven Plugin, strÄdÄjot ar lietojumprogrammÄm.
Java lietojumprogrammas izvietoÅ”ana vietnÄ Kubernetes, izmantojot Eclipse JKube
Å ajÄ piemÄrÄ mÄs izvietosim vienkÄrÅ”u Java lietojumprogrammu klasterÄ«
KÄ piemÄru mÄs izmantojam lietojumprogrammu
~/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. darbÄ«ba. LejupielÄdÄjiet spraudni Kubernetes Maven
Kubernetes Maven spraudnis atrodas repozitorijÄ
<plugin>
<groupId>org.eclipse.jkube</groupId>
<artifactId>kubernetes-maven-plugin</artifactId>
<version>${jkube.version}</version>
</plugin>
Ja tÄ«ras Kubernetes vietÄ tiek izmantots OpenShift, pom.xml tiek modificÄts Å”Ädi:
<plugin>
<groupId>org.eclipse.jkube</groupId>
<artifactId>openshift-maven-plugin</artifactId>
<version>${jkube.version}</version>
</plugin>
2. darbÄ«ba. Izveidojiet dokstacijas attÄlu
Lietojumprogrammas JAR failu var izveidot, izmantojot komandu mvn pakotne, un pÄc tam mvn mÄrÄ·a uzdevumu k8s:build var izmantot, lai izveidotu lietojumprogrammas docker attÄlu. Å emiet vÄrÄ, ka esam ignorÄjuÅ”i noklusÄjuma attÄla nosaukumu ar Å”o rekvizÄ«tu:
<jkube.generator.name>docker.io/rohankanojia/random-generator:${project.version}</jkube.generator.name>
Pirms attÄla izveides jums jÄpÄrliecinÄs, vai docker dÄmons ir pareizi eksponÄts. To var izdarÄ«t ar Å”Ädu komandu:
$ eval $(minikube docker-env)
PÄc tam ievadÄm komandu mvn k8s:build, un tas ir tas, ko mÄs redzÄsim ekrÄnÄ, veidojot docker attÄlu, izmantojot Eclipse JKube veidoÅ”anas uzdevumu:
~/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. darbÄ«ba. AugÅ”upielÄdÄjiet attÄlu docker reÄ£istrÄ
Kad esam izveidojuÅ”i docker attÄlu ar konfigurÄtu push reÄ£istru (mÅ«su gadÄ«jumÄ tas ir docker.io), mÄs varam nosÅ«tÄ«t Å”o attÄlu uz reÄ£istru. Tas tiks parÄdÄ«ts pÄc tam, kad lÅ«gsim Eclipse JKube veikt mvn k8s:push push uzdevumu:
~/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 : $
PÄc attÄla nosÅ«tÄ«Å”anas jums jÄpÄrbauda, āāvai tas ir iekļauts reÄ£istrÄ. MÅ«su gadÄ«jumÄ mÄs to vienkÄrÅ”i redzam Docker Hub, kÄ parÄdÄ«ts attÄlÄ. 4.
RÄ«si. 4. ReÄ£istram nosÅ«tÄ«tais attÄls parÄdÄ«jÄs Docker Hub.
4. darbÄ«ba. Ä¢enerÄjiet lietojumprogrammai Kubernetes resursu manifestus
TÄtad, esam savÄkuÅ”i lietojumprogrammas attÄlu, tagad mums jÄraksta Kubernetes manifesti. Lai to izdarÄ«tu, Eclipse JKube ir uzdevums, kas Ä£enerÄ stingrus resursu manifestus, pamatojoties uz pamatÄ esoÅ”o Java ietvaru (
MÅ«su piemÄrÄ mÄs atstÄjam visu, kÄ tas ir, un tÄpÄc Eclipse JKube Ä£enerÄ manifestu noklusÄjuma izvietoÅ”anai un pakalpojumam ar tipu ClusterIP. Un tikai pÄc tam mÄs modificÄjam pakalpojuma manifestu, lai mainÄ«tu pakalpojuma veidu uz NodePort. Varat ignorÄt noklusÄjuma darbÄ«bu, izmantojot Å”Ädu rekvizÄ«tu:
<jkube.enricher.jkube-service.type>NodePort</jkube.enricher.jkube-service.type>
Å Ädi izskatÄs ekrÄna izvade pÄc tam, kad mÄs lÅ«dzam Eclipse JKube veikt mvn k8s:resursu resursu uzdevumu.
~/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. darbība. Izvietojiet lietojumprogrammu Kubernetes klasterī
Tagad mÄs esam gatavi lietojumprogrammas izvietoÅ”anai: esam Ä£enerÄjuÅ”i tÄs attÄlu un pÄc tam automÄtiski Ä£enerÄjuÅ”i resursu manifestus. Tagad atliek tikai to visu piemÄrot Kubernetes klasterim. Lai izvietotu lietojumprogrammu, jÅ«s, protams, varat izmantot komandu kubectl apply -f, taÄu spraudnis to var izdarÄ«t mÅ«su vietÄ. Tas tiks parÄdÄ«ts ekrÄnÄ pÄc tam, kad lÅ«gsim Eclipse JKube izpildÄ«t mvn k8s:apply lietot uzdevumu:
~/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. darbība. Atceliet lietojumprogrammu izvietoŔanu no Kubernetes klastera
Lai to izdarÄ«tu, tiek izmantots izvÄrÅ”anas atcelÅ”anas uzdevums, kas vienkÄrÅ”i noÅem visus resursus, kas tika lietoti iepriekÅ”ÄjÄ darbÄ«bÄ, tas ir, kad tiek izpildÄ«ts piemÄroÅ”anas uzdevums. Tas ir tas, ko mÄs redzÄsim ekrÄnÄ pÄc tam, kad lÅ«gsim Eclipse JKube veikt mvn k8s:undeploy undeploy uzdevumu:
~/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 : $
Ko vÄl jÅ«s varat darÄ«t ar Eclipse JKube
TÄtad, mÄs apskatÄ«jÄm Eclipse JKube un Kubernetes Maven Plugin galvenos mÄrÄ·us, kas atvieglo Java lietojumprogrammu izstrÄdi Kubernetes platformai. Ja nevÄlaties pastÄvÄ«gi ievadÄ«t Å”os uzdevumus no tastatÅ«ras, varat tos ierakstÄ«t spraudÅa konfigurÄcijÄ, piemÄram, Å”Ädi:
<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>
JÄsaka, ka Å”ajÄ rakstÄ mÄs neesam apskatÄ«juÅ”i visus mÄrÄ·a uzdevumus, kas ir Eclipse JKube un Kubernetes Maven Plugin, tÄpÄc 2. tabulÄ sniedzam sarakstu ar papildu uzdevumiem, kas var noderÄt arÄ« jums.
Tabula 2. Papildu Eclipse JKube mÄrÄ·a uzdevumi.
Uzdevums
Posms
Apraksts
APSTIPRINÄT
ŽurnÄlu saÅemÅ”ana no lietojumprogrammas, kas darbojas Kubernetes.
LIETOÅ ANAS
Atveriet atkļūdoÅ”anas portu, lai varÄtu atkļūdot lietojumprogrammu, kas darbojas Kubernetes tieÅ”i no IDE.
INSTALL
InstalÄÅ”anas uzdevuma dakÅ”as izveide un Ä£enerÄto manifestu lietoÅ”ana Kubernetes klasterim tÄpat kÄ pielietoÅ”anas uzdevuma gadÄ«jumÄ.
LIETOÅ ANAS
Lietojumprogrammas automÄtiska karstÄ izvietoÅ”ana, izsekojot tÄs nosaukumvietu.
Java lietojumprogrammu izvietoŔana Red Hat OpenShift, izmantojot OpenShift Maven spraudni
Lai izvietotu lietojumprogrammu no mÅ«su piemÄra Red Hat OpenShift platformÄ, mÄs izmantojam spraudni
~/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 : $
Video nodarbība
Lai uzzinÄtu vairÄk par to, kÄ atvieglot Kubernetes izstrÄdi, izmantojot Eclipse JKube, noskatieties Å”o video pamÄcÄ«bu par to, kÄ Minikube Ätri izvietot vienkÄrÅ”u Spring Boot lietojumprogrammu:
SecinÄjums
Å ajÄ rakstÄ mÄs parÄdÄ«jÄm, kÄ Eclipse JKube atvieglo Java izstrÄdÄtÄja dzÄ«vi, strÄdÄjot ar Kubernetes. PlaÅ”Äku informÄciju par Eclipse JKube var atrast vietnÄ
Avots: www.habr.com