Pirms 25 gadiem Java ieguva plašu programmētāju auditoriju, kļūstot par vienu no balstiem, ap kuriem veidojas lietojumprogrammu steki. Tomēr šodien daudzi cilvēki un organizācijas, kas daudzus gadus ir bijuši uzticīgi Java, ir aizņemti ar pāreju uz platformu vai tās atvasinājumiem, piemēram, vai .

Diemžēl Kubernetes atšķiras ar strauju mācību līkni un ievieš vēl vienu operāciju līmeni ierastajā Java programmētājiem izstrādes procesā. Šodien mēs pastāstīsim, kā izmantot , lai vienkāršotu papildu darbības, kas saistītas ar Kubernetes un konteineriem, kā arī nodrošinātu nesāpīgu migrāciju uz mākoņplatformu, saglabājot ierasto Java ekosistēmu. Turklāt mēs parādīsim, kā izvietot Java lietojumprogrammas OpenShift platformā, izmantojot OpenShift Maven spraudni.
Tradicionālais Java izstrādes process
Tradicionālais izstrādes process (Att. 1) paredz, ka izstrādātājs raksta kodu, pēc tam izveido izvēršanas vienības kā JAR vai WAR failus un galu galā izvieto un palaiž šos failus tīmekļa serverī vai lietojumserverī. Galvenokārt tam tiek izmantots Maven no komandrindas vai tiek izmantots IDE, piemēram, IntelliJ vai Eclipse, lai kodētu un iepakotu lietojumprogrammas. Izstrādātāji ir pieraduši veikt izmaiņas kodā un rūpīgi testēt visu, pirms nosaka kodu un nosūta to uz versiju kontroles sistēmu.

Att. 1. Tradicionālais Java izstrādes process.
Java izstrādes process mākoņiem
Pārejot uz mākoņu lietojumprogrammām, iepriekš aprakstītajai shēmai pievienojas Kubernetes un . Tādēļ izstrādātājam tagad jāiepako Java lietojumprogrammas un jāsagatavo Kubernetes manifesti, kas apraksta šos attēlus. Pēc tam šie manifesti tiek piemēroti produkcijas serverim, uz kura darbojas Kubernetes. Savukārt Kubernetes iegūst šos attēlus no reģistra un izvieto lietojumprogrammas saskaņā ar tām konfigurācijām, kuras mēs esam noteikuši manifestos, kas parasti ir YAML faili.
Tradicionālā Java izstrādes procesa metamorfose pārejot uz mākoņiem ir parādīta Att. 2.

Att. 2. Java izstrādes process mākoņiem.
Eclipse JKube
Pāreja uz Kubernetes pievieno vēl vienu operatīvo slāni izstrādes procesam, un daudzi izstrādātāji ir satraukti, jo viņi vēlas nodarboties ar savu galveno darbu – lietojumprogrammu loģiku, nevis to, kā tās izvietot. Un šeit spēlē iejaucas , kas ļauj izstrādātājiem izmantot savas bibliotēkas un spraudņus ( kopā ar vai ), lai bez liekām pūlēm veiktu operācijas, kas saistītas ar konteineriem un Kubernetes, sekojot shēmai uz Att. 2.
Atlikušajā šī raksta daļā mēs parādīsim, kā atvieglot Java izstrādes procesu Kubernetes vidē, izmantojot Eclipse JKube ar Kubernetes Maven Plugin.
Izstrādes process mākonim, izmantojot Eclipse JKube
Apskatīsim nedaudz modificētu Java izstrādes shēmu mākonī ar Att. 2, ieviešot tajā Eclipse JKube un Kubernetes Maven Plugin, kā parādīts uz Att. 3.

