Haɓaka Aikace-aikacen Java don Kubernetes Amfani da Eclipse JKube

Shekaru 25 da suka gabata, Java ya shiga babban tsarin shirye-shirye kuma a ƙarshe ya zama ɗaya daga cikin mahimman abubuwan da aka gina tarun aikace-aikacen kewaye da su. A yau, duk da haka, mutane da yawa da ƙungiyoyi da suka kasance masu aminci ga Java shekaru da yawa suna shagaltuwa da ƙaura ko yin la'akari da ƙaura zuwa dandamali. Kubernetes ko abubuwan da suka samo asali kamar Red Hat OpenShift ko Amazon EKS.

Haɓaka Aikace-aikacen Java don Kubernetes Amfani da Eclipse JKube

Abin takaici, Kubernetes yana da tsarin koyo mai zurfi kuma ya gabatar da wani nau'in aiki a cikin tsarin ci gaba wanda masu shirye-shiryen Java suka saba da su. A yau za mu gaya muku yadda ake amfani da shi Eclipse JKube, don sauƙaƙe waɗannan ƙarin ayyukan da ke da alaƙa da Kubernetes da kwantena, da kuma tabbatar da ƙaura marar raɗaɗi zuwa dandalin girgije yayin da ake kiyaye yanayin yanayin Java da aka saba. Bugu da ƙari, za mu nuna yadda ake tura aikace-aikacen Java akan dandalin OpenShift ta amfani da kayan aikin OpenShift Maven.

Tsarin Ci gaban Java na gargajiya

Tsarin ci gaban al'ada Java (Hoto na 1) ya ƙunshi lambar rubutawa mai haɓakawa, sannan ƙirƙirar sassan turawa a cikin nau'in fayilolin JAR ko WAR, sannan turawa da gudanar da waɗannan fayiloli akan gidan yanar gizo ko sabar aikace-aikace. Babban hanyar yin wannan ita ce amfani da Maven daga layin umarni ko amfani da IDE kamar IntelliJ ko Eclipse don yin code da haɗa aikace-aikacen. Ana amfani da masu haɓakawa don yin canje-canje na lamba da gwada komai sosai kafin yin lambar da ƙaddamar da shi zuwa sarrafa sigar.

Haɓaka Aikace-aikacen Java don Kubernetes Amfani da Eclipse JKube

Shinkafa 1. Tsarin ci gaban Java na al'ada.

Tsarin Ci gaban Java don Cloud

Lokacin matsawa zuwa aikace-aikacen girgije, Kubernetes da kwantena. Don haka, yanzu mai haɓakawa yana buƙatar haɗa aikace-aikacen Java a ciki hotuna na akwati kuma ƙirƙirar Kubernetes bayyananne wanda ke bayyana waɗannan hotuna. Ana amfani da waɗannan bayanan zuwa uwar garken samarwa da ke gudana Kubernetes. Bi da bi, Kubernetes yana ɗaukar waɗannan hotuna daga wurin yin rajista kuma yana tura aikace-aikace bisa ga saitunan da muka rubuta a cikin bayanan, waɗanda galibi fayilolin YAML ne.

Ana nuna metamorphosis na tsarin ci gaban Java na al'ada a cikin sauyawa zuwa gajimare a cikin siffa. 2.

Haɓaka Aikace-aikacen Java don Kubernetes Amfani da Eclipse JKube

Shinkafa 2. Tsarin ci gaban Java don girgije.

Eclipse JKube

Ƙaura zuwa Kubernetes yana ƙara wani aiki mai aiki zuwa tsarin ci gaba, kuma yawancin masu haɓakawa suna jin tsoro game da shi saboda suna so su mayar da hankali kan ainihin aikin su - ma'anar aikace-aikacen - maimakon yadda za a tura su. Kuma wannan shi ne inda ya zo cikin wasa. Eclipse JKube, wanda ke ba masu haɓaka damar amfani da ɗakunan karatu da plugins ɗin su (JKube Kit tare da Kubernetes Maven Plugin ko OpenShift Maven Plugin) don aiwatar da kwantena da ayyukan da suka danganci Kubernetes ba tare da wahala ba ta bin zanen hoto. 2.

A cikin sauran wannan labarin, za mu nuna muku yadda ake sauƙaƙe tsarin ci gaban Java a cikin yanayin Kubernetes ta amfani da Eclipse JKube tare da Kubernetes Maven Plugin.

Tsarin Haɓaka Gajimare Ta Amfani da Eclipse JKube

Bari mu yi la'akari da wani ɗan gyara na tsarin ci gaban Java don gajimare daga siffa 2, gabatar da Eclipse JKube da Kubernetes Maven Plugin a ciki, kamar yadda aka nuna a cikin siffa. 3.

Haɓaka Aikace-aikacen Java don Kubernetes Amfani da Eclipse JKube

