25 сол пеш, Java ба ҷараёни асосии барномасозӣ ворид шуд ва дар ниҳоят ба яке аз унсурҳои асосӣ табдил ёфт, ки дар атрофи он стекҳои барномаҳо сохта мешаванд. Аммо имрӯз, бисёр одамон ва созмонҳое, ки солҳои тӯлонӣ ба Java содиқ буданд, ба муҳоҷират банд ҳастанд ё дар фикри муҳоҷират ба платформа ҳастанд.
Мутаассифона, Кубернетес хатти нишебҳои омӯзишӣ дорад ва як қабати дигари амалиётиро ба раванди рушд, ки барномасозони Java одат кардаанд, ҷорӣ мекунад. Имрӯз мо ба шумо мегӯям, ки чӣ тавр истифода баред
Раванди анъанавии рушди Java
Раванди рушди анъанавӣ
Райс. 1. Раванди анъанавии таҳияи Java.
Раванди рушди Java барои абр
Ҳангоми гузаштан ба барномаҳои абрӣ, Kubernetes ва
Метаморфозаи раванди анъанавии рушди Java дар гузариш ба абр дар расми 2 нишон дода шудааст. XNUMX.
Райс. 2. Раванди таҳияи Java барои абр.
Eclipse JKube
Муҳоҷират ба Кубернетес ба раванди таҳия як қабати дигари амалиётиро илова мекунад ва бисёре аз таҳиягарон аз он асабонӣ мекунанд, зеро онҳо мехоҳанд ба кори асосии худ - мантиқи барнома таваҷҷӯҳ кунанд, на чӣ гуна ҷойгир кардани онҳо. Ва дар ин ҷо он ба бозӣ меояд.
Дар қисми боқимондаи ин мақола, мо ба шумо нишон медиҳем, ки чӣ гуна раванди таҳияи Java-ро дар муҳити Kubernetes бо истифода аз Eclipse JKube бо Plugin Kubernetes Maven содда кардан мумкин аст.
Раванди рушди абрӣ бо истифода аз Eclipse JKube
Биёед нақшаи каме тағирёфтаи таҳияи Java-ро барои абр аз расми 2 дида бароем ва ба он Eclipse JKube ва Kubernetes Maven Plugin ворид кунем, тавре ки дар расм нишон дода шудааст. 3.
Райс. 3. Раванди таҳияи Java барои абр бо истифода аз Eclipse JKube.
Тавре ки мо мебинем, дар ин ҷо ҳама амалиётҳо барои ҳамкорӣ бо Kubernetes ва контейнерҳо (дар диаграмма бо ранги сурх нишон дода шудаанд) бо вазифаҳои ҳадафи Eclipse JKube, ки дар Ҷадвали номбар шудаанд, иваз карда мешаванд. 1.
Ҷадвал 1. Вазифаҳои пешфарз Eclipse JKube.
Мақсад
Давра
Шарҳи
PRE_INTEGRATION_TEST
Сохтани тасвирҳои докер
Install
Бор кардани тасвирҳои докер ба феҳрист
PROCESS_RESOURCES
Эҷоди манифестҳои K8s
ТАРТИБ КУНЕД
Татбиқи манифестҳои тавлидшуда ба K8s
БАРОРЕД
Хориҷ кардани захираҳои K8s, ки бо истифода аз k8s:apply ва k8s:deploy ҷойгир шудаанд
Эзоҳ: Агар шумо нахоҳед, ки вазифаҳо ин пешфарзҳои баррасишавандаро истифода баранд, шумо метавонед Eclipse JKube-ро барои худ дастӣ танзим кунед, зеро он конфигуратсияро тавассути тариқи дастгирӣ мекунад.
Акнун биёед ба мисолҳои истифодаи Eclipse JKube ва Kubernetes Maven Plugin ҳангоми кор бо барномаҳо назар андозем.
Ҷойгир кардани замимаи Java дар Kubernetes бо истифода аз Eclipse JKube
Дар ин мисол мо як барномаи оддии Java-ро дар кластер ҷойгир мекунем
Ҳамчун мисол, мо истифода мебарем
~/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. Васлкунаки Kubernetes Maven -ро зеркашӣ кунед
Plugin Kubernetes Maven дар анбор аст
<plugin>
<groupId>org.eclipse.jkube</groupId>
<artifactId>kubernetes-maven-plugin</artifactId>
<version>${jkube.version}</version>
</plugin>
Агар ба ҷои Kubernetes пок OpenShift истифода шавад, пас pom.xml ба таври зерин тағир дода мешавад:
<plugin>
<groupId>org.eclipse.jkube</groupId>
<artifactId>openshift-maven-plugin</artifactId>
<version>${jkube.version}</version>
</plugin>
Қадами 2. Сохтани тасвири докер
Файли JAR-и барномаро бо фармони бастаи mvn сохтан мумкин аст ва сипас вазифаи mvn ҳадафи k8s:build метавонад барои сохтани тасвири докери барнома истифода шавад. Дар хотир доред, ки мо номи тасвири пешфарзро бо ин амвол бекор кардем:
<jkube.generator.name>docker.io/rohankanojia/random-generator:${project.version}</jkube.generator.name>
Пеш аз сохтани тасвир, шумо бояд боварӣ ҳосил кунед, ки демони докер дуруст фош шудааст. Инро бо фармони зерин иҷро кардан мумкин аст:
$ eval $(minikube docker-env)
Сипас, мо фармони mvn k8s:build-ро ворид мекунем ва ин аст он чизе ки мо дар экран ҳангоми сохтани тасвири докер бо истифода аз вазифаи сохтани 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 : $
Қадами 3. Тасвирро ба феҳристи docker бор кунед
Пас аз он ки мо тасвири докерро бо феҳристи push танзимшуда сохтаем (дар ҳолати мо он docker.io аст), мо метавонем ин тасвирро ба реестр фиристем. Ин аст он чизест, ки пас аз он ки мо аз Eclipse JKube хоҳиш мекунем, ки вазифаи 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 : $
Пас аз фиристодани тасвир, шумо бояд тафтиш кунед, ки он ба феҳрист дохил карда шудааст. Дар ҳолати мо, мо онро танҳо дар Docker Hub мебинем, тавре ки дар расм нишон дода шудааст. 4.
Райс. 4. Тасвири ба реестр фиристодашуда дар Docker Hub пайдо шуд.
Қадами 4. Эҷоди манифестҳои Kubernetes барои барнома
Ҳамин тавр, мо тасвири барномаро ҷамъ кардем, ҳоло мо бояд манифестҳои Кубернетесро нависем. Барои ин, Eclipse JKube вазифае дорад, ки манифестҳои сахти захираҳоро дар асоси чаҳорчӯбаи аслии Java тавлид мекунад (
Дар мисоли мо, мо ҳама чизро тавре мегузорем, ва аз ин рӯ Eclipse JKube манифестро барои ҷойгиркунии пешфарз ва хидмат бо навъи ClusterIP тавлид мекунад. Ва танҳо пас аз он мо манифести хидматро тағир медиҳем, то навъи хидматро ба NodePort иваз кунем. Шумо метавонед рафтори пешфарзро бо истифода аз моликияти зерин бекор кунед:
<jkube.enricher.jkube-service.type>NodePort</jkube.enricher.jkube-service.type>
Пас аз он ки мо аз Eclipse JKube хоҳиш мекунем, ки вазифаи манбаи mvn k8s: ресурсро иҷро кунад, баромади экран чунин аст.
~/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 : $
Қадами 5. Барномаро ба кластери Kubernetes ҷойгир кунед
Ҳоло мо ҳама омодаем, ки барномаро ҷойгир кунем: мо тасвири онро тавлид кардем ва сипас манифестҳои захиравӣ ба таври худкор тавлид кардем. Ҳоло танҳо ба кор бурдани ҳамаи ин ба кластери Kubernetes боқӣ мемонад. Барои ҷойгиркунии барнома, шумо метавонед, албатта, фармони kubectl apply -f -ро истифода баред, аммо плагин ин корро барои мо иҷро карда метавонад. Ин аст он чизе, ки дар экран пайдо мешавад, пас аз он ки мо аз Eclipse JKube дархост мекунем, ки mvn k8s:apply apply супоришро иҷро кунад:
~/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"
}
Қадами 6. Барномаҳоро аз кластери Kubernetes бекор кунед
Барои ин, вазифаи undeploy истифода мешавад, ки он танҳо тамоми захираҳоеро, ки дар қадами қаблӣ истифода шуда буданд, хориҷ мекунад, яъне ҳангоми иҷрои вазифаи татбиқ. Пас аз он ки мо аз Eclipse JKube хоҳиш мекунем, ки вазифаи 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 : $
Бо Eclipse JKube шумо боз чӣ кор карда метавонед
Ҳамин тавр, мо вазифаҳои асосии Eclipse JKube ва Kubernetes Maven Plugin-ро дида баромадем, ки ба таҳияи барномаҳои Java барои платформаи Kubernetes мусоидат мекунанд. Агар шумо нахоҳед, ки ин вазифаҳоро аз клавиатура пайваста ворид кунед, шумо метавонед онҳоро дар конфигуратсияи плагин нависед, масалан, ин тавр:
<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>
Бояд гуфт, ки дар ин мақола мо ҳама вазифаҳои мақсаднокро, ки дар Eclipse JKube ва Kubernetes Maven Plugin мавҷуданд, баррасӣ накардаем, аз ин рӯ мо дар ҷадвали 2 рӯйхати вазифаҳои иловагиро пешниҳод мекунем, ки метавонанд барои шумо муфид бошанд.
Ҷадвал 2. Вазифаҳои ҳадафи иловагии Eclipse JKube.
Мақсад
Давра
Шарҳи
ТАСДИҚ КУНЕД
Гирифтани гузоришҳо аз барномае, ки дар Kubernetes кор мекунад.
бастаи
Порти дебагро кушоед, то шумо метавонед барномаи худро дар Kubernetes мустақиман аз IDE ислоҳ кунед.
Install
Сохтани форк барои вазифаи Насб ва татбиқи манифестҳои тавлидшуда ба кластери Kubernetes ҳамон тавре ки дар мавриди вазифаи татбиқ.
бастаи
Ҷойгиркунии худкори гарми барнома тавассути пайгирии фазои номи он.
Ҷойгир кардани барномаҳои Java дар Red Hat OpenShift бо истифода аз плагини OpenShift Maven
Барои ҷойгир кардани барнома аз мисоли мо дар платформаи Red Hat OpenShift, мо плагинро истифода мебарем
~/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 : $
Видео дарси
Барои гирифтани маълумоти бештар дар бораи чӣ гуна осон кардани рушди Kubernetes бо Eclipse JKube, ин дастури видеоиро дар бораи чӣ гуна зуд ҷойгир кардани барномаи оддии Spring Boot дар Minikube тамошо кунед:
хулоса
Дар ин мақола мо нишон додем, ки чӣ тавр Eclipse JKube ҳангоми кор бо Kubernetes ҳаёти як таҳиягари Java-ро осон мекунад. Маълумоти бештарро дар бораи Eclipse JKube метавонед дар ин ҷо пайдо кунед
Манбаъ: will.com