Att. 3. Java izstrādes process mākonim, izmantojot Eclipse JKube.
Kā redzam, šeit visas operācijas, kas saistītas ar mijiedarbību ar Kubernetes un konteineriem (shēmā izcelts sarkanā krāsā), tiek aizstātas ar Eclipse JKube noklusējuma uzdevumiem, kas uzskaitī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 nosūtīšana reģistrā
PROCESS_RESOURCES
K8s manifestu ģenerēšana
COMPILE
Izmainīto manifestu piemērošana K8s
UNDEPLOY
K8s resursu dzēšana, kas tika izvietoti ar k8s:apply un k8s:deploy
Piezīme: Ja nevēlaties, lai uzdevumi izmantotu šos stingros noklusējumus (opinionated defaults), varat manuāli pielāgot Eclipse JKube savām vajadzībām, jo tas atbalsta konfigurēšanu caur un .
Tagad aplūkosim piemērus par Eclipse JKube un Kubernetes Maven Plugin izmantošanu, strādājot ar lietojumprogrammām.
Izvietojam Java lietojumprogrammu Kubernetes vidē, izmantojot Eclipse JKube
Šajā piemērā mēs izvietosim vienkāršu Java lietojumprogrammu klasterī izmantojot Eclipse JKube. Izmantojot Kubernetes Maven Plugin, mums ir iespēja noteikt izvietošanas parametrus, neizrakstot nekādu konfigurāciju.
Kā lietojumprogrammas piemēru mēs izmantosim , kas ģenerē JSON-izeju uz galapunktu /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"
}
1. Solis kubernetes Maven plugin
Kubernetes Maven plugin atrodas repozitorijā . Lai izmantotu Eclipse JKube, jāpievieno Kubernetes Maven plugin savam pom.xml kā atkarību:
org.eclipse.jkube
kubernetes-maven-plugin
${jkube.version}
Ja tiek izmantots OpenShift, nevis tīrs Kubernetes, tad pom.xml modificē šādi:
org.eclipse.jkube
openshift-maven-plugin
${jkube.version}
2. Veidojam docker attēlu
Lai izveidotu lietojumprogrammas JAR failu, var izmantot komandu mvn package, pēc tam varat izmantot mērķa uzdevumu mvn k8s:build, lai izveidotu šīs lietojumprogrammas docker attēlu. Ņemiet vērā, ka mēs pārrakstījām noklusējuma attēla nosaukumu, izmantojot šo īpašību:
docker.io/rohankanojia/random-generator:${project.version}
Pirms attēla izveidošanas jāpārliecinās, ka docker demons ir pareizi ekspozīts. To var izdarīt ar sekojošo komandu:
$ eval $(minikube docker-env)
Pēc tam ievadām komandu mvn k8s:build, un šādi izskatīsies ekrāna izvadīšana, veidojot docker attēlu ar Eclipse JKube build uzdevumu:
~ /work/repos/eclipse-jkube-demo-project : $ mvn k8s:build
[INFO] Projektu skenēšana...
[INFO]
[INFO] ---------------------------------------------
[INFO] Izveido random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:build (default-cli) @ random-generator ---
[INFO] k8s: Darbojas Kubernetes režīmā
[INFO] k8s: Veido Docker attēlu Kubernetes režīmā
[INFO] k8s: Darbojas ģenerators spring-boot
[INFO] k8s: spring-boot: Izmanto Docker attēlu quay.io/jkube/jkube-java-binary-s2i:0.0.7 kā pamatu / būvētāju
[INFO] k8s: [docker.io/rohankanojia/random-generator:0.0.1] "spring-boot": Izveidots docker-build.tar 251 milisekundēs
[INFO] k8s: [docker.io/rohankanojia/random-generator:0.0.1] "spring-boot": Izveidots attēls sha256:a20e5
[INFO] ------------------------------------------------------------------------
[INFO] BŪVĒŠANA VEIKSMĪGA
[INFO] ------------------------------------------------------------------------
[INFO] Kopējais laiks: 5.053 s
[INFO] Beigts: 2020-08-10T11:28:23+05:30
[INFO] ------------------------------------------------------------------------
~ /work/repos/eclipse-jkube-demo-project : $
3. Nosūtām attēlu uz docker reģistru
Pēc tam, kad esam izveidojuši docker attēlu, pie iespējota push reģistra (mūsu gadījumā tas ir docker.io), varam nosūtīt šo attēlu reģistram. Šādi izskatīsies ekrāna izvade, kad lūgsim Eclipse JKube izpildīt push uzdevumu mvn k8s:push:
~\/darba\/repos\/eclipse-jkube-demo-projekts : $ mvn k8s:push
[INFO] Projekta skenēšana...
[INFO]
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Izveido random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:push (default-cli) @ random-generator ---
[INFO] k8s: Darbojas Kubernetes režīmā
[INFO] k8s: Izveido Docker attēlu Kubernetes režīmā
[INFO] k8s: Izpilda ģeneratoru spring-boot
[INFO] k8s: spring-boot: Izmanto Docker attēlu quay.io\/jkube\/jkube-java-binary-s2i:0.0.7 kā pamatu \/ veidotāju
[INFO] k8s: Izstrādātais attēls atsaucas uz repozitoriju [docker.io\/rohankanojia\/random-generator]
5dcd9556710f: Slānis jau pastāv
b7139ad07aa8: Slānis jau pastāv
b6f081e4b2b6: Slānis jau pastāv
d8e1f35641ac: Slānis jau pastāv
[INFO] k8s: 0.0.1: kopsavilkums: sha256:9f9eda2a13b8cab1d2c9e474248500145fc09e2922fe3735692f9bda4c76002d izmērs: 1162
[INFO] k8s: Pārsūtīts docker.io\/rohankanojia\/random-generator:0.0.1 7 sekunžu laikā
[INFO] ------------------------------------------------------------------------
[INFO] VEIDOŠANA VEIKSMĪGA
[INFO] ------------------------------------------------------------------------
[INFO] Kopējais laiks: 11.222 s
[INFO] Pabeigts: 2020-08-10T11:35:37+05:30
[INFO] ------------------------------------------------------------------------
~\/darba\/repos\/eclipse-jkube-demo-projekts : $
Pēc attēla nosūtīšanas ir 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 4. attēlā.

