25 évvel ezelőtt a Java széles körben elérhetővé vált a programozók számára, hogy végül az egyik olyan alapkövévé váljon, amely köré az alkalmazásstakok épülnek. Ma azonban sok ember és szervezet, aki évekig hű maradt a Java-hoz, azon van, hogy átálljon, vagy fontolóra vegye az átállást a platformra vagy annak variánsaira, mint például vagy .

Sajnos a Kubernetes meredek tanulási görbével rendelkezik, és további operációs szintet vezet be a Java-programozók számára megszokott fejlesztési folyamatba. Ma arról fogunk beszélni, hogyan használjuk , hogy megkönnyítsük az ezekkel a Kubernetes és konténer műveletekkel kapcsolatos további feladatokat, és biztosítsuk a zökkenőmentes migrációt a felhőplatformra, megőrizve a Java megszokott ökoszisztémáját. Sőt, megmutatjuk, hogyan lehet Java-alkalmazásokat telepíteni az OpenShift platformon az OpenShift Maven plugin segítségével.
A hagyományos Java-fejlesztési folyamat
A hagyományos fejlesztési folyamat (1. ábra) azt jelenti, hogy a fejlesztő kódot ír, majd telepítési egységeket hoz létre JAR vagy WAR fájlok formájában, majd ezeket a fájlokat telepíti és futtatja webkiszolgálón vagy alkalmazáskiszolgálón. E célra főként a Maven-t használják parancssorból, vagy IDE-ket, mint például IntelliJ vagy Eclipse, hogy kódolják és csomagolják az alkalmazásokat. A fejlesztők megszokták, hogy a kódot módosítják, és alaposan tesztelik, mielőtt a kód rögzítése és a verziókezelő rendszert előkészítik.

1. ábra. A hagyományos Java-fejlesztési folyamat.
A Java-fejlesztési folyamat a felhő számára
A felhőalapú alkalmazásokhoz való átálláskor a fent említett sémához hozzáadódik a Kubernetes és . Ezért most a fejlesztőnek be kell csomagolnia a Java-alkalmazásokat és létre kell hoznia Kubernetes manifesztumokat, amelyek ezeket a képeket írják le. Ezt követően ezeket a manifesztumokat alkalmazzák a produkciós szerverre, ahol a Kubernetes működik. A Kubernetes pedig a képeket a regiszterből veszi, és az általunk a manifesztumokban megadott konfigurációk szerint telepíti az alkalmazásokat, amelyeket általában YAML fájlok formájában adunk meg.
A hagyományos Java-fejlesztési folyamat metamorfózisa a felhőre való átálláskor a 2. ábrán látható.

2. ábra. A Java-fejlesztési folyamat a felhő számára.
Eclipse JKube
A Kubernetes-re való áttérés egy új operációs szintet ad a fejlesztési folyamatnak, ami sok fejlesztőt aggaszt, mivel ők a fő munkájukra – az alkalmazáslogikára – szeretnének összpontosítani, nem a telepítési folyamatra. Itt lép életbe , amely lehetővé teszi a fejlesztők számára, hogy használják könyvtáraikat és pluginjaikat ( együtt a vagy ), hogy erőfeszítések nélkül végezzenek műveleteket, amelyek a konténerekkel és a Kubernetesszel kapcsolatosak, követve a 2. ábrán látható sémát.
A cikk hátralévő részében bemutatjuk, hogyan egyszerűsíthetjük a Java-fejlesztési folyamatot a Kubernetes környezetében az Eclipse JKube használatával együtt a Kubernetes Maven Plugin-nal.
Felhőalapú fejlesztési folyamat Eclipse JKube használatával
Nézzük meg az ábrán 2-vel kissé módosított Java-fejlesztési sémát, amelybe bevezetjük az Eclipse JKube-t és a Kubernetes Maven Plugin-t, ahogyan az a 3. ábrán látható.

