25 жыл мурун Java программалоонун негизги агымына кирип, акырында тиркеме стектери курулган негизги элементтердин бири болуп калды. Бирок бүгүнкү күндө көп жылдар бою Javaга лоялдуу болгон көптөгөн адамдар жана уюмдар көчүрүү менен алек болуп жатышат же платформага көчүп кетүүнү ойлонуп жатышат.
Тилекке каршы, Kubernetes тик үйрөнүү ийри сызыгына ээ жана Java программисттери көнүп калган иштеп чыгуу процессине дагы бир операциялык катмарды киргизет. Бүгүн биз кантип колдонуу керектигин айтып беребиз
Салттуу Java өнүктүрүү процесси
Салттуу өнүгүү процесси
Күрүч. 1. Салттуу Java өнүктүрүү процесси.
Булут үчүн Java иштеп чыгуу процесси
Булут колдонмолоруна өтүүдө, Kubernetes жана
Булутка өтүүдөгү салттуу Java өнүгүү процессинин метаморфоздору сүрөттө көрсөтүлгөн. 2.
Күрүч. 2. Булут үчүн Java иштеп чыгуу процесси.
Eclipse JKube
Kubernetes'ке көчүү иштеп чыгуу процессине дагы бир операциялык катмарды кошот жана көптөгөн иштеп чыгуучулар бул жөнүндө тынчсызданышат, анткени алар аларды кантип жайгаштырууга эмес, өздөрүнүн негизги иштерине - колдонмо логикасына көңүл бурууну каалашат. Жана бул жерде ал оюнга келет.
Бул макаланын калган бөлүгүндө биз Eclipse JKube менен Kubernetes Maven Plugin колдонуу менен Kubernetes чөйрөсүндө Java иштеп чыгуу процессин кантип жөнөкөйлөштүрүү керектигин көрсөтөбүз.
Eclipse JKube аркылуу булутту өнүктүрүү процесси
Сүрөттө көрсөтүлгөндөй, ага Eclipse JKube жана Kubernetes Maven Plugin киргизип, 2-сүрөттөгү булут үчүн бир аз өзгөртүлгөн Java өнүктүрүү схемасын карап көрөлү. 3.
Күрүч. 3. Eclipse JKube аркылуу булут үчүн Java иштеп чыгуу процесси.
Көрүнүп тургандай, бул жерде Kubernetes жана контейнерлер менен өз ара аракеттенүү боюнча бардык операциялар (диаграммада кызыл менен белгиленген) Таблицада келтирилген демейки Eclipse JKube максат милдеттери менен алмаштырылган. 1.
Таблица 1. Eclipse JKube демейки тапшырмалары.
маселе
Этап
баяндоо
PRE_INTEGRATION_TEST
Докер сүрөттөрүн куруу
INSTALL
Реестрге докер сүрөттөрүн жүктөө
PROCESS_RESOURCES
K8s манифесттерин түзүү
ТҮЗҮҮ
Түзүлгөн манифесттерди K8ге колдонуу
АЖЫРАТУУ
k8s:apply жана k8s:deploy аркылуу жайгаштырылган K8s ресурстарын алып салуу
Эскертүү: Эгер тапшырмалардын бул демейки параметрлерди колдонушун каалабасаңыз, Eclipse JKube'ду өзүңүз үчүн кол менен конфигурацияласаңыз болот, анткени ал конфигурацияны төмөнкү аркылуу колдойт.
Эми колдонмолор менен иштөөдө Eclipse JKube жана Kubernetes Maven Plugin колдонуу мисалдарын карап көрөлү.
Eclipse JKube аркылуу Kubernetes боюнча Java тиркемесин жайылтуу
Бул мисалда биз кластерге жөнөкөй 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 плагинин жүктөп алыңыз
Kubernetes Maven Plugin репозиторийде
<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. Сүрөттү докер реестрине жүктөңүз
Конфигурацияланган 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 ресурс манифесттерин түзүңүз
Ошентип, биз колдонмонун сүрөтүн чогулттук, эми биз 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 application тапшырмасын аткарууну сурангандан кийин экранда пайда болот:
~/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дин негизги максаттарын карап чыктык, алар Kubernetes платформасы үчүн Java тиркемелерин иштеп чыгууга көмөктөшөт. Эгер сиз бул тапшырмаларды клавиатурадан тынымсыз киргизгиңиз келбесе, аларды плагин конфигурациясында жазсаңыз болот, мисалы, төмөнкүдөй:
<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'те иштеген колдонмодон журналдарды алуу.
PACKAGE
Түздөн-түз IDEден Kubernetes'те иштеген колдонмоңузду оңдоо үчүн мүчүлүштүктөрдү оңдоо портун ачыңыз.
INSTALL
Орнотуу тапшырмасы үчүн айры түзүү жана түзүлгөн манифесттерди колдонуу тапшырмасындагыдай эле Kubernetes кластерине колдонуу.
PACKAGE
Колдонмонун аталыш мейкиндигин көзөмөлдөө менен автоматтык түрдө ысык жайылтуу.
OpenShift Maven плагинин колдонуу менен Red Hat OpenShift боюнча Java тиркемелерин жайылтуу
Биздин мисалдагы тиркемени 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 : $
Видеосабак
Eclipse JKube менен Kubernetes иштеп чыгууну кантип жеңилдетүү жөнүндө көбүрөөк билүү үчүн, Minikube'де жөнөкөй Spring Boot тиркемесин кантип тез жайгаштыруу боюнча бул видео окуу куралын көрүңүз:
жыйынтыктоо
Бул макалада биз Eclipse JKube Kubernetes менен иштөөдө Java иштеп чыгуучусунун жашоосун кантип жеңилдеткенин көрсөттүк. Eclipse JKube жөнүндө көбүрөөк маалымат тапса болот
Source: www.habr.com