25 aastat tagasi tuli Java laiale arendajaskonnale, et lõpuks saada üheks nendest tugipunktidest, mille ümber rakenduste tehnoloogiad ehitatakse. Siiski on täna paljud inimesed ja organisatsioonid, kes on aastaid Java-le truuks jäänud, hõivatud platvormile ülemisega või kaaluvad selle üleminekut või selle alamtasanditele, nagu või .

Kahjuks on Kubernetesel järsk õppimiskõver ning see lisab veel ühe operatiivse taseme Java-arendajate jaoks tuttavasse arendusprotsessi. Täna räägime, kuidas kasutada , et lihtsustada neid täiendavaid operatsioone, mis on seotud Kubernetesega ja konteineritega, ning tagada valutuks üleminekuks pilveplatvormile, säilitades tuttava Java ökosüsteemi. Veelgi enam, näitame, kuidas juurutada Java rakendusi OpenShift platvormil OpenShift Maven plugina abil.
Traditsiooniline Java-arenduse protsess
Traditsiooniline arendusprotsess (Kujutis 1) eeldab, et arendaja kirjutab koodi, seejärel loob juurutamisüksusi JAR või WAR failide kujul ja seejärel juurutab ja käivitab need failid veebiserveris või rakenduste serveris. Selleks kasutatakse peamiselt Maven'i käsurealt või IDE-sid, nagu IntelliJ või Eclipse, rakenduste kodeerimiseks ja pakendamiseks. Arendajad on harjunud koodis muudatusi tegema ja kõik hoolikalt testima, enne kui nad koodi fikseerivad ja versioonihaldussüsteemi edastavad.

Kujutis 1. Traditsiooniline Java-arenduse protsess.
Java arenduse protsess pilves
Pilve rakendustele üleminekuga lisanduvad ülaltoodud schemale Kubernetes ja . Seega peab arendaja nüüd Java rakendused konteineripiltideks pakendama ja looma Kubernetes'e manifestid, mis kirjeldavad neid pilte. Seejärel rakendatakse neid manifeste tootmisserverile, kus töötab Kubernetes. Omakorda võtab Kubernetes need pildid registrist ja juurutab rakendused vastavalt neile konfiguratsioonidele, mille oleme manifestidesse määranud, mis tavaliselt on YAML-failid.
Traditsioonilise Java-arenduse protsessi metamorfoos pilve ülemineku korral on näidatud Kujutisel 2.

Kujutis 2. Java arenduse protsess pilves.
Eclipse JKube
Kubernetesi kasutusele võtmine lisab arendusprotsessile veel ühe operatiivse tasandi, mis ajab paljusid arendajaid närvi, kuna nad soovivad keskenduda oma põhitegevusele – rakenduste loogikale – mitte sellele, kuidas neid rakendada. Siin tuleb mängu , mis võimaldab arendajatel kasutada oma raamatukogusid ja pluginaid ( koos või ), et probleemideta teostada konteineritega ja Kubernetesega seotud toiminguid, järgides joonisel 2 esitatud skeemi.
Selles artiklis näitame, kuidas lihtsustada Java arendust Kubernetes keskkonnas, kasutades Eclipse JKube'i koos Kubernetes Maven Pluginiga.
Eclipse JKube'i kasutamine pilves arendamise protsessis
Vaadake veidi muudetud Java arenduse skeemi pilves, nagu on näidatud joonisel 2, tutvustades selles Eclipse JKube'i ja Kubernetes Maven Plugin'i, nagu on näidatud joonisel 3.