3. ábra. Java-fejlesztési folyamat a felhőben az Eclipse JKube használatával.
Ahogyan azt látjuk, itt minden Kubernetes-szel és konténerekkel kapcsolatos kapcsolatfelvételi művelet (a sémán pirossal kiemelve) helyettesítve van az Eclipse JKube alapértelmezett célfeladataival, amelyek a 1. táblázatban találhatók.
1. táblázat. Eclipse JKube alapértelmezett feladatai.
Feladat
Fázis
Leírás
PRE_INTEGRATION_TEST
Docker-képek építése
INSTALL
Docker-képek küldése a registrybe
PROCESS_RESOURCES
K8s manifestok generálása
COMPILE
A generált manifestok alkalmazása K8s-re
UNDEPLOY
K8s erőforrások eltávolítása, amelyeket a k8s:apply és a k8s:deploy révén telepítettek
Megjegyzés: Ha nem szeretné, hogy a feladatok ezeket a merev alapértelmezéseket (opinionated defaults) használják, akkor kézi konfigurálással testre szabhatja az Eclipse JKube-ot, mivel ez támogatja a konfigurálást és .
Most nézzük meg az Eclipse JKube és a Kubernetes Maven Plugin használatának példáit alkalmazásokkal.
Java-alkalmazás telepítése Kubernetes-re az Eclipse JKube használatával
Ebben a példában egy egyszerű Java-alkalmazást telepítünk egy klaszterbe az Eclipse JKube használatával. A Kubernetes Maven Plugin révén megadhatjuk a telepítési paramétereket anélkül, hogy bármilyen konfigurációt meg kellene határoznunk.
Példa alkalmazásként egy , amely JSON-kimenetet ad a következő végponton: /random:
~ /work/repos/eclipse-jkube-demo-project : $ curl localhost:8080 / random | jq .
% Teljes % Fogadott % Átvitt Átlagos Sebesség Idő Idő Idő Jelenlegi
Dload Feltöltés Összes Költséges Bal Sebesség
100 45 0 45 0 0 818 0 --:--:-- --:--:-- --:--:-- 818
{
"id": "e80a4d10-c79b-4b9a-aaac-7c286cb37f3c"
}
1. Lépés: Kubernetes Maven Plugin telepítése
A Kubernetes Maven Plugin a tárolóban található . Az Eclipse JKube használatához a Kubernetes Maven Plugint a pom.xml fájlhoz kell hozzáadni függőségként:
org.eclipse.jkube
kubernetes-maven-plugin
${jkube.version}
Ha a tiszta Kubernetes helyett OpenShiftet használunk, a pom.xml a következőképpen módosul:
org.eclipse.jkube
openshift-maven-plugin
${jkube.version}
2. Lépés: Docker-kép létrehozása
Az alkalmazás JAR-fájlját a mvn package parancs kiadásával hozhatjuk létre, majd a mvn k8s:build feladatot használva létrehozhatjuk az alkalmazás Docker-képét. Ne feledje, hogy a következő tulajdonság használatával felül írtuk az alapértelmezett képnév:
docker.io/rohankanojia/random-generator:${project.version}
A kép létrehozása előtt meg kell győződni arról, hogy a docker démon helyesen van kitéve. Ezt az alábbi paranccsal tehetjük meg:
$ eval $(minikube docker-env)
Ezután beírjuk a mvn k8s:build parancsot, és ez jelenik meg a képernyőn, amikor a Docker-képet létrehozzuk az Eclipse JKube build-feladatával:
~/work/repos/eclipse-jkube-demo-project : $ mvn k8s:build
[INFO] Projektek keresése...
[INFO]
[INFO] ---------------------------------------------
[INFO] random-generator 0.0.1 építése
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:build (default-cli) @ random-generator ---
[INFO] k8s: Kubernetes módban fut
[INFO] k8s: Docker-kép építése Kubernetes módban
[INFO] k8s: generátor spring-boot futtatása
[INFO] k8s: spring-boot: Alap/builder képként a quay.io/jkube/jkube-java-binary-s2i:0.0.7 képet használja
[INFO] k8s: [docker.io/rohankanojia/random-generator:0.0.1] "spring-boot": docker-build.tar létrehozva 251 milliszekundum alatt
[INFO] k8s: [docker.io/rohankanojia/random-generator:0.0.1] "spring-boot": Kép sha256:a20e5
[INFO] ------------------------------------------------------------------------
[INFO] KÉSZÍTÉS SIKERES
[INFO] ------------------------------------------------------------------------
[INFO] Teljes idő: 5.053 s
[INFO] Befejezve: 2020-08-10T11:28:23+05:30
[INFO] ------------------------------------------------------------------------
~/work/repos/eclipse-jkube-demo-project : $
3. Lépés: A kép feltöltése a Docker tárolóba
Miután létrehoztuk a Docker-képet a beállított push-tárolónál (ebben az esetben a docker.io), a képet feltölthetjük a tárolóba. Íme, ami a képernyőn megjelenik, miután megkérjük az Eclipse JKube-t a mvn k8s:push feladat végrehajtására:
~\/work\/repos\/eclipse-jkube-demo-project : $ mvn k8s:push
[INFO] Projektek keresése...
[INFO]
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] random-generator 0.0.1 építése
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:push (default-cli) @ random-generator ---
[INFO] k8s: Kubernetes mód engedélyezve
[INFO] k8s: Docker kép építése Kubernetes módban
[INFO] k8s: generátor indítása spring-boot
[INFO] k8s: spring-boot: Az alap / builder Docker kép: quay.io\/jkube\/jkube-java-binary-s2i:0.0.7
[INFO] k8s: A push a következő tárolóra hivatkozik: [docker.io\/rohankanojia\/random-generator]
5dcd9556710f: Réteg már létezik
b7139ad07aa8: Réteg már létezik
b6f081e4b2b6: Réteg már létezik
d8e1f35641ac: Réteg már létezik
[INFO] k8s: 0.0.1: digest: sha256:9f9eda2a13b8cab1d2c9e474248500145fc09e2922fe3735692f9bda4c76002d méret: 1162
[INFO] k8s: docker.io\/rohankanojia\/random-generator:0.0.1 feltöltve 7 másodperc alatt
[INFO] ------------------------------------------------------------------------
[INFO] ÉPÍTÉS SIKERES
[INFO] ------------------------------------------------------------------------
[INFO] Teljes idő: 11.222 s
[INFO] Befejezve: 2020-08-10T11:35:37+05:30
[INFO] ------------------------------------------------------------------------
~\/work\/repos\/eclipse-jkube-demo-project : $
A kép elküldése után ellenőriznünk kell, hogy az bekerült-e a tárolóba. A mi esetünkben egyszerűen láthatjuk a Docker Hub-on, ahogyan az a 4. ábrán látható.

