Developing Java Applications for Kubernetes Using Eclipse JKube

25 annos, Java in amet programmandi intravit et tandem factus est unus e elementis circa quae applicatio acervi nuclei aedificantur. Hodie autem multi homines et consociationes, quae per multos annos fideles in Java posita sunt, migrare vel migrare in suggestum considerantes occupant. Kubernetes aut eius derivata ut Rubrum Hat OpenShift aut Amazon EKS.

Developing Java Applications for Kubernetes Using Eclipse JKube

Infeliciter, Kubernetes curvam discendi arduam habet et aliam stratum perficiendi in processu evolutionis introducit, quem programmatores Javae consueverunt. Hodie quomodo utendum tibi narrabimus Eclipse JKubead simpliciorem reddere has operationes additas cum Kubernetibus et continentibus, et migrationem sine dolore ad suggestum nubilum, servato nota Java ecosystematis. Praeterea ostendemus quomodo applicationes Javae explicandae in suggestu OpenShift utendo in plugin Maven OpenShift.

Traditional Java Development Process

Traditional progressionem processus Java (Figura 1.) in scribendo codicem elit involvit, tum unitates in forma instruere vel URNA TABULARUM BELLUM creans, tum haec lima in telam vel applicationem servo disponis ac currit. Praecipuum iter hoc faciendum est, ut Maven ex linea mandatorum vel IDE tanquam IntelliJ vel Eclipsis ad codicem ac fasciculum applicationum utatur. Tincidunt ad mutationes codicis faciendas et omnia probe probantes antequam codicem mandant et eam versioni ditioni submittunt.

Developing Java Applications for Kubernetes Using Eclipse JKube

Renatus. 1. Institutio processus progressionis Javae.

Java Development Process for the Cloud

Cum applicationes ad nubes movendum, Kubernetes et disrumpit. Nunc elit eget tellus eget mauris accumsan in continens imagines et Kubernetes efficit manifestas has imagines describentes. Hae manifestationes tunc applicatae sunt ad Kubernetes cursus productionis. Rursus, Kubernetes has imagines e registro accipit et applicationes explicat secundum figuras, quas in manifestis scripsimus, quae solent imagini YAML.

Metamorphosis evolutionis evolutionis traditionalis Java in transitu ad nubem in Fig. 2.

Developing Java Applications for Kubernetes Using Eclipse JKube

Renatus. 2. Java progressionem processus ad nubem.

Eclipse JKube

Migrans Kubernetes aliam stratum operationis ad processum evolutionis addit, et multae tincidunt de eo timidae sunt, quia in nucleo suo operi β€” logicae applicationis β€” potius quam explicandi rationem intendere volunt. Idque ubi iungitur. Eclipse JKube, quae tincidunt uti bibliothecas et plugins (JCube Kit apud Kubernetes Maven Plugin aut OpenShift Maven Plugin) continens operas et Kubernetes relatas in schemate in Figura sequendo sine labore conficere. 2.

In reliquo huius articuli, docebimus quomodo progressionem Iavam simpliciorem reddere in ambitu Kubernetes utendo Eclipse JKube apud Kubernetes Maven Plugin.

Cloud Development Process Using Eclipse JKube

Consideremus machinam progressionem Javam leviter mutatam pro nube e Fig. 2, Eclipse JKube et Kubernetes Maven Plugin in eam introducentes, ut in Fig. 3.

Developing Java Applications for Kubernetes Using Eclipse JKube

Renatus. 3. Java progressus processus ad nubem utens Eclipse JKube.

Ut videre possumus, hic omnes operationes pro mutuo commercio cum Kubernetes et vasis (ex icone in rubrica illustrata) substituuntur per defectionem Eclipsis JKube munerum metam, quae in Tabula recensentur. 1 .

Mensa 1. Eclipsis JKube defectus munerum.

negotium
scaena
Description

k8s: aedificate
PRE_INTEGRATION_TEST
Aedificium docker imagines