Joonis 3. Java arendamise protsess pilves, kasutades Eclipse JKube'i.
Nagu näeme, on siin kõik Kubernetesega ja konteineritega seotud toimingud (skeemil punasega esile tõstetud) asendatud Eclipse JKube’i vaikimisi eesmärgiga, mis on loetletud tabelis 1.
Tabel 1. Eclipse JKube’i vaikimisi ülesanded.
Ülesanne
Prepare, Test ja Report
Kirjeldus
PRE_INTEGRATION_TEST
Docker-piltide koostamine
INSTALL
Docker-piltide saatmine registrisse
PROCESS_RESOURCES
K8s-i manifestide genereerimine
COMPILE
Genereeritud manifestide rakendamine K8s-ile
UNDEPLOY
K8s-i ressursside eemaldamine, mis on rakendatud k8s:apply ja k8s:deploy kaudu
Märkus: Kui te ei soovi, et ülesanded kasutaksid neid jäigaid vaikeseadeid (opinionated defaults), saate Eclipse JKube'i käsitsi konfigureerida, sest see toetab konfigureerimist kaudu ja .
Nüüd vaatame näiteid Eclipse JKube'i ja Kubernetes Maven Plugin'i kasutamisest rakendustele.
Rakendame Java rakenduse Kubernetes's, kasutades Eclipse JKube'i
Selles näites rakendame lihtsa Java rakenduse klastris Eclipse JKube'i kaudu. Kasutades Kubernetes Maven Plugin'i, saame määrata rakendamisparameetrid, ilma et peaksime kirjeldama mingit konfiguratsiooni.
Näidisrakenduseks on meil , mis annab JSON-väljundi lõpp-punktis\/random:
~\/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"
}
Samm 1. Laadime Kubernetes Maven Plugin'i
Kubernetes Maven Plugin asub hoidlas . Eclipse JKube'i kasutamiseks tuleb lisada Kubernetes Maven Plugin oma pom.xml faili sõltuvusena:
org.eclipse.jkube
kubernetes-maven-plugin
${jkube.version}
Kui kasutatakse OpenShift'i puhta Kubernetes'i asemel, modifitseeritakse pom.xml järgmiselt:
org.eclipse.jkube
openshift-maven-plugin
${jkube.version}
Samm 2. Kogume docker-pildi
Rakenduse JAR-faili saab koguda käsuga mvn package, seejärel saab kasutada eesmärki mvn k8s:build, et koguda selle rakenduse docker-pilt. Pange tähele, et oleme vaikimisi pildi nime üle määranud järgmise omadusega:
docker.io/rohankanojia/random-generator:${project.version}
Enne pildi kogumist tuleb veenduda, et docker-demo on õigesti eksponeeritud. Seda saab teha järgmist käsuga:
$ eval $(minikube docker-env)
Seejärel sisestame käsu mvn k8s:build, ja siin on, mida me näeme ekraanil, kui kogume docker-pilti Eclipse JKube'i build-ülesande abil:
~/work/repos/eclipse-jkube-demo-project : $ mvn k8s:build
[INFO] Projekte skaneerimine...
[INFO]
[INFO] ---------------------------------------------
[INFO] Kogume random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:build (default-cli) @ random-generator ---
[INFO] k8s: Käitab Kubernetes režiimis
[INFO] k8s: Kogub Docker pilti Kubernetes režiimis
[INFO] k8s: Käitab generaatorit spring-boot
[INFO] k8s: spring-boot: Kasutades Docker pilti quay.io/jkube/jkube-java-binary-s2i:0.0.7 baasi / koostaja
[INFO] k8s: [docker.io/rohankanojia/random-generator:0.0.1] "spring-boot": Loodud docker-build.tar 251 millisekundi jooksul
[INFO] k8s: [docker.io/rohankanojia/random-generator:0.0.1] "spring-boot": Koostatud pildi sha256:a20e5
[INFO] ------------------------------------------------------------------------
[INFO] KOOSTAMINE ÕNNESTUS
[INFO] ------------------------------------------------------------------------
[INFO] Kokku kestis: 5.053 s
[INFO] Lõpetatud: 2020-08-10T11:28:23+05:30
[INFO] ------------------------------------------------------------------------
~/work/repos/eclipse-jkube-demo-project : $
Samm 3. Saadame pildi docker-registrisse
Pärast seda, kui oleme docker-pildi koos seadistatud push-registriga (meie juhul docker.io) kogunud, saame selle registrisse saata. Siin on, mida ekraanile ilmub pärast seda, kui palume Eclipse JKube'il push-ülesannet mvn k8s:push teostada:
~\/work\/repos\/eclipse-jkube-demo-project : $ mvn k8s:push
[INFO] Projekte otsitakse...
[INFO]
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Koostamine random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:push (default-cli) @ random-generator ---
[INFO] k8s: Käivitatakse Kubernetes režiimis
[INFO] k8s: Koostatakse Docker-pilt Kubernetes režiimis
[INFO] k8s: Käivitatakse generaator spring-boot
[INFO] k8s: spring-boot: Kasutatakse Docker-pilti quay.io\/jkube\/jkube-java-binary-s2i:0.0.7 aluseks \/ ehitajana
[INFO] k8s: Push viitab registrile [docker.io\/rohankanojia\/random-generator]
5dcd9556710f: Kiht juba eksisteerib
b7139ad07aa8: Kiht juba eksisteerib
b6f081e4b2b6: Kiht juba eksisteerib
d8e1f35641ac: Kiht juba eksisteerib
[INFO] k8s: 0.0.1: digest: sha256:9f9eda2a13b8cab1d2c9e474248500145fc09e2922fe3735692f9bda4c76002d suurus: 1162
[INFO] k8s: Saadetud docker.io\/rohankanojia\/random-generator:0.0.1 7 sekundi jooksul
[INFO] ------------------------------------------------------------------------
[INFO] EHIH EDU
[INFO] ------------------------------------------------------------------------
[INFO] Kokku aega: 11.222 s
[INFO] Valmis: 2020-08-10T11:35:37+05:30
[INFO] ------------------------------------------------------------------------
~\/work\/repos\/eclipse-jkube-demo-project : $
Pärast pildi saatmist tuleb kontrollida, et see on registrisse jõudnud. Meie puhul näeme seda lihtsalt Docker Hub'is, nagu on näidatud joonisel 4.