Shinkafa 3. Tsarin ci gaban Java don girgije ta amfani da Eclipse JKube.

Kamar yadda muke iya gani, a nan duk ayyukan don hulɗa tare da Kubernetes da kwantena (wanda aka haskaka a cikin ja a cikin zane) an maye gurbinsu ta hanyar tsoho Eclipse JKube ayyukan burin, waɗanda aka jera a cikin Tebur. 1.

Tebur 1. Eclipse JKube tsoho ayyuka.

Manufar
Stage
Description

k8s: ku
PRE_INTEGRATION_TEST
Hotunan ginin docker

k8: zuw
shigar
Ana loda hotunan docker zuwa wurin yin rajista

k8s: albarkatun
PROCESS_RESOURCES
Samar da K8s yana bayyana

k8s: yi
HADA
Aiwatar da abubuwan bayyanawa ga K8s

k8: ba aiki
RASHIN TSARO
Cire albarkatun K8s waɗanda aka tura ta amfani da k8s: aikace-aikace da k8s: turawa

Note: Idan ba kwa son ɗawainiya don amfani da waɗannan ɓangarorin ra'ayi, zaku iya saita Eclipse JKube da hannu don kanku, tunda yana goyan bayan sanyi ta hanyar. XML и albarkatun.

Yanzu bari mu kalli misalan amfani da Eclipse JKube da Kubernetes Maven Plugin yayin aiki tare da aikace-aikace.

Aiwatar da aikace-aikacen Java akan Kubernetes Amfani da Eclipse JKube

A cikin wannan misalin za mu tura aikace-aikacen Java mai sauƙi akan gungu Minikube Yin amfani da Eclipse JKube. Amfani da Kubernetes Maven Plugin, za mu iya saita sigogin turawa ba tare da rubuta kowane tsari ba.

A matsayin misali aikace-aikace muna amfani sauki bazuwar lamba janareta, wanda ke samar da fitowar JSON a ƙarshen ƙarshen / bazuwar:

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

Mataki 1. Zazzage Kubernetes Maven Plugin

Kubernetes Maven Plugin yana cikin ma'ajiya Maven Central Repository. Don amfani da Eclipse JKube kuna buƙatar ƙara Kubernetes Maven Plugin zuwa pom.xml azaman abin dogaro:

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

Idan an yi amfani da OpenShift maimakon kubernetes mai tsabta, to an gyara pom.xml kamar haka:

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

Mataki 2. Gina hoton docker

Ana iya gina fayil ɗin JAR na aikace-aikacen tare da umarnin fakitin mvn, sannan ana iya amfani da aikin mvn burin k8s:build don gina hoton docker na aikace-aikacen. Lura cewa mun soke tsohon sunan hoton da wannan kadara:

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

Kafin gina hoton, kuna buƙatar tabbatar da cewa docker daemon ya fallasa daidai. Ana iya yin wannan tare da umarni mai zuwa:

$ eval $(minikube docker-env)

Sa'an nan kuma mu shigar da mvn k8s:build umurnin, kuma wannan shi ne abin da za mu gani a kan allo lokacin gina docker image ta amfani da Eclipse JKube gina aikin:

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

Mataki 3. Loda hoton zuwa wurin rajistar docker

Bayan mun gina hoton docker tare da saita rajistar turawa (a yanayin mu shine docker.io), zamu iya aika wannan hoton zuwa wurin yin rajista. Wannan shine abin da za'a nuna bayan mun tambayi Eclipse JKube don aiwatar da aikin mvn k8s: tura turawa:

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

Bayan aika hoton, kuna buƙatar bincika cewa an haɗa shi a cikin rajista. A cikin yanayinmu, kawai muna ganin shi a Docker Hub, kamar yadda aka nuna a cikin siffa. 4.

Haɓaka Aikace-aikacen Java don Kubernetes Amfani da Eclipse JKube

Shinkafa 4. Hoton da aka aika zuwa wurin rajista ya bayyana a Docker Hub.

Mataki 4. Ƙirƙirar Kubernetes albarkatun bayyana don aikace-aikacen

Don haka, mun tattara hoton aikace-aikacen, yanzu muna buƙatar rubuta alamun Kubernetes. Don yin wannan, Eclipse JKube yana da ɗawainiya wanda ke haifar da ƙayyadaddun bayanai masu ƙarfi bisa tushen tsarin Java (Takalmin bazara, kwarkus, Vert.x ko wasu). Hakanan zaka iya keɓance bayyanuwa ta amfani da fayil ɗin sanyi na XML da sanya ɗanyen gutsuttsura (gutsuwar bayanan bayanan da ake buƙata) a cikin babban fayil ɗin aikace-aikacen src/main/jkube. A wannan yanayin, za a loda saitin ku zuwa abubuwan da aka samar.