k8s: dis
CONLOCO
Docker imagines ad uploading subcriptio

k8s:resource
PROCESS_RESOURCES
Generans K8s manifestat

k8s: adhibere
COMPILE
Secundum manifestat generatae K8s

k8s: undeploy
EXPLOY'
Removere K8s facultates quae sunt per k8s explicavit: applicare et k8s: explicandam

Note: Si opera non vis ut his defaltis opinionibus utaris, manually Eclipse JKube tibi configurare potes, quia configurationem via sustinet. XML ΠΈ opibus.

Nunc inspiciamus exempla Eclipses JKube et Kubernetes Maven Plugin utendi cum applicationibus operandi.

Usura Eclipsis JKube . in Kubernetes applicatione disponit Java

In hoc exemplo explicabimus applicationem simplex Java in botro Minikube utens Eclipse JKube. Utentes Kubernetes Maven Plugin, parametris instruere possumus sine ulla scribenda configuratione.

Exempli applicatione utimur simplex temere numerus generantis, qui JSON output ad / temere punctum producit:

~/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"
}

Gradus 1. Download Kubernetes Maven Plugin

Kubernetes Maven Plugin in repositorio Maven Repositorium Central. Uti Eclipsis JKube Kubernetes Maven Plugin ad tuum pom.xml dependentiam addere debes:

<plugin>
     <groupId>org.eclipse.jkube</groupId>
     <artifactId>kubernetes-maven-plugin</artifactId>
     <version>${jkube.version}</version>
 </plugin>

Si OpenShift pro puro Kubernetes adhibetur, pom.xml mutatur hoc modo:

<plugin>
     <groupId>org.eclipse.jkube</groupId>
     <artifactId>openshift-maven-plugin</artifactId>
     <version>${jkube.version}</version>
 </plugin>

Gradus 2. aedifica docker imaginem

Fasciculus applicationis URNA cum imperio mvn sarcina aedificari potest, deinde propositum mvn k8s: aedificare potest ad imaginem applicationis fabricare. Nota nos imaginis nomen defectivum cum hac proprietate praevaricari;

<jkube.generator.name>docker.io/rohankanojia/random-generator:${project.version}</jkube.generator.name>

Priusquam imaginem aedifices, fac opus est ut daemon claviger recte exponatur. Hoc fieri potest cum sequenti praecepto;

$ eval $(minikube docker-env)

Tunc ingredimur mvn k8s: aedificare mandatum, et hoc est quod videbimus in velo, cum fabricatur scopulus imagine utens eclipsis JKube molis aedificandi;

~/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 : $

Gradus 3. upload imago in dock subcriptio

Postquam imaginem docularium cum pulsus registro configuratum aedificavimus (in nostro casu docker.io), hanc imaginem in registro mittere possumus. Hoc est quod ostendetur postquam quaeramus Eclipse JKube ad perficiendum mvn k8s: dis negotium dis;

~/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 : $ 

Imaginem praemissam, in registro inclusam reprehendo debes. In casu nostro, in Docker Hub simpliciter videmus, ut in Fig. 4.

Developing Java Applications for Kubernetes Using Eclipse JKube

Renatus. 4. Imago ad registrum missa apparuit in Docker Hub.

Gradus 4. Generate resource Kubernetes manifestat per applicationem

Itaque imaginem applicationis collegimus, nunc manifestat Kubernetes scribere necesse est. Ad hoc faciendum, Eclipsis JKube munus habet quod subsidia rigida generans manifestat fundatum in compage Java subjecta (vere tabernus, quarkus, Vert.x vel alio aliquo). Etiam manifestam consuescere potes utendo lima configuratione XML ac rudis fragmenta (fragmenta inquisiti subsidii manifesti) in applicatione folder src/main/jkube. In hoc casu, figuratio tua ad manifestas generatas applicabitur.

