Miaka 25 iliyopita, Java iliingia katika mfumo mkuu wa programu na hatimaye ikawa moja ya vipengele vya msingi ambavyo mwingi wa programu hujengwa. Leo, hata hivyo, watu na mashirika mengi ambayo yamekuwa mwaminifu kwa Java kwa miaka mingi yana shughuli nyingi za kuhama au kuzingatia kuhamia kwenye jukwaa.
Kwa bahati mbaya, Kubernetes ina mkondo mwinuko wa kujifunza na inaleta safu nyingine ya utendaji katika mchakato wa ukuzaji ambao watengeneza programu wa Java wamezoea. Leo tutakuambia jinsi ya kutumia
Mchakato wa Jadi wa Maendeleo ya Java
Mchakato wa maendeleo ya jadi
Mchele. 1. Mchakato wa jadi wa ukuzaji wa Java.
Mchakato wa Maendeleo ya Java kwa Wingu
Wakati wa kuhamia kwenye programu za wingu, Kubernetes na
Metamorphosis ya mchakato wa jadi wa ukuzaji wa Java katika mpito hadi wingu unaonyeshwa kwenye Mtini. 2.
Mchele. 2. Mchakato wa ukuzaji wa Java kwa wingu.
Eclipse JKube
Kuhamia Kubernetes huongeza safu nyingine ya utendaji kwa mchakato wa usanidi, na wasanidi programu wengi wana wasiwasi juu yake kwa sababu wanataka kuzingatia kazi yao kuu - mantiki ya utumaji - badala ya jinsi ya kuzipeleka. Na hapa ndipo inapokuja kucheza.
Katika sehemu nyingine ya makala haya, tutakuonyesha jinsi ya kurahisisha mchakato wa ukuzaji wa Java katika mazingira ya Kubernetes kwa kutumia Eclipse JKube na Kubernetes Maven Plugin.
Mchakato wa Kukuza Wingu Kwa Kutumia Eclipse JKube
Hebu tuchunguze mpango wa ukuzaji wa Java uliorekebishwa kidogo kwa wingu kutoka Mtini. 2, tukianzisha Eclipse JKube na Kubernetes Maven Plugin ndani yake, kama inavyoonyeshwa kwenye Mtini. 3.
Mchele. 3. Mchakato wa ukuzaji wa Java kwa wingu kwa kutumia Eclipse JKube.
Kama tunavyoona, hapa shughuli zote za kuingiliana na Kubernetes na kontena (zilizoangaziwa kwa rangi nyekundu kwenye mchoro) hubadilishwa na majukumu ya lengo la Eclipse JKube, ambayo yameorodheshwa kwenye Jedwali. 1.
Jedwali 1. Eclipse JKube kazi chaguo-msingi.
Kazi
Hatua
Description
PRE_INTEGRATION_TEST
Kujenga picha za docker
Kufunga
Inapakia picha za docker kwenye Usajili
PROCESS_RESOURCES
Kuzalisha K8s hudhihirisha
COMPILE
Kuweka maonyesho yaliyotolewa kwa K8s
KUTOFANYA KAZI
Kuondoa rasilimali za K8 ambazo zilitumwa kwa kutumia k8s:apply na k8s:deploy
Kumbuka: Ikiwa hutaki kazi kutumia chaguo-msingi hizi zilizowekwa maoni, unaweza kujisanidi mwenyewe Eclipse JKube, kwani inasaidia usanidi kupitia
Sasa hebu tuangalie mifano ya kutumia Eclipse JKube na Kubernetes Maven Plugin wakati wa kufanya kazi na programu.
Kupeleka Programu ya Java kwenye Kubernetes Kutumia Eclipse JKube
Katika mfano huu tutapeleka programu rahisi ya Java kwenye nguzo
Kama mfano wa maombi tunayotumia
~/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"
}
Hatua ya 1. Pakua Kubernetes Maven Plugin
Kubernetes Maven Plugin iko kwenye hazina
<plugin>
<groupId>org.eclipse.jkube</groupId>
<artifactId>kubernetes-maven-plugin</artifactId>
<version>${jkube.version}</version>
</plugin>
Ikiwa OpenShift inatumika badala ya Kubernetes safi, basi pom.xml inarekebishwa kama ifuatavyo:
<plugin>
<groupId>org.eclipse.jkube</groupId>
<artifactId>openshift-maven-plugin</artifactId>
<version>${jkube.version}</version>
</plugin>
Hatua ya 2. Jenga picha ya docker
Faili ya programu ya JAR inaweza kujengwa kwa amri ya kifurushi cha mvn, na kisha kazi ya lengo la mvn k8s:build inaweza kutumika kuunda picha ya kituo cha programu. Kumbuka kwamba tumebatilisha jina chaguo-msingi la picha na sifa hii:
<jkube.generator.name>docker.io/rohankanojia/random-generator:${project.version}</jkube.generator.name>
Kabla ya kujenga picha, unahitaji kuhakikisha kuwa daemon ya docker imefunuliwa kwa usahihi. Hii inaweza kufanywa kwa amri ifuatayo:
$ eval $(minikube docker-env)
Kisha tunaingiza mvn k8s:build amri, na hii ndiyo tutakayoona kwenye skrini wakati wa kujenga picha ya docker kwa kutumia kazi ya kujenga ya Eclipse JKube:
~/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 : $
Hatua ya 3. Pakia picha kwenye usajili wa docker
Baada ya kuunda picha ya kizimbani na sajili ya kushinikiza iliyosanidiwa (kwa upande wetu ni docker.io), tunaweza kutuma picha hii kwa usajili. Hiki ndicho kitakachoonyeshwa baada ya kuuliza Eclipse JKube kutekeleza kazi ya mvn k8s:push push:
~/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 : $
Baada ya kutuma picha, unahitaji kuangalia kuwa imejumuishwa kwenye Usajili. Kwa upande wetu, tunaiona tu kwenye Docker Hub, kama inavyoonyeshwa kwenye Mtini. 4.
Mchele. 4. Picha iliyotumwa kwa Usajili ilionekana kwenye Docker Hub.
Hatua ya 4. Tengeneza maonyesho ya rasilimali ya Kubernetes kwa programu
Kwa hivyo, tumekusanya picha ya programu, sasa tunahitaji kuandika maonyesho ya Kubernetes. Ili kufanya hivyo, Eclipse JKube ana kazi ambayo hutoa udhihirisho wa rasilimali ngumu kulingana na mfumo wa Java (
Katika mfano wetu, tunaacha kila kitu kama kilivyo, na kwa hivyo Eclipse JKube hutoa faili ya maelezo ya uwekaji chaguomsingi na kwa huduma iliyo na aina ya ClusterIP. Na hapo ndipo tunarekebisha faili ya maelezo ya huduma ili kubadilisha aina ya huduma kuwa NodePort. Unaweza kubatilisha tabia chaguo-msingi kwa kutumia mali ifuatayo:
<jkube.enricher.jkube-service.type>NodePort</jkube.enricher.jkube-service.type>
Hivi ndivyo matokeo ya skrini yanavyoonekana baada ya kuuliza Eclipse JKube kutekeleza mvn k8s: kazi ya rasilimali.
~/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 : $
Hatua ya 5. Sambaza programu kwenye nguzo ya Kubernetes
Sasa tuko tayari kupeleka programu: tumetoa taswira yake na kisha udhihirisho wa rasilimali zinazozalishwa kiotomatiki. Sasa kilichobaki ni kutumia haya yote kwenye nguzo ya Kubernetes. Ili kupeleka programu, unaweza, bila shaka, kutumia kubectl apply -f amri, lakini programu-jalizi inaweza kufanya hili kwa ajili yetu. Hiki ndicho kitakachoonekana kwenye skrini baada ya kuuliza Eclipse JKube kutekeleza mvn k8s:apply apply task:
~/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"
}
Hatua ya 6. Ondoa programu kutoka kwa nguzo ya Kubernetes
Kwa kufanya hivyo, kazi ya undeploy hutumiwa, ambayo huondoa tu rasilimali zote ambazo zilitumika katika hatua ya awali, yaani, wakati kazi ya kuomba inatekelezwa. Hivi ndivyo tutakavyoona kwenye skrini baada ya kuuliza Eclipse JKube kutekeleza kazi ya mvn k8s:undeploy undeploy:
~/work/repos/eclipse-jkube-demo-project : $ kubectl get all
NAME READY STATUS RESTARTS AGE
pod/random-generator-58b7847d7f-9m9df 1/1 Running 0 5m21s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 18d
service/random-generator NodePort 10.97.172.147 <none> 8080:32186/TCP 5m21s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/random-generator 1/1 1 1 5m21s
NAME DESIRED CURRENT READY AGE
replicaset.apps/random-generator-58b7847d7f 1 1 1 5m21s
~/work/repos/eclipse-jkube-demo-project : $ mvn k8s:undeploy
[INFO] Scanning for projects...
[INFO]
[INFO] ----------------------< meetup:random-generator >-----------------------
[INFO] Building random-generator 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- kubernetes-maven-plugin:1.0.0-rc-1:undeploy (default-cli) @ random-generator ---
[INFO] k8s: Using Kubernetes at https://192.168.39.145:8443/ in namespace default with manifest /home/rohaan/work/repos/eclipse-jkube-demo-project/target/classes/META-INF/jkube/kubernetes.yml
[INFO] k8s: Using namespace: default
[INFO] k8s: Deleting resource Deployment default/random-generator
[INFO] k8s: Deleting resource Service default/random-generator
[INFO] k8s: HINT: Use the command `kubectl get pods -w` to watch your pods start up
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.412 s
[INFO] Finished at: 2020-08-10T11:46:22+05:30
[INFO] ------------------------------------------------------------------------
~/work/repos/eclipse-jkube-demo-project : $ kubectl get pods -w
^C~/work/repos/eclipse-jkube-demo-project : $ kubectl get all
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 18d
~/work/repos/eclipse-jkube-demo-project : $
Nini kingine unaweza kufanya na Eclipse JKube
Kwa hivyo, tuliangalia kazi kuu za lengo la Eclipse JKube na Kubernetes Maven Plugin, ambayo inawezesha maendeleo ya programu za Java kwa jukwaa la Kubernetes. Ikiwa hutaki kuingiza kazi hizi mara kwa mara kutoka kwa kibodi, unaweza kuziandika kwenye usanidi wa programu-jalizi, kwa mfano, kama hii:
<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>
Ni lazima kusema kwamba katika makala hii hatujazingatia kazi zote za lengo ambazo ziko kwenye Eclipse JKube na Kubernetes Maven Plugin, kwa hiyo tunatoa katika Jedwali la 2 orodha ya kazi za ziada ambazo zinaweza pia kuwa na manufaa kwako.
Jedwali 2. Malengo ya ziada ya Eclipse JKube.
Kazi
Hatua
Description
KUHALALISHA
Kupokea kumbukumbu kutoka kwa programu inayoendesha Kubernetes.
PACKAGE
Fungua mlango wa utatuzi ili uweze kutatua programu yako inayoendesha Kubernetes moja kwa moja kutoka kwa IDE.
Kufunga
Kuunda uma kwa ajili ya kazi ya Kusakinisha na kutumia maonyesho yaliyotolewa kwenye nguzo ya Kubernetes kwa njia sawa na katika kesi ya kazi ya kuomba.
PACKAGE
Usambazaji wa programu moja kwa moja kwa kufuatilia nafasi yake ya majina.
Inapeleka Programu za Java kwenye Red Hat OpenShift Kwa Kutumia Programu-jalizi ya OpenShift Maven
Ili kupeleka programu kutoka kwa mfano wetu kwenye jukwaa la Red Hat OpenShift, tunatumia programu-jalizi
~/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 : $
Somo la video
Ili kupata maelezo zaidi kuhusu jinsi ya kurahisisha ukuzaji wa Kubernetes ukitumia Eclipse JKube, tazama mafunzo haya ya video kuhusu jinsi ya kupeleka kwa haraka programu rahisi ya Spring Boot kwenye Minikube:
Hitimisho
Katika makala haya, tulionyesha jinsi Eclipse JKube inavyorahisisha maisha kwa msanidi programu wa Java anapofanya kazi na Kubernetes. Habari zaidi juu ya Eclipse JKube inaweza kupatikana kwa
Chanzo: mapenzi.com