Attēls 4. Nosūtītais attēls reģistrā parādījās Docker Hub.
Soli 4. Ģenerējam Kubernetes resursu manifestus lietojumprogrammām
Tātad, mēs esam izveidojuši lietojumprogrammas attēlu, tagad ir jāraksta Kubernetes manifesti. Tam Eclipse JKube ir uzdevums, kas ģenerē stingrus resursu manifestus, pamatojoties uz apakšējo Java ietvaru (, , Vert.x vai kādu citu). Tāpat varat konfigurēt manifestu, izmantojot konfigurācijas XML failu un ievietojot raw fragmentus (nepieciešamo resursu manifestu fragmentus) lietojumprogrammas src\/main\/jkube mapē. Šādā gadījumā jūsu konfigurācija tiks iekļauta ģenerētajos manifestos.
Mūsu piemērā mēs atstājam visu kā ir, un tāpēc Eclipse JKube ģenerē manifestu noklusējuma ieviešanai un pakalpojumam ar ClusterIP tipu. Un pēc tam mēs modificējam pakalpojuma manifestu, lai mainītu pakalpojuma tipu uz NodePort. Noklusējuma uzvedību var pārpārrakstīt, izmantojot šādu rekvizītu:
<jkube.enricher.jkube-service.type>NodePort<\/jkube.enricher.jkube-service.type>
Šādi izskatās ekrānuzņēmums pēc tam, kad mēs lūdzam Eclipse JKube veikt resursu uzdevumu mvn k8s:resource.
~\/work\/repos\/eclipse-jkube-demo-project : $ mvn k8s:resource
[INFO] Skenē projektiem...
[INFO]
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Veido random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:resource (default-cli) @ random-generator ---
[INFO] k8s: Palaiž ģeneratoru spring-boot
[INFO] k8s: spring-boot: Izmanto Docker attēlu quay.io\/jkube\/jkube-java-binary-s2i:0.0.7 kā pamatu \/ būvētāju
[INFO] k8s: jkube-controller: Pievieno noklusējuma izvietojumu
[INFO] k8s: jkube-service: Pievieno noklusējuma pakalpojumu 'random-generator' ar portiem [8080]
[INFO] k8s: jkube-healthcheck-spring-boot: Pievieno gatavības pārbaudi uz porta 8080, ceļš='\/actuator\/health', shēma='HTTP', sākotnējais aizkavējums 10 sekundes
[INFO] k8s: jkube-healthcheck-spring-boot: Pievieno dzīvotspējas pārbaudi uz porta 8080, ceļš='\/actuator\/health', shēma='HTTP', sākotnējais aizkavējums 180 sekundes
[INFO] k8s: jkube-revision-history: Pievieno revīzijas vēstures ierobežojumu līdz 2
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Kopējais laiks: 3.344 s
[INFO] Pabeigts: 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 : $
Sol 5. Ieviešam lietojumprogrammu Kubernetes klasterī
Tātad, tagad viss ir gatavs, lai veiktu lietojumprogrammas izvietošanu: mēs esam ģenerējuši tās attēlu un pēc tam automātiski ģenerējuši resursu manifestus. Tagad atliek tikai pielietot visu to Kubernetes klasterī. Lietojumprogrammas izvietošanai, protams, var izmantot komandu kubectl apply -f, bet spraudnis to var izdarīt mūsu vietā. Lūk, kas tiks parādīts ekrānā pēc tam, kad lūgsim Eclipse JKube veikt apply uzdevumu mvn k8s:apply:
~\/work\/repos\/eclipse-jkube-demo-project : $ mvn k8s:apply
[INFO] Tiek veikta projektu skenēšana...
[INFO]
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Izveido random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:apply (default-cli) @ random-generator ---
[INFO] k8s: Izmanto Kubernetes adresi https:\/\/192.168.39.145:8443\/ pēc noklusējuma telpas ar manifestu \/home\/rohaan\/work\/repos\/eclipse-jkube-demo-project\/target\/classes\/META-INF\/jkube\/kubernetes.yml
[INFO] k8s: Izmanto telpu: default
[INFO] k8s: Izveido pakalpojumu no kubernetes.yml telpā default nosaukums random-generator
[INFO] k8s: Izveidots pakalpojums: target\/jkube\/applyJson\/default\/service-random-generator.json
[INFO] k8s: Izveido papildinājumu no kubernetes.yml telpā default nosaukums random-generator
[INFO] k8s: Izveidots papildinājums: target\/jkube\/applyJson\/default\/deployment-random-generator.json
[INFO] k8s: IETEIKUMS: Izmantojiet komandu `kubectl get pods -w`, lai sekotu, kā jūsu podi sāk darboties
[INFO] ------------------------------------------------------------------------
[INFO] IZBŪVE SEKME
[INFO] ------------------------------------------------------------------------
[INFO] Kopējais laiks: 7.306 s
[INFO] Pabeigts: 2020-08-10T11:40:57+05:30
[INFO] ------------------------------------------------------------------------
~\/work\/repos\/eclipse-jkube-demo-project : $ kubectl get pods -w
NOSAUKUMS GATAVS STATUSS ATJAUNOJUMI VECUMS
random-generator-58b7847d7f-9m9df 0\/1 Darbojas 0 7s
random-generator-58b7847d7f-9m9df 1\/1 Darbojas 0 17s
^C~\/work\/repos\/eclipse-jkube-demo-project : $ kubectl get svc
NOSAUKUMS TIPS KLIENDA-IP EKSTERNĀS-IP PORT(S) VECUMS
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 .
% Kopējais % Saņemts % Pārnests Vidējs ātrums Laiks Laiks Laiks Pašreizējais
Lejupielādēt Augšupielādēt Kopā Pavadīts Kreiss Ātrums
100 45 0 45 0 0 1800 0 --:--:-- --:--:-- --:--:-- 1875
{
"id": "42e5571f-a20f-44b3-8184-370356581d10"
}
6. solis. Veicam undeploy aplikācijas no Kubernetes klastera
Šim tiek izmantota undeploy uzdevums, kas vienkārši dzēš visus resursus, kas tika piemēroti iepriekšējā solī, proti, kad tika izpildīts apply uzdevums. Šādi izskatīsies ekrāns pēc tam, kad lūgsim Eclipse JKube izpildīt undeploy uzdevumu 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 : $
Ko vēl var izdarīt ar Eclipse JKube
Tātad, mēs apskatījām galvenās mērķu uzdevumu Eclipse JKube un Kubernetes Maven Plugin, kas atvieglo Java lietojumprogrammu izstrādi Kubernetes platformā. Ja jums negribas nemitīgi ievadīt šos uzdevumus ar taustiņiem, tos varat ierakstīt pie plūgēna konfigurācijas, piemēram, šādi:
org.eclipse.jkube
kubernetes-maven-plugin
${project.version}
build
resource
apply
Jāteic, ka šajā rakstā mēs aplūkojām tālu ne visus mērķu uzdevumus, kas ir pieejami Eclipse JKube un Kubernetes Maven Plugin, tādēļ sniedzam 2. tabulā papildu uzdevumu sarakstu, kas jums var noderēt.
Tab. 2. Papildu mērķa uzdevumi Eclipse JKube.
Uzdevums
Posms
Apraksts
VALIDATE
Pieteikuma žurnālu iegūšana, kas darbojas Kubernetes.
PACKAGE
Atveriet debuggers portu, lai veiktu lietojumprogrammas, kas darbojas Kubernetes, atkļūdošanu tieši no IDE.
INSTALL
Izveidojiet forku Install-uzdevumam un lietojiet ģenerētos manifestus klasterī Kubernetes tieši tāpat kā ar apply-uzdevumu.
PACKAGE
Automātiska karstā izvietošana, izsekojot lietojumprogrammas namespaces.
Java lietojumprogrammu izvietošana Red Hat OpenShift, izmantojot OpenShift Maven Plugin
Lai izvietotu lietojumprogrammu no mūsu piemēra Red Hat OpenShift platformā, izmantojam spraudni . Vienīgā atšķirība būs tā, ka uzdevumu prefikss mainīsies no k8s uz oc. Pēc noklusējuma Kubernetes Maven plugina veic -būves, savukārt OpenShift Maven spraudnis – būves . Mēs neizdarām izmaiņas mūsu projektā, izņemot jēdziena jkube.generator.name dzēšanu, jo tas nav nepieciešams, kad nosūtīsim uz reģistru (OpenShift posmā izvieto attēlu savā iekšējā reģistrā). Un šeit ir tas, kas parādīsies ekrānā, kad mēs palaidīsim mūsu piemēru, kur, starp citu, mēs veicam goal-uzdevumus ne pa vienam, bet visus uzreiz:
~\/work\/repos\/eclipse-jkube-demo-project : $ mvn oc:build oc:resource oc:apply
[INFO] Skenē projekti...
[INFO]
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Veido random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- openshift-maven-plugin:1.0.0-rc-1:build (default-cli) @ random-generator ---
[INFO] oc: Izmanto OpenShift veidošanu ar stratēģiju S2I
[INFO] oc: Darbojas OpenShift režīmā
[INFO] oc: Izmanto ģeneratoru spring-boot
[INFO] oc: spring-boot: Izmanto Docker attēlu quay.io\/jkube\/jkube-java-binary-s2i:0.0.7 kā bāzes \/ veidotāju
[INFO] oc: [random-generator:0.0.1] "spring-boot": Izveidots Docker avota tar \/home\/rohaan\/work\/repos\/eclipse-jkube-demo-project\/target\/docker\/random-generator\/0.0.1\/tmp\/docker-build.tar
[INFO] oc: Pievienojot noslēpumu pullsecret-jkube
[INFO] oc: Izmanto noslēpumu pullsecret-jkube
[INFO] oc: Izveido BuildServiceConfig random-generator-s2i avota veidošanai
[INFO] oc: Izveido ImageStream random-generator
[INFO] oc: Uzsāk Build random-generator-s2i
[INFO] oc: Gaida, kad veidošana random-generator-s2i-1 pabeigsies...
[INFO] oc: Kešēšanas blobs zem "\/var\/cache\/blobs".
[INFO] oc: Saņemot attēla avota parakstus
[INFO] oc: Kopējot blob sha256:cf0f3ebe9f536c782ab3835049cfbd9a663761ded9370791ef6ea3965c823aad
[INFO] oc: Kopējot blob sha256:57de4da701b511cba33bbdc424757f7f3b408bea741ca714ace265da9b59191a
[INFO] oc: Kopējot blob sha256:f320f94d91a064281f5127d5f49954b481062c7d56cce3b09910e471cf849050
[INFO] oc: Kopējot konfigurāciju sha256:52d6788fcfdd39595264d34a3959464a5dabc1d4ef0ae188802b20fc2d6a857b
[INFO] oc: Rakstot manifestu attēla galamērķī
[INFO] oc: Uzglabājot parakstus
[INFO] oc: Radīšana dockerfile ar veidotāja attēlu quay.io\/jkube\/jkube-java-binary-s2i:0.0.7
[INFO] oc: SOLIS 1: NO quay.io\/jkube\/jkube-java-binary-s2i:0.0.7
[INFO] oc: SOLIS 2: ETIKETE "io.openshift.build.source-location"="\/tmp\/build\/inputs" "io.openshift.build.image"="quay.io\/jkube\/jkube-java-binary-s2i:0.0.7"
[INFO] oc: SOLIS 3: ENV JAVA_APP_DIR="\/deployments" OPENSHIFT_BUILD_NAME="random-generator-s2i-1" OPENSHIFT_BUILD_NAMESPACE="default"
[INFO] oc: SOLIS 4: LIETOTĀJS root
[INFO] oc: SOLIS 5: KOPĒT upload\/src \/tmp\/src
[INFO] oc: SOLIS 6: IZPILDĪT chown -R 1000:0 \/tmp\/src
[INFO] oc: SOLIS 7: LIETOTĀJS 1000
[INFO] oc: SOLIS 8: IZPILDĪT \/usr\/local\/s2i\/assemble
[INFO] oc: INFO S2I avota veidošana ar parastajiem bināriem konstatēta
[INFO] oc: INFO S2I binārā veidošana no fabric8-maven-plugin konstatēta
[INFO] oc: INFO Kopējot bināros no \/tmp\/src\/deployments uz \/deployments ...
[INFO] oc: random-generator-0.0.1.jar
[INFO] oc: INFO Kopējot izvietojumus no deployments uz \/deployments...
[INFO] oc: '\/tmp\/src\/deployments\/random-generator-0.0.1.jar' -> '\/deployments\/random-generator-0.0.1.jar'
[INFO] oc: SOLIS 9: CMD \/usr\/local\/s2i\/run
[INFO] oc: SOLIS 10: KOMITĒT temp.builder.openshift.io\/default\/random-generator-s2i-1:48795e41
[INFO] oc: time="2020-08-10T06:37:49Z" level=info msg="Attēla operētājsistēmas nesakritība: attēls izmanto "", gaidot "linux""
[INFO] oc: time="2020-08-10T06:37:49Z" level=info msg="Attēla arhitektūras nesakritība: attēls izmanto "", gaidot "amd64""
[INFO] oc: Saņemot attēla avota parakstus
[INFO] oc: Kopējot blob sha256:d8e1f35641acb80b562f70cf49911341dfbe8c86f4d522b18efbf3732aa74223
[INFO] oc: Kopējot blob sha256:b6f081e4b2b6de8be4b1dec132043d14c121e968384dd624fb69c2c07b482edb
[INFO] oc: Kopējot blob sha256:b7139ad07aa8ce4ed5a132f7c5cc9f1de0f5099b5e155027a23d57f7fbe78b16
[INFO] oc: Kopējot blob sha256:98972fc90a1108315cc5b05b2c691a0849a149727a7b81e76bc847ac2c6d9714
[INFO] oc: Kopējot konfigurāciju sha256:27aaadaf28e24856a66db962b88118b8222b61d79163dceeeed869f7289bc230
[INFO] oc: Rakstot manifestu attēla galamērķī
[INFO] oc: Uzglabājot parakstus
[INFO] oc: --> 27aaadaf28e
[INFO] oc: 27aaadaf28e24856a66db962b88118b8222b61d79163dceeeed869f7289bc230
[INFO] oc: Saņemot attēla avota parakstus
[INFO] oc:
[INFO] oc: Sūtot attēlu image-registry.openshift-image-registry.svc:5000\/default\/random-generator:0.0.1 ...
[INFO] oc: Kopējot blob sha256:f320f94d91a064281f5127d5f49954b481062c7d56cce3b09910e471cf849050
[INFO] oc: Kopējot blob sha256:cf0f3ebe9f536c782ab3835049cfbd9a663761ded9370791ef6ea3965c823aad
[INFO] oc: Kopējot blob sha256:57de4da701b511cba33bbdc424757f7f3b408bea741ca714ace265da9b59191a
[INFO] oc: Kopējot blob sha256:98972fc90a1108315cc5b05b2c691a0849a149727a7b81e76bc847ac2c6d9714
[INFO] oc: Kopējot konfigurāciju sha256:27aaadaf28e24856a66db962b88118b8222b61d79163dceeeed869f7289bc230
[INFO] oc: Rakstot manifestu attēla galamērķī
[INFO] oc: Uzglabājot parakstus
[INFO] oc: Sekmīga attēla sūtīšana uz image-registry.openshift-image-registry.svc:5000\/default\/random-generator@sha256:aa9e1a380c04ef9174ba56459c13d44420ebe653ebf32884d60fe4306b17306d
[INFO] oc: Sūtīšana veiksmīga
[INFO] oc: Veidošanas random-generator-s2i-1 statuss Pabeigts
[INFO] oc: Atrasts tag ImageStream random-generator tag: sha256:aa9e1a380c04ef9174ba56459c13d44420ebe653ebf32884d60fe4306b17306d
[INFO] oc: ImageStream random-generator uzrakstīts uz \/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: Izmanto docker attēla nosaukumu noslēpumā: default
[INFO] oc: Darbojas ģenerators spring-boot
[INFO] oc: spring-boot: Izmanto Docker attēlu quay.io\/jkube\/jkube-java-binary-s2i:0.0.7 kā bāzes \/ veidotāju
[INFO] oc: jkube-controller: Pievieno noklusējuma DeploymentConfig
[INFO] oc: jkube-service: Pievieno noklusējuma servisu 'random-generator' ar portiem [8080]
[INFO] oc: jkube-healthcheck-spring-boot: Pievieno gatavības pārbaudi uz porta 8080, ceļš='\/actuator\/health', shēma='HTTP', ar sākotnēju aizkavi 10 sekundes
[INFO] oc: jkube-healthcheck-spring-boot: Pievieno dzīvības pārbaudi uz porta 8080, ceļš='\/actuator\/health', shēma='HTTP', ar sākotnēju aizkavi 180 sekundes
[INFO] oc: jkube-revision-history: Pievieno revīzijas vēstures ierobežojumu uz 2
[INFO]
[INFO] --- openshift-maven-plugin:1.0.0-rc-1:apply (default-cli) @ random-generator ---
[INFO] oc: Izmanto OpenShift adresē https:\/\/api.crc.testing:6443\/ noslēpuma default ar manifestu \/home\/rohaan\/work\/repos\/eclipse-jkube-demo-project\/target\/classes\/META-INF\/jkube\/openshift.yml
[INFO] oc: Atklāta OpenShift platforma
[INFO] oc: Izmanto projektu: default
[INFO] oc: Izveido Servisu no openshift.yml noslēpumā default nosaukums random-generator
[INFO] oc: Izveidots serviss: target\/jkube\/applyJson\/default\/service-random-generator.json
[INFO] oc: Izveido DeploymentConfig no openshift.yml noslēpumā default nosaukums random-generator
[INFO] oc: Izveidots DeploymentConfig: target\/jkube\/applyJson\/default\/deploymentconfig-random-generator.json
[INFO] oc: Izveido Maršrutu default:random-generator hosts: null
[INFO] oc: IETEIKUMS: Izmantojiet komandu `oc get pods -w`, lai skatītu jūsu podu palaišanu
[INFO] ------------------------------------------------------------------------
[INFO] VEIDOŠANA VEIKSMĪGA
[INFO] ------------------------------------------------------------------------
[INFO] Kopējais laiks: 01:07 min
[INFO] Pabeigts: 2020-08-10T12:08:00+05:30
[INFO] ------------------------------------------------------------------------
~\/work\/repos\/eclipse-jkube-demo-project : $ oc get pods -w
NOSAUKUMS GATAVS STATUSS ATJAUNOJUMI VECUMS
random-generator-1-deploy 1\/1 Darbojas 0 14s
random-generator-1-vnrm9 0\/1 Darbojas 0 11s
random-generator-s2i-1-build 0\/1 Pabeigts 0 1m
random-generator-1-vnrm9 1\/1 Darbojas 0 24s
random-generator-1-deploy 0\/1 Pabeigts 0 28s
~\/work\/repos\/eclipse-jkube-demo-project : $ oc get routes
NOSAUKUMS HOST\/PORT CEĻŠ SERVISI PORTS TERMINĀCIJA SAVILKUMS
random-generator random-generator-default.apps-crc.testing random-generator 8080 Nav
~\/work\/repos\/eclipse-jkube-demo-project : $ curl random-generator-default.apps-crc.testing\/random
% Kopējais % Saņemts % Pārsūtījis Vidējā ātrums Laiks Laiks Laiks Pašreizējais
Dload Augšup Kopā Iztērēts Atlikums Ātrums
100 45 0 45 0 0 1666 0 --:--:-- --:--:-- --:--:-- 1730
{
"id": "d80052d9-2f92-43cb-b9eb-d7cffb879798"
}
~\/work\/repos\/eclipse-jkube-demo-project : $
Video pamācība
Lai uzzinātu vairāk par to, kā vienkāršot Kubernetes izstrādi, izmantojot Eclipse JKube, skatieties video pamācību par ātru vienkārša Spring Boot lietojuma izvietošanu Minikube:

Secinājums
Šajā rakstā mēs parādījām, kā Eclipse JKube atvieglo dzīvi Java izstrādātājam, strādājot ar Kubernetes. Papildu informāciju par Eclipse JKube var atrast un uz .
Avots: habr.com