Joonis 4. Saadetud registrisse pilt ilmus Docker Hub'is.
Samm 4. Genereerime Kubernetes-i ressursside manifestid rakenduse jaoks
Nii et rakenduse pilt on meil valmis, nüüd tuleb kirjutada Kubernetes-i manifestid. Selle jaoks on Eclipse JKubes ülesanne, mis genereerib jämedad ressursi manifestid, lähtudes allolevast Java-raamist (, , Vert.x või mõni muu). Samuti on võimalik manifesti konfigureerida, kasutades konfiguratsioonilise XML-faili ja paigaldades raw-fragmentid (vajalike ressursi manifestide fragmentid) rakenduse kausta src\/main\/jkube. Sellisel juhul laaditakse teie konfigureerimine genereeritud manifestidesse.
Meie näites jätame kõik endiseks, seega genereerib Eclipse JKube manifesti vaikimisi juurutamiseks ja teenusele, mille tüüp on ClusterIP. Ja pärast seda modifitseerime teenuse manifesti, et muuta teenuse tüüpi NodePort. Vaikimisi käitumise ülekirjutamiseks võib kasutada järgmist omadust:
<jkube.enricher.jkube-service.type>NodePort<\/jkube.enricher.jkube-service.type>
Nii näeb välja ekraaniväljund pärast seda, kui palume Eclipse JKube'l käitada ressursside ülesannet mvn k8s:resource.
~\/work\/repos\/eclipse-jkube-demo-project : $ mvn k8s:resource
[INFO] Otsitakse projekte...
[INFO]
[INFO] ---------------------------------------------
[INFO] Koostame random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:resource (default-cli) @ random-generator ---
[INFO] k8s: Käivitame generaatori spring-boot
[INFO] k8s: spring-boot: Kasutame Docker pilti quay.io\/jkube\/jkube-java-binary-s2i:0.0.7 alusena \/ ehitajana
[INFO] k8s: jkube-controller: Lisame vaike Deployment'i
[INFO] k8s: jkube-service: Lisame vaike teenuse 'random-generator' portidega [8080]
[INFO] k8s: jkube-healthcheck-spring-boot: Lisame valmisoleku kontrolli pordil 8080, tee='\/actuator\/health', skeem='HTTP', algse viivitusega 10 sekundit
[INFO] k8s: jkube-healthcheck-spring-boot: Lisame elujõu kontrolli pordil 8080, tee='\/actuator\/health', skeem='HTTP', algse viivitusega 180 sekundit
[INFO] k8s: jkube-revision-history: Lisame versiooni ajalugu piirangu 2
[INFO] ------------------------------------------------------------------------
[INFO] EHITUS ÕNNESTUS
[INFO] ------------------------------------------------------------------------
[INFO] Kogu aeg: 3.344 s
[INFO] Lõpetatud: 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 : $
Samm 5. Rakenduse juurutamine Kubernetes klastris
Nii, nüüd on kõik valmis, et rakenduse juurutamine ellu viia: oleme genereerinud selle pildi ja seejärel automaatselt genereerinud ressursside manifestid. Nüüd jääbki vaid need Kubernetes klastrisse rakendada. Rakenduse juurutamiseks võite muidugi kasutada käsku kubectl apply -f, kuid pistikprogramm suudab selle samuti meie eest teha. Siin on ekraan, mis ilmub pärast seda, kui palume Eclipse JKube'il täita apply-ülesande mvn k8s:apply:
~\/work\/repos\/eclipse-jkube-demo-project : $ mvn k8s:apply
[INFO] Projekte skaneerimine...
[INFO]
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Koostatakse random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:apply (default-cli) @ random-generator ---
[INFO] k8s: Kasutatakse Kubernetes'i aadressil https:\/\/192.168.39.145:8443\/ vaikeseades koos manifestiga \/home\/rohaan\/work\/repos\/eclipse-jkube-demo-project\/target\/classes\/META-INF\/jkube\/kubernetes.yml
[INFO] k8s: Kasutatakse vaikeseadet: default
[INFO] k8s: Loomine teenuseks kubernetes.yml vaikeseade nimega random-generator
[INFO] k8s: Teenus loodud: target\/jkube\/applyJson\/default\/service-random-generator.json
[INFO] k8s: Loomine juurutamiseks kubernetes.yml vaikeseade nimega random-generator
[INFO] k8s: Juurutus loodud: target\/jkube\/applyJson\/default\/deployment-random-generator.json
[INFO] k8s: NIPP: Kasutage käsku `kubectl get pods -w`, et jälgida oma podide käivitumist
[INFO] ------------------------------------------------------------------------
[INFO] EHITUS ÕNNESTUS
[INFO] ------------------------------------------------------------------------
[INFO] Kogu aeg: 7.306 s
[INFO] Valmis kell: 2020-08-10T11:40:57+05:30
[INFO] ------------------------------------------------------------------------
~\/work\/repos\/eclipse-jkube-demo-project : $ kubectl get pods -w
NIMI VALMIS STSENAARIUM UUDISTE D VANUSE
random-generator-58b7847d7f-9m9df 0\/1 Käivitamisel 0 7s
random-generator-58b7847d7f-9m9df 1\/1 Käivitamisel 0 17s
^C~\/work\/repos\/eclipse-jkube-demo-project : $ kubectl get svc
NIMI Tüüp KLASSEERIMIS-IP VÄLIS-IP PORT(S) VANUSE
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 .
% Kogu % Saadud % Xferd Keskmine Kiirus Aeg Aeg Aeg Praegune
Laaditud Üles Kogu Veedetud Jäänud Kiirus
100 45 0 45 0 0 1800 0 --:--:-- --:--:-- --:--:-- 1875
{
"id": "42e5571f-a20f-44b3-8184-370356581d10"
}
Samm 6. Eemaldame rakenduse Kubernetes'i klastrist
Selleks kasutatakse undeploy ülesannet, mis lihtsalt eemaldab kõik ressursid, mis oli rakendatud eelmisel sammul, st ülesande apply täitmise ajal. Siin on, mida me näeme ekraanil pärast seda, kui palume Eclipse JKube'il täita undeploy-ülesanne 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 : $
Mida veel saab Eclipse JKube'iga teha
Oleme tutvunud Eclipse JKube ja Kubernetes Maven Plugin'i põhieesmärkidega, mis lihtsustavad Java rakenduste arendamist Kubernetes platvormile. Kui te ei soovi neid ülesandeid pidevalt käsitsi sisestada, saate need pluginaklassifitseerimisse lisada, näiteks niimoodi:
org.eclipse.jkube
kubernetes-maven-plugin
${project.version}
build
resource
apply
Tuleb märkida, et selles artiklis tutvustasime kaugelt mitte kõikide eesmärkide ülesandeid, mis on Eclipse JKube'is ja Kubernetes Maven Plugin'is, seega toome allpool tabelis 2 välja täiendavad ülesanded, mis võivad samuti kasulikud olla.
Tabel 2. Täiendavad eesmärgid Eclipse JKube'is.
Ülesanne
Prepare, Test ja Report
Kirjeldus
VALIDATE
Logide saamine rakendusest, mis töötab Kubernetes'is.
PAKETT
Silmaporti avamine rakenduse silumiseks, mis töötab Kuberneteses, otse IDE-st.
INSTALL
Foori loomine Install-ülesande jaoks ja genereeritud manifestide rakendamine Kubernetes klastrisse samamoodi nagu apply-ülesande puhul.
PAKETT
Rakenduse automaatne kuumaseadmine selle nimestruktuuri jälgimise kaudu.
Java rakenduste juurutamine Red Hat OpenShiftis OpenShift Maven Plugin abil.
Rakenduse juurutamiseks meie näites Red Hat OpenShift platvormil kasutame pluginat. . Ainus erinevus on see, et ülesannete prefiks muutub k8s-lt oc-ks. Vaikimisi teeb Kubernetes Maven plugin -kokkuvõtteid, samas kui OpenShift Maven plugin – kokkuvõtteid. . Me ei tee oma projekti mingeid muutusi, välja arvatud jkube.generator.name atribuutide eemaldamine, kuna see ei ole registreerimisel vajalik (OpenShiftis asub pildiregister oma sisemises registris). Ja siin on see, mis kuvatakse ekraanil, kui käivitame meie näite, kus me, muide, käivitame ülesande eesmärke mitte ükshaaval, vaid kõik korraga:
~\/work\/repos\/eclipse-jkube-demo-project : $ mvn oc:build oc:resource oc:apply
[INFO] Otsin projekte...
[INFO]
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Ehitan random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- openshift-maven-plugin:1.0.0-rc-1:build (default-cli) @ random-generator ---
[INFO] oc: Kasutatakse OpenShift ehitusstrateegiat S2I
[INFO] oc: Käivitamine OpenShift režiimis
[INFO] oc: Käivitamine generaator spring-boot
[INFO] oc: spring-boot: Kasutatakse Docker pilti quay.io\/jkube\/jkube-java-binary-s2i:0.0.7 kui baasi \/ builder
[INFO] oc: [random-generator:0.0.1] "spring-boot": Loodi docker allikas tar\/home\/rohaan\/work\/repos\/eclipse-jkube-demo-project\/target\/docker\/random-generator\/0.0.1\/tmp\/docker-build.tar
[INFO] oc: Lisamine Salajasele pullsecret-jkube
[INFO] oc: Kasutatakse Salajast pullsecret-jkube
[INFO] oc: Luua BuildServiceConfig random-generator-s2i allika ehitusseks
[INFO] oc: Luua ImageStream random-generator
[INFO] oc: Käivita ehitus random-generator-s2i
[INFO] oc: Ootan, et ehitus random-generator-s2i-1 lõpetaks...
[INFO] oc: Töötluse allakonteinerid "\/var\/cache\/blobs".
[INFO] oc: Saamine pildi allika allkiri
[INFO] oc: Kopeerimine blob sha256:cf0f3ebe9f536c782ab3835049cfbd9a663761ded9370791ef6ea3965c823aad
[INFO] oc: Kopeerimine blob sha256:57de4da701b511cba33bbdc424757f7f3b408bea741ca714ace265da9b59191a
[INFO] oc: Kopeerimine blob sha256:f320f94d91a064281f5127d5f49954b481062c7d56cce3b09910e471cf849050
[INFO] oc: Kopeerimine konfi sha256:52d6788fcfdd39595264d34a3959464a5dabc1d4ef0ae188802b20fc2d6a857b
[INFO] oc: Kirjuta manfest pildi sihtkohta
[INFO] oc: Salvestamine allkirjad
[INFO] oc: Generoimine dockerfile ehitajapildiga quay.io\/jkube\/jkube-java-binary-s2i:0.0.7
[INFO] oc: SAMM 1: KUJUNEDA quay.io\/jkube\/jkube-java-binary-s2i:0.0.7
[INFO] oc: SAMM 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: SAMM 3: ENV JAVA_APP_DIR="\/deployments" OPENSHIFT_BUILD_NAME="random-generator-s2i-1" OPENSHIFT_BUILD_NAMESPACE="default"
[INFO] oc: SAMM 4: KASUTAJA root
[INFO] oc: SAMM 5: KOPEERIDA upload\/src \/tmp\/src
[INFO] oc: SAMM 6: RUN chown -R 1000:0 \/tmp\/src
[INFO] oc: SAMM 7: KASUTAJA 1000
[INFO] oc: SAMM 8: RUN \/usr\/local\/s2i\/assemble
[INFO] oc: INFO S2I allika ehitus tavaliste binaaride poolt tuvastatud
[INFO] oc: INFO S2I binaaride ehitus fabric8-maven-plugin poolt tuvastatud
[INFO] oc: INFO Kopeerimine binaare \/tmp\/src\/deployments to \/deployments ...
[INFO] oc: random-generator-0.0.1.jar
[INFO] oc: INFO Kopeerimine paigaldusi paigaldustest \/deployments...
[INFO] oc: '"\/tmp\/src\/deployments\/random-generator-0.0.1.jar' -> '"\/deployments\/random-generator-0.0.1.jar'
[INFO] oc: SAMM 9: CMD \/usr\/local\/s2i\/run
[INFO] oc: SAMM 10: KOHANDA temp.builder.openshift.io\/default\/random-generator-s2i-1:48795e41
[INFO] oc: aeg="2020-08-10T06:37:49Z" tase=info msg="Pildi operatsioonisüsteemi sobimatus: pilt kasutab "", oodates "linux""
[INFO] oc: aeg="2020-08-10T06:37:49Z" tase=info msg="Pildi arhitektuuri sobimatus: pilt kasutab "", oodates "amd64""
[INFO] oc: Saamine pildi allika allkiri
[INFO] oc: Kopeerimine blob sha256:d8e1f35641acb80b562f70cf49911341dfbe8c86f4d522b18efbf3732aa74223
[INFO] oc: Kopeerimine blob sha256:b6f081e4b2b6de8be4b1dec132043d14c121e968384dd624fb69c2c07b482edb
[INFO] oc: Kopeerimine blob sha256:b7139ad07aa8ce4ed5a132f7c5cc9f1de0f5099b5e155027a23d57f7fbe78b16
[INFO] oc: Kopeerimine blob sha256:98972fc90a1108315cc5b05b2c691a0849a149727a7b81e76bc847ac2c6d9714
[INFO] oc: Kopeerimine konfi sha256:27aaadaf28e24856a66db962b88118b8222b61d79163dceeeed869f7289bc230
[INFO] oc: Kirjuta manfest pildi sihtkohta
[INFO] oc: Salvestamine allkirjad
[INFO] oc: --> 27aaadaf28e
[INFO] oc: 27aaadaf28e24856a66db962b88118b8222b61d79163dceeeed869f7289bc230
[INFO] oc: Saamine pildi allika allkiri
[INFO] oc:
[INFO] oc: Pushime pilti image-registry.openshift-image-registry.svc:5000\/default\/random-generator:0.0.1 ...
[INFO] oc: Kopeerimine blob sha256:f320f94d91a064281f5127d5f49954b481062c7d56cce3b09910e471cf849050
[INFO] oc: Kopeerimine blob sha256:cf0f3ebe9f536c782ab3835049cfbd9a663761ded9370791ef6ea3965c823aad
[INFO] oc: Kopeerimine blob sha256:57de4da701b511cba33bbdc424757f7f3b408bea741ca714ace265da9b59191a
[INFO] oc: Kopeerimine blob sha256:98972fc90a1108315cc5b05b2c691a0849a149727a7b81e76bc847ac2c6d9714
[INFO] oc: Kopeerimine konfi sha256:27aaadaf28e24856a66db962b88118b8222b61d79163dceeeed869f7289bc230
[INFO] oc: Kirjuta manfest pildi sihtkohta
[INFO] oc: Salvestamine allkirjad
[INFO] oc: Edukalt edastatud image-registry.openshift-image-registry.svc:5000\/default\/random-generator@sha256:aa9e1a380c04ef9174ba56459c13d44420ebe653ebf32884d60fe4306b17306d
[INFO] oc: Push õnnestus
[INFO] oc: Ehita random-generator-s2i-1 olek Täielik
[INFO] oc: Leitud silt ImageStream random-generator silt: sha256:aa9e1a380c04ef9174ba56459c13d44420ebe653ebf32884d60fe4306b17306d
[INFO] oc: ImageStream random-generator kirjutatud failina \/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: Kasutatakse docker pildi nime nimespaksuses: default
[INFO] oc: Käivitamine generaator spring-boot
[INFO] oc: spring-boot: Kasutatakse Docker pilti quay.io\/jkube\/jkube-java-binary-s2i:0.0.7 kui baasi \/ builder
[INFO] oc: jkube-controller: Lisatakse vaikimisi DeploymentConfig
[INFO] oc: jkube-service: Lisatakse vaikimisi teenus 'random-generator', portidega [8080]
[INFO] oc: jkube-healthcheck-spring-boot: Lisatakse valmisolekuproov portil 8080, teel='\/actuator\/health', skeem='HTTP', algse viivitusega 10 sekundit
[INFO] oc: jkube-healthcheck-spring-boot: Lisatakse elavuse proov portil 8080, teel='\/actuator\/health', skeem='HTTP', algse viivitusega 180 sekundit
[INFO] oc: jkube-revision-history: Lisatakse revision ajalugu piirang 2
[INFO]
[INFO] --- openshift-maven-plugin:1.0.0-rc-1:apply (default-cli) @ random-generator ---
[INFO] oc: Kasutatakse OpenShift'i aadressil https:\/\/api.crc.testing:6443\/ nimespaksuses default manifest failis \/home\/rohaan\/work\/repos\/eclipse-jkube-demo-project\/target\/classes\/META-INF\/jkube\/openshift.yml
[INFO] oc: OpenShift platvorm tuvastatud
[INFO] oc: Kasutatakse projekti: default
[INFO] oc: Teenuse loomiseks openshift.yml nimespaksuses default nimega random-generator
[INFO] oc: Teenus loodud: target\/jkube\/applyJson\/default\/service-random-generator.json
[INFO] oc: Looge DeploymentConfig openshift.yml nimespaksuses default nimega random-generator
[INFO] oc: DeploymentConfig loodud: target\/jkube\/applyJson\/default\/deploymentconfig-random-generator.json
[INFO] oc: Looge Rada default:random-generator host: null
[INFO] oc: NÕU: Kasutage käsku `oc get pods -w`, et jälgida, kuidas teie pod'id käivituvad
[INFO] ------------------------------------------------------------------------
[INFO] EHITUS ÕNNESTUS
[INFO] ------------------------------------------------------------------------
[INFO] Kogu aeg: 01:07 min
[INFO] Lõpetatud kell: 2020-08-10T12:08:00+05:30
[INFO] ------------------------------------------------------------------------
~\/work\/repos\/eclipse-jkube-demo-project : $ oc get pods -w
NIMI VALMIS OLEK UUESTI ALGATATUD VANUS
random-generator-1-deploy 1\/1 Käivitus 0 14s
random-generator-1-vnrm9 0\/1 Käivitus 0 11s
random-generator-s2i-1-build 0\/1 Lõpetatud 0 1m
random-generator-1-vnrm9 1\/1 Käivitus 0 24s
random-generator-1-deploy 0\/1 Lõpetatud 0 28s
~\/work\/repos\/eclipse-jkube-demo-project : $ oc get routes
NIMI HOST\/PORT TEED TEENUSED PORT LÕPETAMINE JAH
random-generator random-generator-default.apps-crc.testing random-generator 8080 Ei
~\/work\/repos\/eclipse-jkube-demo-project : $ curl random-generator-default.apps-crc.testing\/random
% Kogus % Vastuvõetud % Xferd Keskmine Kiirus Aeg Aeg Aeg Praegune
Dload Lae Kogu Kulutatud Jäänud Kiirus
100 45 0 45 0 0 1666 0 --:--:-- --:--:-- --:--:-- 1730
{
"id": "d80052d9-2f92-43cb-b9eb-d7cffb879798"
}
~\/work\/repos\/eclipse-jkube-demo-project : $
Videoõpetus
Kuidas lihtsustada Kubernetes'i arendust Eclipse JKube abil, vaadake videot, kus tutvustatakse lihtsa Spring Boot rakenduse kiiret juurutamist Minikube'is:

Kokkuvõte
Selles artiklis näitasime, kuidas Eclipse JKube kergendab Java arendajate tööd Kubernetes'iga. Täiendavat teavet Eclipse JKube kohta leiate saidilt ja .
Allikas: habr.com
