ከ 25 ዓመታት በፊት ጃቫ ወደ ፕሮግራሚንግ ብዙኃን ገብታ በመጨረሻ የአፕሊኬሽን ቁልል ከሚገነቡባቸው ምሰሶዎች አንዱ ለመሆን ነበር። ዛሬ ግን ለብዙ አመታት ለጃቫ ታማኝ የሆኑ ብዙ ሰዎች እና ድርጅቶች ወደ ጃቫ መድረክ ለመንቀሳቀስ ወይም ለመንቀሳቀስ በማሰብ ተጠምደዋል።
ወዮ፣ ኩበርኔትስ ቁልቁል የመማሪያ ጥምዝ አለው እና ሌላ ኦፕሬሽናል ንብርብር በጃቫ ፕሮግራመሮች ዘንድ የሚያውቀውን በጃቫ ልማት ሂደት ውስጥ አስተዋውቋል። ዛሬ እንዴት እንደሚጠቀሙ እናሳይዎታለን
ባህላዊ የጃቫ ልማት ሂደት
ባህላዊ ልማት ሂደት
ሩዝ. 1. ባህላዊ የጃቫ ልማት ሂደት.
ለደመናው የጃቫ ልማት ሂደት
ወደ የደመና መተግበሪያዎች ሽግግር, Kubernetes እና
ወደ ደመና በሚሸጋገርበት ጊዜ የባህላዊው የጃቫ ልማት ሂደት ሜታሞሮሲስ በምስል ላይ ይታያል። 2.
ሩዝ. 2. ለደመናው የጃቫ ልማት ሂደት.
Eclipse JKube
ወደ ኩበርኔትስ የሚደረገው ሽግግር በእድገት ሂደት ውስጥ ሌላ የአሠራር ሽፋን ይጨምራል, እና ብዙ ገንቢዎች በዚህ ያልተደናገጡ ናቸው, ምክንያቱም በዋና ሥራቸው ላይ - የመተግበሪያ አመክንዮ - እና እነሱን እንዴት ማሰማራት ላይ ማተኮር አይፈልጉም. እና እዚህ ወደ ጨዋታ ይመጣል
በቀሪው በዚህ ጽሑፍ ውስጥ Eclipse JKube ን ከ Kubernetes Maven Plugin ጋር በመጠቀም በኩበርኔትስ አካባቢ የጃቫን ልማት ሂደት እንዴት እንደሚያቃልሉ እናሳይዎታለን።
Eclipse JKube ን በመጠቀም ለደመናው የእድገት ሂደት
በስእል 2 ላይ እንደሚታየው Eclipse JKube እና Kubernetes Maven Pluginን ወደ ውስጥ በማስገባት በትንሹ የተሻሻለ የደመና ጃቫ ልማት ፍሰት ከስእል 3 እናስብ። XNUMX.
ሩዝ. 3. Eclipse JKubeን በመጠቀም ለደመናው የጃቫ ልማት ሂደት።
እንደምናየው ፣ እዚህ ከኩበርኔትስ እና ኮንቴይነሮች ጋር ለመግባባት ሁሉም ክዋኔዎች (በስዕሉ ላይ በቀይ የተገለጹ) በነባሪ Eclipse JKube ግቦች ተተክተዋል ፣ ይህም በሰንጠረዥ ውስጥ ተዘርዝሯል። 1.
ትር. 1. Eclipse JKube ነባሪ ተግባራት.
ዓላማ
ደረጃ
መግለጫ
PRE_INTEGRATION_TEST
የዶክተር ምስሎችን መገንባት
ጫን
Docker ምስሎችን ወደ መዝገብ ቤት በመግፋት ላይ
PROCESS_RESOURCES
የK8s መገለጫዎችን በማመንጨት ላይ
ሰብስብ
የመነጩ መግለጫዎችን ወደ K8s መተግበር
አሰናብት
በk8s:apply እና k8s:deploy ላይ የተሰማሩ የK8s መርጃዎችን በመሰረዝ ላይ
ማስታወሻ: ተግባሮች እነዚህን ከባድ ነባሪዎች (በአስተያየት ያላቸው ነባሪዎች) ለመጠቀም ካልፈለጉ Eclipse JKube ን እራስዎ ማዋቀር ይችላሉ ፣ ምክንያቱም ውቅረትን ይደግፋል።
አሁን ከመተግበሪያዎች ጋር ስንሰራ Eclipse JKube እና Kubernetes Maven Pluginን የመጠቀም ምሳሌዎችን እንመልከት።
የጃቫ መተግበሪያን በ Eclipse JKube ወደ Kubernetes ያሰማሩ
በዚህ ምሳሌ፣ ቀላል የጃቫ መተግበሪያን በክላስተር ላይ እናሰማራለን።
እንደ ምሳሌ መተግበሪያ, እንጠቀማለን
~/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 የኩበርኔትስ ማቨን ተሰኪን ያውርዱ
የኩበርኔትስ ማቨን ፕለጊን በማከማቻው ውስጥ አለ።
<plugin>
<groupId>org.eclipse.jkube</groupId>
<artifactId>kubernetes-maven-plugin</artifactId>
<version>${jkube.version}</version>
</plugin>
OpenShift በንጹህ Kubernetes ምትክ ጥቅም ላይ የሚውል ከሆነ 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.io) ከገነባን በኋላ ይህን ምስል ወደ መዝገቡ ልንገፋው እንችላለን። Eclipse JKube mvn k8s:push push task ን እንዲያከናውን ከጠየቅን በኋላ የሚታየው ይህ ነው።
~/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፡ ለመተግበሪያው የኩበርኔትስ ሪሶርስ ማሳያዎችን ማመንጨት
ስለዚህ, የመተግበሪያውን ምስል ሰብስበናል, አሁን የኩበርኔትስ አንጸባራቂዎችን መጻፍ ያስፈልገናል. ይህንን ለማድረግ, Eclipse JKube ከስር የጃቫ ማዕቀፍ ላይ በመመስረት የሃርድ ሃብት መግለጫዎችን የሚያመነጭ ተግባር አለው (
በእኛ ምሳሌ ፣ ሁሉንም ነገር እንዳለ እንተወዋለን ፣ እና ስለዚህ Eclipse JKube ለነባሪ ማሰማራቱ እና ለ ClusterIP አይነት ላለው አገልግሎት መግለጫ ያወጣል። እና ከዚያ በኋላ ብቻ የአገልግሎቱን አይነት ወደ ኖድፖርት ለመቀየር የአገልግሎቱን መግለጫ እናስተካክላለን። ነባሪ ባህሪን በሚከተለው ንብረት መሻር ይችላሉ፡-
<jkube.enricher.jkube-service.type>NodePort</jkube.enricher.jkube-service.type>
Eclipse JKube mvn k8s:resource resource ተግባርን እንዲያሄድ ከጠየቅን በኋላ የስክሪኑ ውፅዓት ይህን ይመስላል።
~/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 ክላስተር ላይ መተግበር ብቻ ይቀራል። አፕሊኬሽኑን ለማሰማራት፣ በእርግጥ የ kubectl apply -f ትዕዛዝን መጠቀም ትችላለህ፣ ነገር ግን ፕለጊኑ ይህን ሊሰራልን ይችላል። Eclipse JKube mvn k8s እንዲያስፈጽም ከጠየቅን በኋላ በስክሪኑ ላይ ምን እንደሚሆን እነሆ፡ ተግብር ተግባር፡
~/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፡ መተግበሪያዎችን ከኩበርኔትስ ክላስተር አራግፍ
ለዚህም, ያልተሰራ ስራ ጥቅም ላይ ይውላል, ይህም በቀድሞው ደረጃ ላይ የተተገበሩትን ሁሉንም ሀብቶች በቀላሉ ያስወግዳል, ማለትም, የተግባር ስራው ሲፈፀም. Eclipse JKube 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 : $
በ Eclipse JKube ሌላ ምን ማድረግ ይቻላል
ስለዚህ፣ ለኩበርኔትስ መድረክ የጃቫ አፕሊኬሽኖችን የሚያመቻቹ የ Eclipse JKube እና Kubernetes Maven Plugin ዋና ግቦችን ተመልክተናል። እነዚህን ስራዎች ከቁልፍ ሰሌዳው ላይ በቋሚነት ማስገባት ካልፈለጉ በተሰኪው ውቅር ውስጥ ሊጽፏቸው ይችላሉ, ለምሳሌ, እንደዚህ:
<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
በ Kubernetes ላይ የሚሰራ መተግበሪያን በቀጥታ ከIDE ለማረም የማረሚያ ወደብ ይክፈቱ።
ጫን
የመጫን ተግባርን መንጠፍ እና የመነጨውን አንጸባራቂዎችን ወደ ኩበርኔትስ ክላስተር መተግበር በትክክል ከተተገበረው ተግባር ጋር ተመሳሳይ ነው።
PACKAGE
የስም ቦታውን በመከታተል በራስ-ሰር ትኩስ መተግበሪያን ያሰማሩ።
የOpenShift Maven Pluginን በመጠቀም የጃቫ አፕሊኬሽኖችን በ Red Hat OpenShift ላይ ማሰማራት
መተግበሪያውን ከኛ ምሳሌ በ 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 እንዴት ማቃለል እንደሚቻል የበለጠ ለማወቅ ቀላል የስፕሪንግ ቡት መተግበሪያን በሚኒኩቤ ላይ በፍጥነት ስለማሰማራት የቪዲዮ አጋዥ ስልጠናውን ይመልከቱ፡-
መደምደሚያ
በዚህ ጽሑፍ ውስጥ, Eclipse JKube ከ Kubernetes ጋር ሲሰራ ለጃቫ ገንቢ ህይወትን እንዴት ቀላል እንደሚያደርግ አሳይተናል. Eclipse JKube ላይ ተጨማሪ መረጃ በ ላይ ይገኛል።
ምንጭ: hab.com