25 سال اڳ، جاوا پروگرامنگ جي مکيه وهڪرو ۾ داخل ٿيو ۽ آخرڪار بنيادي عنصرن مان هڪ بڻجي ويو جنهن جي چوڌاري ايپليڪيشن اسٽيڪ ٺهيل آهن. اڄ، جيتوڻيڪ، ڪيترائي ماڻهو ۽ تنظيمون جيڪي ڪيترن ئي سالن تائين جاوا سان وفادار آهن لڏپلاڻ ۾ مصروف آهن يا پليٽ فارم ڏانهن لڏپلاڻ تي غور ڪري رهيا آهن.
بدقسمتي سان، ڪبرنيٽس وٽ هڪ تيز سکيا وارو وکر آهي ۽ ترقي جي عمل ۾ هڪ ٻيو آپريشنل پرت متعارف ڪرايو آهي جنهن جا جاوا پروگرامر عادي آهن. اڄ اسان توهان کي ٻڌائينداسين ته ڪيئن استعمال ڪجي
روايتي جاوا ڊولپمينٽ پروسيس
روايتي ترقي جي عمل
چانور. 1. روايتي جاوا جي ترقي جو عمل.
بادل لاءِ جاوا ڊولپمينٽ جو عمل
جڏهن بادل ايپليڪيشنن ڏانهن منتقل ڪيو وڃي، Kubernetes ۽
بادل ڏانهن منتقلي ۾ روايتي جاوا جي ترقي جي عمل جو ميٽامورفوسس تصوير ۾ ڏيکاريل آهي. 2.
چانور. 2. بادل لاءِ جاوا ڊولپمينٽ جو عمل.
Eclipse JKube
Kubernetes ڏانهن لڏپلاڻ هڪ ٻيو عملياتي پرت کي ترقي جي عمل ۾ شامل ڪري ٿو، ۽ ڪيترائي ڊولپر ان بابت پريشان آهن ڇو ته اهي انهن جي بنيادي ڪم تي ڌيان ڏيڻ چاهيندا آهن- ايپليڪيشن منطق- بجاء انهن کي ڪيئن ترتيب ڏيڻ جي. ۽ اھو اھو آھي جتي اھو راند ۾ اچي ٿو.
هن آرٽيڪل جي باقي حصي ۾، اسان توهان کي ڏيکارينداسين ته ڪبرنيٽس ماون پلگ ان سان Eclipse JKube استعمال ڪندي ڪبرنيٽس ماحول ۾ جاوا ڊولپمينٽ جي عمل کي ڪيئن آسان بڻايو وڃي.
Eclipse JKube استعمال ڪندي ڪلائوڊ ڊولپمينٽ جو عمل
اچو ته تصوير 2 مان بادل لاءِ ٿوري تبديل ٿيل جاوا ڊولپمينٽ اسڪيم تي غور ڪريون، ان ۾ Eclipse JKube ۽ Kubernetes Maven Plugin متعارف ڪرايون، جيئن تصوير 3 ۾ ڏيکاريل آهي. XNUMX.
چانور. 3. Eclipse JKube استعمال ڪندي بادل لاءِ جاوا ڊولپمينٽ جو عمل.
جيئن اسان ڏسي سگهون ٿا، هتي ڪبرنيٽس ۽ ڪنٽينرز (ڊاگرام ۾ ڳاڙهي رنگ ۾ نمايان ٿيل) سان رابطي لاءِ سڀ عمل ڊفالٽ Eclipse JKube گول ٽاسڪ سان تبديل ڪيا ويا آهن، جيڪي ٽيبل ۾ درج ٿيل آهن. 1.
ٽيبل 1. Eclipse JKube ڊفالٽ ڪم.
مقصد
اسٽيج
بيان
PRE_INTEGRATION_TEST
عمارت ڊاکر تصويرون
انسٽال
رجسٽري ۾ ڊاکر تصويرون اپ لوڊ ڪندي
PROCESS_RESOURCES
K8s پيدا ڪري ٿو
اجرڪ
K8s تي ٺاهيل منشور لاڳو ڪرڻ
UNDEPLOY
K8s وسيلن کي هٽائڻ جيڪي k8s:apply ۽ k8s:deploy استعمال ڪندي لڳايا ويا هئا
نوٽ: جيڪڏھن توھان نٿا چاھيو تہ ڪم انھن راءِ رکندڙ ڊفالٽ کي استعمال ڪرڻ لاءِ، توھان دستي طور تي Eclipse JKube کي پنھنجي لاءِ ترتيب ڏئي سگھو ٿا، ڇو ته اھو ان ذريعي ترتيب ڏيڻ جي سپورٽ ڪري ٿو.
ھاڻي اچو ته مثالن تي نظر رکون استعمال ڪرڻ جا Eclipse JKube ۽ Kubernetes Maven Plugin جڏهن ايپليڪيشنن سان ڪم ڪندي.
Eclipse JKube استعمال ڪندي ڪبرنيٽس تي جاوا ايپليڪيشن کي ترتيب ڏيڻ
هن مثال ۾ اسان هڪ سادي جاوا ايپليڪيشن کي ڪلستر تي ترتيب ڏينداسين
مثال طور ايپليڪيشن اسان استعمال ڪندا آهيون
~/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>
<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. ايپليڪيشن لاءِ Kubernetes وسيلا ظاهر ڪريو
تنهن ڪري، اسان گڏ ڪيو آهي ايپليڪيشن تصوير، هاڻي اسان کي لکڻ جي ضرورت آهي Kubernetes manifests. ائين ڪرڻ لاءِ، Eclipse JKube وٽ ھڪڙو ڪم آھي جيڪو بنيادي جاوا فريم ورڪ جي بنياد تي سخت وسيلا ظاهر ڪري ٿو (
اسان جي مثال ۾، اسان سڀڪنھن شيء کي ڇڏي ڏيون ٿا، ۽ تنھنڪري Eclipse JKube ڊفالٽ ترتيب ڏيڻ ۽ ClusterIP ٽائپ سان خدمت لاءِ منشور ٺاھي ٿو. ۽ صرف پوءِ اسان خدمت جي قسم کي تبديل ڪرڻ لاءِ خدمت جي منشور کي تبديل ڪريون ٿا NodePort. توھان ھيٺ ڏنل ملڪيت استعمال ڪندي ڊفالٽ رويي کي ختم ڪري سگھو ٿا:
<jkube.enricher.jkube-service.type>NodePort</jkube.enricher.jkube-service.type>
اھو اھو آھي جيڪو اسڪرين جي ٻاھرين وانگر ڏسڻ ۾ اچي ٿو جڏھن اسان Eclipse JKube کان پڇو mvn k8s:resource resource task.
~/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 تي عمل ڪرڻ لاءِ پڇو: 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"
}
مرحلا 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>
<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 تي هلندڙ سڌو IDE مان.
انسٽال
انسٽاليشن ٽاسڪ لاءِ ڪانٽو ٺاهڻ ۽ ٺاهيل منشور کي ڪبرنيٽس ڪلستر تي لاڳو ڪرڻ ساڳي طرح لاڳو ٿيل ٽاسڪ جي صورت ۾.
پئڪيج
هڪ ايپليڪيشن جي خودڪار طور تي ان جي نالي جي جڳهه کي ٽريڪ ڪندي گرم لڳائڻ.
OpenShift Maven پلگ ان استعمال ڪندي 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 سان ڪبرنيٽس ڊولپمينٽ کي آسان ڪيئن بڻائڻ جي باري ۾ وڌيڪ سکڻ لاءِ، هي وڊيو ٽيوٽوريل ڏسو ته ڪيئن تيزيءَ سان هڪ سادي اسپرنگ بوٽ ايپليڪيشن کي Minikube تي لڳايو وڃي:
ٿڪل
هن آرٽيڪل ۾، اسان ڏيکاريو ته ڪيئن Eclipse JKube جاوا ڊولپر لاءِ زندگي آسان بڻائي ٿي جڏهن ڪبرنيٽس سان ڪم ڪري رهيو آهي. Eclipse JKube تي وڌيڪ معلومات ملي سگهي ٿي
جو ذريعو: www.habr.com