4. ábra. A tárolóba küldött kép megjelent a Docker Hub-on.
4. lépés. Kubernetes-resszúrák manifestjeinek generálása az alkalmazáshoz
Tehát az alkalmazás képe készen áll, most meg kell írni a Kubernetes manifesteket. Erre az Eclipse JKube-ban van egy feladat, amely generálja a robusztus erőforrás manifesteket az alábbi Java keretrendszer (, , Vert.x vagy más) alapján. A manifestet úgy is testreszabhatjuk, hogy konfigurációs XML fájlt alkalmazunk, és a nyers fragmentumokat (a szükséges erőforrás manifest fragmentumait) az alkalmazás src\/main\/jkube mappájába helyezzük. Ekkor a konfiguráció megfelel a generált manifesteknek.
Példánkban mindent változatlanul hagyunk, ezért az Eclipse JKube generálja a manifestet az alapértelmezett telepítéshez és a ClusterIP típusú szolgáltatáshoz. Ezt követően módosítjuk a szolgáltatás manifestjét, hogy a szolgáltatás típusát NodePort-ra állítsuk. Az alapértelmezett viselkedés felülbírálása a következő tulajdonság segítségével lehetséges:
<jkube.enricher.jkube-service.type>NodePort<\/jkube.enricher.jkube-service.type>
Itt látható a képernyőből kiírt információ, miután az Eclipse JKube-t arra kérjük, hogy hajtsa végre a resource feladatot: mvn k8s:resource.
~\/work\/repos\/eclipse-jkube-demo-project : $ mvn k8s:resource
[INFO] Projektek keresése...
[INFO]
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] random-generator 0.0.1 építése
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:resource (default-cli) @ random-generator ---
[INFO] k8s: Generátor indítása spring-boot
[INFO] k8s: spring-boot: Docker kép használata quay.io\/jkube\/jkube-java-binary-s2i:0.0.7 alapként / builderként
[INFO] k8s: jkube-controller: Alapértelmezett telepítés hozzáadása
[INFO] k8s: jkube-service: Alapértelmezett 'random-generator' szolgáltatás hozzáadása [8080] portokkal
[INFO] k8s: jkube-healthcheck-spring-boot: Készség ellenőrzés hozzáadása 8080 porton, útvonal='\/actuator\/health', séma='HTTP', kezdeti késleltetés 10 másodperc
[INFO] k8s: jkube-healthcheck-spring-boot: Élettartam ellenőrzés hozzáadása 8080 porton, útvonal='\/actuator\/health', séma='HTTP', kezdeti késleltetés 180 másodperc
[INFO] k8s: jkube-revision-history: 2-es verziótörténeti korlát hozzáadása
[INFO] ------------------------------------------------------------------------
[INFO] ÉPÍTÉS SIKERES
[INFO] ------------------------------------------------------------------------
[INFO] Teljes idő: 3.344 s
[INFO] Befejezve: 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: git@github.com: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. lépés. Az alkalmazás telepítése a Kubernetes klaszterben
Tehát, mindent előkészítettünk az alkalmazás telepítésére: generáltuk a képét, majd automatikusan generáltuk a forrásmanifestumokat. Most már csak annyit kell tennünk, hogy alkalmazzuk mindezt a Kubernetes klaszterre. Az alkalmazás telepítésére természetesen használhatjuk a kubectl apply -f parancsot, de a plugin ezt is elvégezheti helyettünk. Itt van, mi lesz a képernyőn, miután megkérjük az Eclipse JKube-ot, hogy hajtsa végre az apply feladatot mvn k8s:apply:
~\/work\/repos\/eclipse-jkube-demo-project : $ mvn k8s:apply
[INFO] Projektok beolvasása...
[INFO]
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] random-generator 0.0.1 építése
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:apply (default-cli) @ random-generator ---
[INFO] k8s: Kubernetes elérési út: https:\/\/192.168.39.145:8443\/ a default névtérben a következő megvalósítással: \/home\/rohaan\/work\/repos\/eclipse-jkube-demo-project\/target\/classes\/META-INF\/jkube\/kubernetes.yml
[INFO] k8s: Használva a névtér: default
[INFO] k8s: Szolgáltatás létrehozása a kubernetes.yml alapján, névtér: default, név: random-generator
[INFO] k8s: A Szolgáltatás létrehozva: target\/jkube\/applyJson\/default\/service-random-generator.json
[INFO] k8s: Telepítés létrehozása a kubernetes.yml alapján, névtér: default, név: random-generator
[INFO] k8s: A Telepítés létrehozva: target\/jkube\/applyJson\/default\/deployment-random-generator.json
[INFO] k8s: JELZÉS: Használja a `kubectl get pods -w` parancsot a podok indításának megfigyelésére
[INFO] ------------------------------------------------------------------------
[INFO] ÉPÍTÉS SIKERES
[INFO] ------------------------------------------------------------------------
[INFO] Összesített idő: 7.306 s
[INFO] Befejezve: 2020-08-10T11:40:57+05:30
[INFO] ------------------------------------------------------------------------
~\/work\/repos\/eclipse-jkube-demo-project : $ kubectl get pods -w
NÉV KÉSZ STÁTUSZ ÚJRATÖLTÉSEK KOR
random-generator-58b7847d7f-9m9df 0\/1 Futtatva 0 7s
random-generator-58b7847d7f-9m9df 1\/1 Futtatva 0 17s
^C~\/work\/repos\/eclipse-jkube-demo-project : $ kubectl get svc
NÉV TÍPUS CLUSTER-IP EXTERNAL-IP PORT(S) KOR
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 .
% Összes % Kapott % Xferd Átlagos Sebesség Idő Idő Idő Jelenlegi
Dload Feltöltés Összes Elöltöltött Balra Sebesség
100 45 0 45 0 0 1800 0 --:--:-- --:--:-- --:--:-- 1875
{
"id": "42e5571f-a20f-44b3-8184-370356581d10"
}
6. lépés. Az alkalmazás eltávolítása a Kubernetes klaszterből
Ehhez az undeploy feladatot használjuk, amely egyszerűen eltávolítja az összes erőforrást, amelyet az előző lépésben alkalmaztunk, azaz az apply feladat végrehajtásakor. Ez jelenik meg a képernyőn, miután kérjük az Eclipse JKube-t, hogy hajtsa végre az undeploy feladatot: 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 443\/TCP 18d
service\/random-generator NodePort 10.97.172.147 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] ---------------------------------------------
[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 443\/TCP 18d
~\/work\/repos\/eclipse-jkube-demo-project : $
Mit tehetünk még az Eclipse JKube-vel?
Tehát, áttekintettük az Eclipse JKube és a Kubernetes Maven Plugin fő célfeladatait, amelyek megkönnyítik a Java-alkalmazások fejlesztését a Kubernetes platformon. Ha nem szeretné folyamatosan ezeket a feladatokat a billentyűzeten beírni, akkor azok beírhatók a plugin konfigurációjába, például így:
org.eclipse.jkube
kubernetes-maven-plugin
${project.version}
build
resource
apply
Azt kell mondani, hogy ebben a cikkben nem vizsgáltuk meg az Eclipse JKube és a Kubernetes Maven Plugin összes célfeladatát, ezért az alábbi 2. táblázatban felsoroljuk azokat a további feladatokat, amelyek szintén hasznosak lehetnek számodra.
2. táblázat. További célfeladatok az Eclipse JKube-hez.
Feladat
Fázis
Leírás
VALIDÁLÁS
Alkalmazás naplóinak lekérése, amely Kubernetes-en fut.
CSOMAGOLÁS
A debug port is opened to debug an application running on Kubernetes directly from the IDE.
INSTALL
A fork is created for the Install task, and the generated manifests are applied to the Kubernetes cluster just like in the case of the apply task.
CSOMAGOLÁS
Automatic hot deployment of the application by monitoring its namespace.
Deploying Java applications on Red Hat OpenShift using the OpenShift Maven Plugin
To deploy the application from our example on the Red Hat OpenShift platform, we will use the . The only difference will be that the task prefix will change from k8s to oc. By default, the Kubernetes Maven plugin does -builds, while the OpenShift Maven plugin does builds . We do not make any changes to our project, except for removing the property jkube.generator.name, as it is not required when pushing to the registry (during the build stage, OpenShift places the image in its internal registry). And here's what will appear on the screen when we run our example, where we, by the way, execute goal tasks not one by one, but all at once:
~\/work\/repos\/eclipse-jkube-demo-project : $ mvn oc:build oc:resource oc:apply
[INFO] Projektek keresése...
[INFO]
[INFO] ---------------------------------------------
[INFO] random-generator 0.0.1 építése
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- openshift-maven-plugin:1.0.0-rc-1:build (default-cli) @ random-generator ---
[INFO] oc: OpenShift építési stratégiát S2I használ
[INFO] oc: OpenShift módban fut
[INFO] oc: spring-boot generátor futtatása
[INFO] oc: spring-boot: Docker kép használata quay.io\/jkube\/jkube-java-binary-s2i:0.0.7 alapként \/ builderként
[INFO] oc: [random-generator:0.0.1] "spring-boot": Docker forrás tar létrehozva \/home\/rohaan\/work\/repos\/eclipse-jkube-demo-project\/target\/docker\/random-generator\/0.0.1\/tmp\/docker-build.tar
[INFO] oc: Hozzáadás a Secret pullsecret-jkube-hez
[INFO] oc: Secret pullsecret-jkube használva
[INFO] oc: BuildServiceConfig random-generator-s2i létrehozása for Source build
[INFO] oc: ImageStream random-generator létrehozása
[INFO] oc: Build random-generator-s2i indítása
[INFO] oc: Várakozás a random-generator-s2i-1 build befejezésére...
[INFO] oc: Blobok gyorsítótárazása "\/var\/cache\/blobs" alatt.
[INFO] oc: Kép forrással kapcsolatos aláírások beszerzése
[INFO] oc: Blob sha256:cf0f3ebe9f536c782ab3835049cfbd9a663761ded9370791ef6ea3965c823aad másolása
[INFO] oc: Blob sha256:57de4da701b511cba33bbdc424757f7f3b408bea741ca714ace265da9b59191a másolása
[INFO] oc: Blob sha256:f320f94d91a064281f5127d5f49954b481062c7d56cce3b09910e471cf849050 másolása
[INFO] oc: Konfiguráció sha256:52d6788fcfdd39595264d34a3959464a5dabc1d4ef0ae188802b20fc2d6a857b másolása
[INFO] oc: Manifest írása a kép céljához
[INFO] oc: Aláírások tárolása
[INFO] oc: Dockerfile generálása builder képpel quay.io\/jkube\/jkube-java-binary-s2i:0.0.7
[INFO] oc: 1. LÉPÉS: FROM quay.io\/jkube\/jkube-java-binary-s2i:0.0.7
[INFO] oc: 2. LÉPÉS: 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: 3. LÉPÉS: ENV JAVA_APP_DIR="\/deployments" OPENSHIFT_BUILD_NAME="random-generator-s2i-1" OPENSHIFT_BUILD_NAMESPACE="default"
[INFO] oc: 4. LÉPÉS: USER root
[INFO] oc: 5. LÉPÉS: COPY upload\/src \/tmp\/src
[INFO] oc: 6. LÉPÉS: RUN chown -R 1000:0 \/tmp\/src
[INFO] oc: 7. LÉPÉS: USER 1000
[INFO] oc: 8. LÉPÉS: RUN \/usr\/local\/s2i\/assemble
[INFO] oc: INFO S2I forrás build egyszerű binárisokkal észlelve
[INFO] oc: INFO S2I bináris build a fabric8-maven-plugin-ból észlelve
[INFO] oc: INFO Binárisok másolása \/tmp\/src\/deployments-ból \/deployments-be ...
[INFO] oc: random-generator-0.0.1.jar
[INFO] oc: INFO Telepítések másolása telepítésekből \/deployments-be...
[INFO] oc: '\/tmp\/src\/deployments\/random-generator-0.0.1.jar' -> '\/deployments\/random-generator-0.0.1.jar'
[INFO] oc: 9. LÉPÉS: CMD \/usr\/local\/s2i\/run
[INFO] oc: 10. LÉPÉS: COMMIT temp.builder.openshift.io\/default\/random-generator-s2i-1:48795e41
[INFO] oc: time="2020-08-10T06:37:49Z" level=info msg="Kép operációs rendszer eltérés: a kép "", elvárt "linux""
[INFO] oc: time="2020-08-10T06:37:49Z" level=info msg="Kép architektúra eltérés: a kép "", elvárt "amd64""
[INFO] oc: Kép forrással kapcsolatos aláírások beszerzése
[INFO] oc: Blob sha256:d8e1f35641acb80b562f70cf49911341dfbe8c86f4d522b18efbf3732aa74223 másolása
[INFO] oc: Blob sha256:b6f081e4b2b6de8be4b1dec132043d14c121e968384dd624fb69c2c07b482edb másolása
[INFO] oc: Blob sha256:b7139ad07aa8ce4ed5a132f7c5cc9f1de0f5099b5e155027a23d57f7fbe78b16 másolása
[INFO] oc: Blob sha256:98972fc90a1108315cc5b05b2c691a0849a149727a7b81e76bc847ac2c6d9714 másolása
[INFO] oc: Konfiguráció sha256:27aaadaf28e24856a66db962b88118b8222b61d79163dceeeed869f7289bc230 másolása
[INFO] oc: Manifest írása a kép céljához
[INFO] oc: Aláírások tárolása
[INFO] oc: -- > 27aaadaf28e
[INFO] oc: 27aaadaf28e24856a66db962b88118b8222b61d79163dceeeed869f7289bc230
[INFO] oc: Kép forrással kapcsolatos aláírások beszerzése
[INFO] oc:
[INFO] oc: Kép tolása image-registry.openshift-image-registry.svc:5000\/default\/random-generator:0.0.1 ...
[INFO] oc: Blob sha256:f320f94d91a064281f5127d5f49954b481062c7d56cce3b09910e471cf849050 másolása
[INFO] oc: Blob sha256:cf0f3ebe9f536c782ab3835049cfbd9a663761ded9370791ef6ea3965c823aad másolása
[INFO] oc: Blob sha256:57de4da701b511cba33bbdc424757f7f3b408bea741ca714ace265da9b59191a másolása
[INFO] oc: Blob sha256:98972fc90a1108315cc5b05b2c691a0849a149727a7b81e76bc847ac2c6d9714 másolása
[INFO] oc: Konfiguráció sha256:27aaadaf28e24856a66db962b88118b8222b61d79163dceeeed869f7289bc230 másolása
[INFO] oc: Manifest írása a kép céljához
[INFO] oc: Aláírások tárolása
[INFO] oc: A kép sikeresen tolva image-registry.openshift-image-registry.svc:5000\/default\/random-generator@sha256:aa9e1a380c04ef9174ba56459c13d44420ebe653ebf32884d60fe4306b17306d
[INFO] oc: Tolás sikeres
[INFO] oc: A random-generator-s2i-1 build állapota: Befejezett
[INFO] oc: Címke található az ImageStream random-generator tag: sha256:aa9e1a380c04ef9174ba56459c13d44420ebe653ebf32884d60fe4306b17306d
[INFO] oc: ImageStream random-generator írva a \/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: Docker képnév használata a névtérben: default
[INFO] oc: spring-boot generátor futtatása
[INFO] oc: spring-boot: Docker kép használata quay.io\/jkube\/jkube-java-binary-s2i:0.0.7 alapként \/ builderként
[INFO] oc: jkube-controller: Alapértelmezett DeploymentConfig hozzáadása
[INFO] oc: jkube-service: Alapértelmezett szolgáltatás 'random-generator' létrehozása 8080 porttal
[INFO] oc: jkube-healthcheck-spring-boot: Készlet ellenőrzés hozzáadása 8080 porton, útvonal='\/actuator\/health', séma='HTTP', 10 másodperc kezdeti késleltetéssel
[INFO] oc: jkube-healthcheck-spring-boot: Élő ellenőrzés hozzáadása 8080 porton, útvonal='\/actuator\/health', séma='HTTP', 180 másodperc kezdeti késleltetéssel
[INFO] oc: jkube-revision-history: Revíziótörténeti korlát hozzáadása: 2
[INFO]
[INFO] --- openshift-maven-plugin:1.0.0-rc-1:apply (default-cli) @ random-generator ---
[INFO] oc: OpenShift használata a https:\/\/api.crc.testing:6443\/ névtérben default a manifestből \/home\/rohaan\/work\/repos\/eclipse-jkube-demo-project\/target\/classes\/META-INF\/jkube\/openshift.yml
[INFO] oc: OpenShift platform észlelve
[INFO] oc: Használatban lévő projekt: default
[INFO] oc: Szolgáltatás létrehozása az openshift.yml-ból névtér default néven random-generator
[INFO] oc: Szolgáltatás létrehozva: target\/jkube\/applyJson\/default\/service-random-generator.json
[INFO] oc: DeploymentConfig létrehozása az openshift.yml-ból névtér default néven random-generator
[INFO] oc: DeploymentConfig létrehozva: target\/jkube\/applyJson\/default\/deploymentconfig-random-generator.json
[INFO] oc: Route létrehozása default:random-generator host: null
[INFO] oc: JÓ TANÁCS: Használja a `oc get pods -w` parancsot, hogy figyelje a podokat elinduláskor
[INFO] ------------------------------------------------------------------------
[INFO] ÉPÍTÉS SIKERES
[INFO] ------------------------------------------------------------------------
[INFO] Összes idő: 01:07 perc
[INFO] Befejezés ideje: 2020-08-10T12:08:00+05:30
[INFO] ------------------------------------------------------------------------
~\/work\/repos\/eclipse-jkube-demo-project : $ oc get pods -w
NÉV KÉSZ ÁLLAPOT ÚJRAINDÍTÁS KOR
random-generator-1-deploy 1\/1 Futtatásban 0 14s
random-generator-1-vnrm9 0\/1 Futtatásban 0 11s
random-generator-s2i-1-build 0\/1 Befejezett 0 1m
random-generator-1-vnrm9 1\/1 Futtatásban 0 24s
random-generator-1-deploy 0\/1 Befejezett 0 28s
~\/work\/repos\/eclipse-jkube-demo-project : $ oc get routes
NÉV HOST\/PORT ÚTVONAL SZOLGÁLTATÁSOK PORT LEZÁRÁS WILD CARD
random-generator random-generator-default.apps-crc.testing random-generator 8080 Nincs
~\/work\/repos\/eclipse-jkube-demo-project : $ curl random-generator-default.apps-crc.testing\/random
% Összes % Fogadott % Xferd Átlagos Sebesség Idő Idő Idő Jelenlegi
Letöltés Feltöltés Összes Elköltött Bal Sebesség
100 45 0 45 0 0 1666 0 --:--:-- --:--:-- --:--:-- 1730
{
"id": "d80052d9-2f92-43cb-b9eb-d7cffb879798"
}
~\/work\/repos\/eclipse-jkube-demo-project : $
Videó-tutorial
Ha többet szeretne megtudni arról, hogyan egyszerűsítheti a Kubernetes-fejlesztést az Eclipse JKube segítségével, nézze meg a videó-tutorialt a Spring Boot egyszerű alkalmazás gyors telepítéséről a Minikube-on:

Zárás
Ebben a cikkben bemutattuk, hogyan könnyíti meg az Eclipse JKube a Java fejlesztők életét a Kubernetes használata során. További információt az Eclipse JKube-ról a következő címen talál: és .
Forrás: habr.com