A cikin misalinmu, mun bar komai kamar yadda yake, sabili da haka Eclipse JKube yana haifar da bayyananniyar ƙaddamarwa ta asali da kuma sabis tare da nau'in ClusterIP. Kuma kawai sai mu canza bayanin sabis don canza nau'in sabis zuwa NodePort. Kuna iya soke dabi'ar da aka saba amfani da ita ta amfani da dukiya mai zuwa:

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

Wannan shine yadda fitowar allo tayi kama bayan mun tambayi Eclipse JKube don aiwatar da aikin mvn k8s: albarkatun albarkatun.

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

Mataki 5. Aika aikace-aikacen zuwa gungu na Kubernetes

Yanzu duk mun shirya don tura aikace-aikacen: mun ƙirƙira hoton sa sannan kuma mu fito da bayanan albarkatun ta atomatik. Yanzu abin da ya rage shi ne a yi amfani da duk wannan zuwa gungu na Kubernetes. Don tura aikace-aikacen, za ku iya, ba shakka, amfani da kubectl apply -f umurnin, amma plugin ɗin zai iya yi mana wannan. Wannan shine abin da zai bayyana akan allon bayan mun tambayi Eclipse JKube don aiwatar da mvn k8s: aikace-aikacen aikace-aikacen:

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

Mataki 6. Cire aikace-aikace daga gungu na Kubernetes

Don yin wannan, ana amfani da aikin da ba a haɗa shi ba, wanda kawai yana cire duk albarkatun da aka yi amfani da su a mataki na baya, wato, lokacin da aka aiwatar da aikin. Wannan shine abin da zamu gani akan allon bayan mun tambayi Eclipse JKube don yin aikin mvn k8s: undeploy undeploy task:

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

Me kuma za ku iya yi da Eclipse JKube

Don haka, mun kalli manyan ayyukan manufa na Eclipse JKube da Kubernetes Maven Plugin, waɗanda ke sauƙaƙe haɓaka aikace-aikacen Java don dandalin Kubernetes. Idan ba ka so ka shigar da waɗannan ayyuka akai-akai daga maballin, za ka iya rubuta su a cikin tsarin plugin, misali, kamar haka:

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

Dole ne a faɗi cewa a cikin wannan labarin ba mu yi la'akari da duk ayyukan burin da ke cikin Eclipse JKube da Kubernetes Maven Plugin ba, don haka mun samar da jerin ƙarin ayyuka waɗanda kuma za su iya amfani da ku a cikin Tebur 2.

Tebur 2. Ƙarin Eclipse JKube ayyukan burin.

Manufar
Stage
Description

k8: ku
GASKIYA
Karɓar rajistan ayyukan daga aikace-aikacen da ke gudana akan Kubernetes.

k8s: bugu
kunshin
Bude tashar cire bugu don haka zaku iya cire aikace-aikacenku da ke gudana akan Kubernetes kai tsaye daga IDE.

k8: zuw
shigar
Ƙirƙirar cokali mai yatsa don aikin Shigarwa da yin amfani da abubuwan da aka haifar zuwa gungu na Kubernetes kamar yadda yake a cikin yanayin aikin da aka yi.

k8: ku
kunshin
Aiwatar da aikace-aikace mai zafi ta atomatik ta hanyar bibiyar sunan sa.

Aiwatar da aikace-aikacen Java akan Red Hat OpenShift Amfani da OpenShift Maven Plugin

Don tura aikace-aikacen daga misalinmu akan dandalin Red Hat OpenShift, muna amfani da plugin ɗin OpenShift Maven. Bambancin kawai shine cewa prefix ɗin aiki zai canza daga k8s zuwa oc. Ta tsohuwa plugin ɗin Kubernetes Maven yayi docker- majalisai, da kuma OpenShift Maven plugin - majalisai S2I. Ba mu yin wani canje-canje ga aikin mu, sai dai cire kayan jkube.generator.name, tun da ba a buƙata lokacin turawa zuwa wurin yin rajista (A yayin lokacin ginin, OpenShift yana sanya hoton a cikin rajista na ciki). Kuma wannan shine abin da zai bayyana akan allon lokacin da muke gudanar da misalinmu, wanda, ta hanyar, muna yin ayyukan burin ba daya bayan daya ba, amma gaba daya:

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

Darasi na Bidiyo

Don ƙarin koyo game da yadda ake sauƙaƙe ci gaban Kubernetes tare da Eclipse JKube, kalli wannan koyawa ta bidiyo akan yadda ake saurin tura aikace-aikacen Boot mai sauƙi a kan Minikube:

ƙarshe

A cikin wannan labarin, mun nuna yadda Eclipse JKube ke sauƙaƙe rayuwa ga mai haɓaka Java yayin aiki tare da Kubernetes. Ana iya samun ƙarin bayani akan Eclipse JKube a gidan yanar gizon aikin kuma a GitHub.

source: www.habr.com

Add a comment