In nostro exemplo omnia sicuti relinquimus, et propterea Eclipsis JKube manifestam generat pro defectu instituti et pro servitio typum ClusterIP. Et tunc demum mutamus manifestam servitutem mutandi genus in NodePort. Mores defaltam utendo vinculo sequenti proprietas potes:

<jkube.enricher.jkube-service.type>NodePort</jkube.enricher.jkube-service.type>

Hoc est quod screen output similis est postquam petimus Eclipse JKube ut perficiat mvn k8s: resource negotium.

~/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 : $

Gradus 5. explica applicationem ad botrum Kubernetes

Nunc omnes ad applicationem explicandam destinati sumus: imaginem eius generavimus et postea subsidia sponte generata manifestat. Nunc reliqua omnia ad botrum Kubernetes pertinent. Ad applicationem explicandam, kubectl -f imperio uti sane potes, sed plugin hoc nobis facere potest. Hoc est quod in velamento apparebit postquam quaeramus Eclipsis JCube ad exequendum mvn k8s: applica negotium applicandum;

~/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"
}

Gradus 6. Undeploy applicationes ex botro Kubernetes

Ad hoc munus explicandum adhibetur, qui simpliciter removet omnes facultates quae in priori gradu applicatae sunt, hoc est, cum negotium applicatum exercetur. Hoc est quod videbimus in velo postquam quaeramus Eclipse JKube ut perficias mvn k8s: undeploy negotium 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 : $

Quid aliud facere potes cum Eclipsin JKube?

Itaque inspeximus propositum principale munerum Eclipsis JKube et Kubernetes Maven Plugin, quae faciliorem evolutionem applicationum Javarum ad suggestum Kubernetes pervenerunt. Si haec negotia a tincidunt inire constanter non vis, ea scribere potes in figura plugining, exempli gratia, sic:

<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>

Dicendum est nos in hoc articulo omnia negotia quae in Eclipsin JKube et Kubernetes Maven Plugin non consideravimus, ita in Tabula 2 index operum additorum quae vobis utiles esse possunt providemus.

Mensa 2. Eclipsis JCube adiectis operibus finis.

negotium
scaena
Description

k8s: log
RATIS
Tigna accepta ab applicatione currit in Kubernetes.

k8s: debug
FASCICULUS
Aperi portum debug ut debug applicationem tuam in Kubernetes directe ex IDE currentem.

k8s: explicandam
CONLOCO
Furcam creandi ad Instrue munus et applicando generata manifestat Kubernetes botrum eodem modo ac in casu operis applicandi.

k8s: vigilia
FASCICULUS
Automatic calidum applicationis instruere per spatium spatii persequendo.

Explicare Java Applications in Rubrum Hat OpenShift Using the OpenShift Maven Plugin

Ad explicandam applicationem ex exemplo nostro in suggestu rubro Hat OpenShift, plugin utimur OpenShift Maven. Sola differentia erit quod praepositionis negotium mutabit ab k8s ad oc. Kubernetes Maven plugin facit Docker-assemblies, and the OpenShift Maven plugin - assemblies S2I. Mutationes ad consilium nostrum non facimus praeter proprietatem jkube.generator. nominis tollendam, quia non requiritur cum subcriptio impellitur (OpenShift ponit imaginem in registro interno durante periodo aedificandi). Et hoc est quod in scrinio apparebit, cum exemplum nostrum curritur, in quo obiter propositum non semel, sed simul omnia peragimus;

~/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 documentum

Plus discere quomodo evolutionem faciliorem reddere Kubernetes cum Eclipse JKube, vide hanc video tutoriam in quam ut celeriter explicandam applicationem simplex Spring Boot in Minikube:

conclusio,

In hoc articulo ostendimus quomodo Eclipsis JKube vitam faciliorem facit pro elit Java in operando cum Kubernetibus. Plura de Eclipse JKube inveniri possunt at project website quod GitHub.

Source: www.habr.com