مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

هي تحرير ان ڪري لکيو ويو آهي ڇاڪاڻ ته اسان جي ملازمن ڪلائنٽ سان ڪبرنيٽس تي ايپليڪيشن ڊولپمينٽ ۽ OpenShift تي اهڙي ڊولپمينٽ جي تفصيل بابت ڪافي ڳالهيون ڪيون هيون.

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

اسان عام طور تي مقالي سان شروع ڪندا آهيون ته ڪبرنيٽس صرف ڪبرنيٽس آهي، ۽ OpenShift اڳ ۾ ئي هڪ Kubernetes پليٽ فارم آهي، جهڙوڪ Microsoft AKS يا Amazon EKS. انهن پليٽ فارمن مان هر هڪ جا پنهنجا فائدا آهن، مقصد هڪ خاص ٽارگيٽ سامعين لاءِ. ۽ ان کان پوء، گفتگو خاص پليٽ فارمن جي طاقت ۽ ڪمزورين جي مقابلي ۾ ڦيرايو.

عام طور تي، اسان هن تحرير کي هڪ نتيجي سان لکڻ جو سوچيو جيئن ”ٻڌو، اهو فرق نٿو پوي ته ڪوڊ ڪٿي هلائڻو آهي، OpenShift تي يا AKS تي، EKS تي، ڪجهه ڪسٽم ڪبرنيٽس تي، يا ڪنهن به ڪبرنيٽس تي. (اختصار لاءِ اچو ته ان کي KUK سڏين) "اهو واقعي سادو آهي، اتي ۽ اتي."

پوءِ اسان پلان ڪيو ته سڀ کان سادو ”هيلو ورلڊ“ وٺون ۽ ان جو مثال استعمال ڪري ڏيکاريون ته عام ڇا آهي ۽ KUC ۽ Red Hat OpenShift ڪنٽينر پليٽ فارم جي وچ ۾ ڇا فرق آهي (هاڻي، OCP يا صرف OpenShift).

بهرحال، جيئن اسان هي پوسٽ لکيو، اسان محسوس ڪيو ته اسان ايتري عرصي تائين OpenShift استعمال ڪرڻ لاء استعمال ڪيو ويو آهي ته اسان کي صرف اهو محسوس نه ڪيو ويو ته اهو ڪيئن وڌيو ۽ هڪ شاندار پليٽ فارم ۾ تبديل ٿي ويو جيڪو صرف ڪبرنيٽس جي تقسيم کان گهڻو ڪجهه بڻجي ويو. اسان OpenShift جي پختگي ۽ سادگي کي قبول ڪرڻ جو رجحان رکون ٿا، ۽ ان جي شاندار نظر کي وڃائي ڇڏيو.

عام طور تي، فعال توبهه جو وقت اچي ويو آهي، ۽ هاڻي اسان قدم قدم تي اسان جي "هيلو ورلڊ" جي ڪميشن کي KUK ۽ OpenShift تي مقابلو ڪنداسين، ۽ اسان اهو ممڪن طور تي ممڪن طور تي ڪنداسين (چڱو، سواء ڪڏهن ڪڏهن ڏيکاريو. موضوع ڏانهن ذاتي رويو). جيڪڏهن توهان هن مسئلي تي خالص موضوعي راء ۾ دلچسپي وٺندا آهيو، ته توهان ان کي پڙهي سگهو ٿا هتي (EN). ۽ هن پوسٽ ۾ اسان حقيقتن ۽ صرف حقيقتن تي لٺ ڪنداسين.

ڪلستر

تنهن ڪري، اسان جي "هيلو ورلڊ" کي ڪلستر جي ضرورت آهي. اسان فوري طور تي ڪنهن به عوامي بادل کي ”نه“ چونداسون، جيئن سرور، رجسٽري، نيٽ ورڪ، ڊيٽا جي منتقلي وغيره لاءِ ادا نه ڪجي. ان جي مطابق، اسان هڪ سادي واحد نوڊ ڪلستر چونڊيو ٿا منيڪيوب (KUK لاءِ) ۽ ڪوڊ تيار ڪندڙ ڪنٽينر (OpenShift ڪلستر لاءِ). انهن ٻنهي اختيارن کي انسٽال ڪرڻ بلڪل آسان آهي، پر توهان جي ليپ ٽاپ تي ڪافي وسيلن جي ضرورت پوندي.

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

KUK-e تي اسيمبلي

سو اچو ته هلون.

قدم 1 - اسان جي ڪنٽينر تصوير جي تعمير

اچو ته اسان جي "هيلو ورلڊ" کي minikube تي ترتيب ڏيڻ سان شروع ڪريون. هن کي ڪرڻ لاء توهان کي ضرورت پوندي:

  1. 1. Docker نصب.
  2. 2. Git انسٽال ڪيو.
  3. 3. نصب ٿيل Maven (اصل ۾، هي منصوبو mvnw بائنري استعمال ڪري ٿو، تنهنڪري توهان ان کان سواء ڪري سگهو ٿا).
  4. 4. اصل ۾، ذريعو پاڻ، i.e. مخزن ڪلون github.com/gcolman/quarkus-hello-world.git

پهريون قدم هڪ Quarkus پروجيڪٽ ٺاهڻ آهي. پريشان نه ٿيو جيڪڏهن توهان ڪڏهن به Quarkus.io سان ڪم نه ڪيو آهي - اهو آسان آهي. توھان صرف انھن اجزاء کي چونڊيو جيڪي توھان پراجيڪٽ ۾ استعمال ڪرڻ چاھيو ٿا (RestEasy، Hibernate، Amazon SQS، Camel، وغيره)، ۽ پوءِ ڪوارڪس پاڻ، توھان جي شرڪت کان سواءِ، ميون آرڪيٽائپ کي ترتيب ڏئي ٿو ۽ سڀڪنھن شيءِ کي گيٿب تي رکي ٿو. اهو آهي، لفظي طور تي مائوس جي هڪ ڪلڪ ۽ توهان ڪيو آهي. ان ڪري اسان کي ڪوارڪس سان پيار آهي.

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

اسان جي ”هيلو ورلڊ“ کي ڪنٽينر واري تصوير ۾ ٺاهڻ جو آسان طريقو اهو آهي ته ڊڪر لاءِ quarkus-maven ايڪسٽينشن استعمال ڪيو وڃي، جيڪو سڀ ضروري ڪم ڪندو. Quarkus جي اچڻ سان، اهو واقعي آسان ۽ سادو ٿي ويو آهي: ڪنٽينر-تصوير-ڊاڪر ايڪسٽينشن شامل ڪريو ۽ توهان ميون ڪمانڊ استعمال ڪندي تصويرون ٺاهي سگهو ٿا.

./mvnw quarkus:add-extension -Dextensions=”container-image-docker”

آخرڪار، اسان Maven استعمال ڪندي اسان جي تصوير ٺاهي. نتيجي طور، اسان جو سورس ڪوڊ هڪ تيار ٿيل ڪنٽينر جي تصوير ۾ بدلجي ٿو جيڪو اڳ ۾ ئي ڪنٽينر رن ٽائم ماحول ۾ هلائي سگهجي ٿو.

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

./mvnw -X clean package -Dquarkus.container-image.build=true

بس، هاڻي توهان ڪنٽينر کي ڊاڪر رن ڪمانڊ سان شروع ڪري سگهو ٿا، اسان جي سروس کي 8080 بندرگاهن ڏانهن نقشي ۾ ترتيب ڏيو ته جيئن ان کي رسائي سگهجي.

docker run -i — rm -p 8080:8080 gcolman/quarkus-hello-world

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

ڪنٽينر مثال شروع ٿيڻ کان پوء، باقي رهي ٿو ته curl حڪم سان چيڪ ڪرڻ لاء ته اسان جي خدمت هلي رهي آهي:

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

تنهنڪري هر شي ڪم ڪري ٿي ۽ اهو واقعي آسان ۽ سادو هو.

قدم 2 - اسان جو ڪنٽينر موڪليو ڪنٽينر تصويري مخزن ڏانهن

ھاڻي، اسان جي ٺاھيل تصوير مقامي طور تي، اسان جي مقامي ڪنٽينر اسٽوريج ۾ محفوظ ڪئي وئي آھي. جيڪڏهن اسان هن تصوير کي پنهنجي COOK ماحول ۾ استعمال ڪرڻ چاهيون ٿا، ته پوءِ ان کي ڪنهن ٻئي مخزن ۾ رکڻ گهرجي. ڪبرنيٽس وٽ اهڙيون خاصيتون نه آهن، تنهنڪري اسان استعمال ڪنداسين dockerhub. ڇو ته، پهريون، اهو مفت آهي، ۽ ٻيو، (تقريبا) هرڪو اهو ڪري ٿو.

اهو پڻ تمام سادو آهي، ۽ توهان سڀني کي ضرورت آهي هڪ dockerhub اڪائونٽ.

تنهن ڪري، اسان dockerhub انسٽال ڪيو ۽ اسان جي تصوير اتي موڪليو.

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

قدم 3 - ڪبرنيٽس لانچ ڪريو

اسان جي ”هيلو ورلڊ“ کي هلائڻ لاءِ ڪبرنيٽس جي ترتيب کي گڏ ڪرڻ جا ڪيترائي طريقا آهن، پر اسان انهن مان آسان استعمال ڪنداسين، اهو ئي طريقو آهي جيڪو اسان آهيون...

پهرين، اچو ته minikube ڪلستر شروع ڪريون:

minikube start

قدم 4 - اسان جي ڪنٽينر جي تصوير کي ترتيب ڏيو

هاڻي اسان کي اسان جي ڪوڊ ۽ ڪنٽينر جي تصوير کي ڪبرنيٽس ترتيبن ۾ تبديل ڪرڻ جي ضرورت آهي. ٻين لفظن ۾، اسان کي هڪ پوڊ جي ضرورت آهي ۽ ترتيب ڏيڻ جي تعريف اسان جي ڪنٽينر جي تصوير ڏانهن اشارو ڪندي dockerhub تي. اهو ڪرڻ جو هڪ آسان طريقو اهو آهي ته اسان جي تصوير ڏانهن اشارو ڪندي ٺاهي ترتيب ڏيڻ واري حڪم کي هلائڻ:

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

kubectl create deployment hello-quarkus — image =gcolman/quarkus-hello-world:1.0.0-SNAPSHOT

ھن حڪم سان اسان پنھنجي COO کي چيو آھي ته ٺاھڻ جي ٺاھ جوڙ ٺاھيو، جنھن ۾ اسان جي ڪنٽينر جي تصوير لاءِ پوڊ جي وضاحت ھجڻ گھرجي. هي حڪم هن ترتيب کي لاڳو ڪندو اسان جي minikube ڪلستر تي، ۽ هڪ ترتيب ٺاهي جيڪا اسان جي ڪنٽينر جي تصوير کي ڊائون لوڊ ڪندي ۽ پوڊ کي ڪلستر ۾ لانچ ڪندي.

قدم 5 - اسان جي خدمت تائين رسائي کوليو

هاڻي ته اسان وٽ هڪ ترتيب ڏنل ڪنٽينر تصوير آهي، اهو سوچڻ جو وقت آهي ته هن آرام واري خدمت تائين ٻاهرين رسائي کي ڪيئن ترتيب ڏيو، جيڪو، حقيقت ۾، اسان جي ڪوڊ ۾ پروگرام ٿيل آهي.

هتي ڪيترائي طريقا آهن. مثال طور، توهان استعمال ڪري سگهو ٿا expose ڪمانڊ خودڪار طور تي مناسب Kubernetes اجزاء ٺاهڻ لاءِ، جهڙوڪ خدمتون ۽ آخري پوائنٽون. دراصل، اھو اھو آھي جيڪو اسان پنھنجي ڊيپلائيمينٽ اعتراض لاءِ expose حڪم تي عمل ڪندي ڪنداسين:

kubectl expose deployment hello-quarkus — type=NodePort — port=8080

اچو ته هڪ لمحو وٺي ڏسو "-type" اختيار کي expose ڪمانڊ جي.

جڏهن اسان پنهنجي سروس کي هلائڻ لاءِ ضروري جزن کي بي نقاب ۽ ٺاهيندا آهيون، اسان کي ٻين شين سان گڏ، هيلو-ڪوارڪس سروس سان ڳنڍڻ جي قابل ٿيڻو پوندو، جيڪو اسان جي سافٽ ويئر جي بيان ڪيل نيٽ ورڪ جي اندر هوندو آهي. ۽ پيٽرولر قسم اسان کي شيون ٺاهڻ ۽ ڳنڍڻ جي اجازت ڏئي ٿي لوڊ بيلنسرز کي هن نيٽ ورڪ ڏانهن ٽرئفڪ جي رستي ڏانهن.

مثال طور، لکڻ سان ٽائپ = لوڊ بيلنساسان خود بخود عوامي بادل ۾ لوڊ بيلنس فراهم ڪندا آهيون اسان جي ڪبرنيٽس ڪلستر سان ڳنڍڻ لاءِ. اهو، يقينا، عظيم آهي، پر توهان کي سمجهڻ جي ضرورت آهي ته اهڙي ترتيب کي سختي سان هڪ مخصوص پبلڪ ڪلائوڊ سان ڳنڍيو ويندو ۽ مختلف ماحول ۾ Kubernetes مثالن جي وچ ۾ منتقل ڪرڻ وڌيڪ ڏکيو ٿيندو.

اسان جي مثال ۾ قسم = نوڊ پورٽ، اهو آهي، اسان جي خدمت تائين رسائي آهي نوڊ جي IP پتي ۽ پورٽ نمبر. هي اختيار توهان کي اجازت ڏئي ٿو ته ڪنهن به عوامي بادل کي استعمال نه ڪيو، پر ڪجهه اضافي قدمن جي ضرورت آهي. پهرين، توهان کي پنهنجي پنهنجي لوڊ بيلنس جي ضرورت آهي، تنهنڪري اسان پنهنجي ڪلستر ۾ NGINX لوڊ بيلنس کي ترتيب ڏينداسين.

قدم 6 - لوڊ بيلنس انسٽال ڪريو

minikube وٽ پليٽ فارمن جا ڪيترائي ڪم آھن جيڪي ان کي آسان بڻائي سگھن ٿا خارجي طور تي پهچندڙ اجزاء، جھڙوڪ ingress controllers. Minikube اچي ٿو Nginx ingress ڪنٽرولر سان گڏ، ۽ اسان کي اهو ڪرڻو آهي ته ان کي فعال ڪرڻ ۽ ان کي ترتيب ڏيو.

minikube addons enable ingress

هاڻي اسان صرف هڪ حڪم سان هڪ نينگڪس انگريس ڪنٽرولر ٺاهينداسين، جيڪو اسان جي منيڪوب ڪلستر اندر ڪم ڪندو:

ingress-nginx-controller-69ccf5d9d8-j5gs9 1/1 Running 1 33m

قدم 7 - داخل ٿيڻ کي ترتيب ڏيو

هاڻي اسان کي Nginx ingress ڪنٽرولر کي ترتيب ڏيڻ جي ضرورت آهي ته جيئن اهو هيلو-ڪوارڪس جي درخواستن کي قبول ڪري.

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

۽ آخرڪار، اسان کي هن ترتيب کي لاڳو ڪرڻ جي ضرورت آهي.

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

kubectl apply -f ingress.yml

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

جيئن ته اسان اهو سڀ ڪجهه پنهنجي ڪمپيوٽر تي ڪري رهيا آهيون، اسان صرف پنهنجي نوڊ جي IP پتي کي /etc/ hosts فائل ۾ شامل ڪريون ٿا http جي درخواستن کي روٽ ڪرڻ لاءِ اسان جي منيڪيوب کي NGINX لوڊ بيلنسر ڏانهن.

192.168.99.100 hello-quarkus.info

اھو اھو آھي، ھاڻي اسان جي minikube سروس Nginx ingress ڪنٽرولر ذريعي ٻاھرين طور تي پهچندي آھي.

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

خير، اهو آسان هو، صحيح؟ يا واقعي نه؟

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

OpenShift تي هلندڙ (ڪوڊ تيار ڪنٽينرز)

هاڻي اچو ته ڏسو ته اهو سڀ ڪجهه ڪيئن ٿئي ٿو Red Hat OpenShift Container Platform (OCP) تي.

جيئن minikube سان، اسان چونڊون ٿا سنگل نوڊ OpenShift ڪلسٽر ڊيزائن جي صورت ۾ ڪوڊ تيار ڪنٽينرز (CRC). اڳي، ان کي minishift سڏيو ويندو هو ۽ OpenShift Origin پروجيڪٽ تي ٻڌل هو، پر هاڻي اهو CRC آهي ۽ Red Hat جي OpenShift ڪنٽينر پليٽ فارم تي ٺهيل آهي.

هتي اسان، معاف ڪجو، مدد نٿا ڪري سگهون پر چوندا آهن: "OpenShift شاندار آهي!"

شروعات ۾، اسان لکڻ لاء سوچيو ته OpenShift تي ترقي Kubernetes تي ترقي کان مختلف ناهي. ۽ اصل ۾ اهو ڪيئن آهي. پر هي پوسٽ لکڻ جي عمل ۾، اسان کي ياد آهي ته توهان کي ڪيتريون اضافي حرڪتون ڪرڻيون پونديون آهن جڏهن توهان وٽ OpenShift نه آهي، ۽ اهو ئي سبب آهي، ٻيهر، اهو شاندار آهي. اسان ان کي پسند ڪندا آهيون جڏهن سڀ ڪجهه آساني سان ٿي ويندو آهي، ۽ اسان جو مثال ڪيترو آسان آهي OpenShift تي minikube جي مقابلي ۾ ترتيب ڏيڻ ۽ هلائڻ اهو آهي جيڪو اسان کي هي پوسٽ لکڻ لاءِ حوصلا افزائي ڪري ٿو.

اچو ته پروسيس ذريعي وڃو ۽ ڏسو ته اسان کي ڇا ڪرڻ جي ضرورت آهي.

تنهن ڪري، minikube مثال ۾، اسان Docker سان شروع ڪيو... انتظار ڪريو، اسان کي هاڻي ضرورت ناهي Docker مشين تي نصب ٿيل.

۽ اسان کي مقامي گٽ جي ضرورت ناهي.
۽ Maven جي ضرورت ناهي.
۽ توهان کي پنهنجي هٿن سان هڪ ڪنٽينر تصوير ٺاهڻ جي ضرورت ناهي.
۽ توهان کي ڪنٽينر تصويرن جي ڪنهن به مخزن کي ڳولڻ جي ضرورت ناهي.
۽ هڪ ingress ڪنٽرولر انسٽال ڪرڻ جي ڪا ضرورت نه آهي.
۽ توهان کي داخلا کي ترتيب ڏيڻ جي ضرورت ناهي.

تون سمجهين ٿو، صحيح؟ OpenShift تي اسان جي ايپليڪيشن کي ترتيب ڏيڻ ۽ هلائڻ لاء، توهان کي مٿين مان ڪنهن جي ضرورت ناهي. ۽ عمل پاڻ هن طرح نظر اچي ٿو.

قدم 1 - پنهنجو OpenShift ڪلستر لانچ ڪريو

اسان Red Hat مان ڪوڊ تيار ڪنٽينرز استعمال ڪندا آهيون، جيڪو بنيادي طور تي ساڳيو Minikube آهي، پر صرف هڪ مڪمل واحد نوڊ Openshift ڪلستر سان.

crc start

قدم 2 - ايپليڪيشن کي ٺاھيو ۽ ترتيب ڏيو OpenShift ڪلستر ڏانھن

اهو هن قدم تي آهي ته OpenShift جي سادگي ۽ سهولت ان جي تمام جلال ۾ نازل ٿيل آهن. جيئن سڀني ڪبرنيٽس جي تقسيم سان، اسان وٽ ڪيترائي طريقا آھن ايپليڪيشن کي ڪلستر ۾ هلائڻ لاءِ. ۽، جيئن KUK جي صورت ۾، اسان خاص طور تي آسان چونڊيو ٿا.

OpenShift هميشه ٺاهي وئي آهي پليٽ فارم جي طور تي ٺاهي ۽ هلائڻ لاء ڪنٽينر ٿيل ايپليڪيشنون. ڪنٽينر بلڊنگ هميشه هن پليٽ فارم جو هڪ لازمي حصو رهيو آهي، تنهنڪري لاڳاپيل ڪمن لاءِ اضافي ڪبرنيٽس وسيلا آهن.

اسان استعمال ڪنداسين OpenShift's Source 2 Image (S2I) پروسيس، جنهن ۾ اسان جا ماخذ (ڪوڊ يا بائنري) وٺڻ جا ڪيترائي مختلف طريقا آهن ۽ ان کي ڪنٽينر ٿيل تصوير ۾ تبديل ڪيو وڃي ٿو جيڪو هڪ OpenShift ڪلستر تي هلندو آهي.

هن کي ڪرڻ لاء اسان کي ٻن شين جي ضرورت آهي:

  • اسان جو سورس ڪوڊ گٽ مخزن ۾ آهي
  • بلڊر جي تصوير جنهن جي بنياد تي تعمير ڪئي ويندي.

ڪيتريون ئي اهڙيون تصويرون آهن جيڪي ريڊ هيٽ ۽ ڪميونٽي جي سطح تي ٻنهي طرفان رکيون ويون آهن، ۽ اسان استعمال ڪنداسين OpenJDK تصوير، سٺو، ڇاڪاڻ ته مان هڪ جاوا ايپليڪيشن ٺاهي رهيو آهيان.

توهان هلائي سگهو ٿا S2I تعمير ٻنهي OpenShift ڊولپر گرافڪ ڪنسول ۽ ڪمانڊ لائن مان. اسان استعمال ڪنداسين نئين-ايپ ڪمانڊ، ان کي ٻڌايو ته ڪٿي بلڊر جي تصوير ۽ اسان جو سورس ڪوڊ حاصل ڪجي.

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

oc new-app registry.access.redhat.com/ubi8/openjdk-11:latest~https://github.com/gcolman/quarkus-hello-world.git

اهو آهي، اسان جي درخواست ٺاهي وئي آهي. ائين ڪرڻ ۾، S2I عمل ھيٺ ڏنل شيون ڪيو:

  • ايپليڪيشن جي تعمير سان لاڳاپيل سڀني قسمن جي شين لاء هڪ خدمت تعمير پوڊ ٺاهيو.
  • OpenShift Build config ٺاهي وئي.
  • مون بلڊر تصوير کي اندروني OpenShift ڊاکر رجسٽري ۾ ڊائون لوڊ ڪيو.
  • ڪلون ٿيل "هيلو ورلڊ" مقامي مخزن ڏانهن.
  • مون ڏٺو ته اتي هڪ ميون پوم هو، تنهنڪري مون ميون استعمال ڪندي ايپليڪيشن کي مرتب ڪيو.
  • مرتب ڪيل جاوا ايپليڪيشن تي مشتمل هڪ نئين ڪنٽينر تصوير ٺاهي ۽ هن تصوير کي اندروني ڪنٽينر رجسٽري ۾ وجهي ڇڏيو.
  • پوڊ، سروس، وغيره لاءِ وضاحتن سان گڏ ڪبرنيٽس جي ترتيب ٺاهي وئي.
  • مون ڪنٽينر جي تصوير کي ترتيب ڏيڻ شروع ڪيو.
  • سروس بلڊ پوڊ کي هٽايو.

هن لسٽ تي تمام گهڻو آهي، پر بنيادي شيء اها آهي ته سڄي تعمير خاص طور تي OpenShift جي اندر ٿئي ٿي، اندروني ڊاکر رجسٽري OpenShift جي اندر آهي، ۽ تعمير جي عمل سڀني ڪبرنيٽس اجزاء ٺاهي ٿي ۽ انهن کي ڪلستر ۾ هلائي ٿو.

جيڪڏهن توهان ڪنسول ۾ S2I جي لانچ کي بصري طور تي مانيٽر ڪريو ٿا، توهان ڏسي سگهو ٿا ته ڪيئن تعمير پوڊ شروع ڪيو ويندو آهي جڏهن تعمير مڪمل ٿئي ٿي.

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

هاڻي اچو ته هڪ نظر رکون بلڊر پوڊ لاگز تي: پهريون، اهو ڏيکاري ٿو ته ڪيئن ماوين پنهنجو ڪم ڪري ٿو ۽ اسان جي جاوا ايپليڪيشن ٺاهڻ لاءِ انحصار کي ڊائون لوڊ ڪري ٿو.

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

ميون تعمير مڪمل ٿيڻ کان پوء، ڪنٽينر جي تصوير جي تعمير شروع ڪئي وئي آهي، ۽ پوء هي ٺهيل تصوير اندروني مخزن ڏانهن موڪليو ويو آهي.

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

اهو آهي، تعمير جو عمل مڪمل آهي. هاڻي اچو ته پڪ ڪريون ته اسان جي ايپليڪيشن جا پوڊ ۽ خدمتون ڪلستر ۾ هلن ٿيون.

oc get service

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

اهو ئي سڀ ڪجهه آهي. ۽ صرف هڪ ٽيم. اسان کي صرف اهو ڪرڻو آهي ته هن خدمت کي ٻاهران رسائي حاصل ڪرڻ لاءِ.

قدم 3 - ٻاهران رسائي لاءِ خدمت کي ظاهر ڪريو

جيئن KUC جي صورت ۾، OpenShift پليٽ فارم تي اسان جي "Hello World" کي پڻ هڪ روٽر جي ضرورت آهي ته جيئن ٻاهرين ٽرئفڪ کي ڪلستر جي اندر سروس ڏانهن سڌو رستو ڏيکاري. OpenShift هن کي تمام آسان بڻائي ٿو. پهرين، HAProxy روٽنگ جزو ڪلستر ۾ ڊفالٽ طور تي نصب ڪيو ويو آهي (اهو ساڳيو NGINX ۾ تبديل ٿي سگهي ٿو). ٻيو، اتي خاص ۽ انتهائي ترتيب ڏيڻ وارا وسيلا آهن جن کي Routes سڏيو ويندو آهي ۽ سٺي پراڻي ڪبرنيٽس ۾ Ingress آبجیکٹ جي ياد ڏياريندڙ (حقيقت ۾، OpenShift جي رستن Ingress آبجیکٹ جي ڊيزائن تي تمام گهڻو اثر ڪيو، جيڪو هاڻي OpenShift ۾ استعمال ڪري سگهجي ٿو)، پر اسان جي ”هيلو ورلڊ“ لاءِ. , ۽ لڳ ڀڳ سڀني ٻين ڪيسن ۾، معياري رستو اسان لاء ڪافي آهي بغير اضافي ترتيب جي.

”هيلو ورلڊ“ لاءِ هڪ روٽيبل FQDN ٺاهڻ لاءِ (ها، OpenShiift وٽ خدمت جي نالن سان روٽنگ لاءِ پنهنجو DNS آهي)، اسان صرف اسان جي خدمت کي ظاهر ڪنداسين:

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

oc expose service quarkus-hello-world

جيڪڏهن توهان نئين ٺاهيل روڊ تي نظر وجهو ٿا، ته توهان اتي ڳولي سگهو ٿا FQDN ۽ ٻين روٽنگ جي معلومات:

oc get route

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

۽ آخرڪار، اسان برائوزر کان اسان جي خدمت تائين رسائي حاصل ڪندا آهيون:

مون کي معاف ڪجو، OpenShift، اسان توهان جي ڪافي ساراهه نه ڪئي ۽ توهان کي سمجهي ورتو

پر هاڻي اهو بلڪل آسان هو!

اسان ڪبرنيٽس ۽ هر شي سان پيار ڪندا آهيون جيڪا هي ٽيڪنالاجي اسان کي ڪرڻ جي اجازت ڏئي ٿي، ۽ اسان سادگي ۽ آسانيء سان پڻ پيار ڪندا آهيون. ڪبرنيٽس ٺاهي وئي هئي ناقابل يقين حد تائين ورهايل، اسپيبلبل ڪنٽينرز جي آپريشن کي آسان ڪرڻ، پر ان جي سادگي هاڻي ڪافي ناهي ته اڄ تائين ايپليڪيشنن کي پيداوار ۾ رکڻ لاء. اهو آهي جتي OpenShift راند ۾ اچي ٿو، وقت سان گڏ رکڻ ۽ ڪبرنيٽس پيش ڪندي، بنيادي طور تي ڊولپر جو مقصد. خاص طور تي ڊولپر لاءِ OpenShift پليٽ فارم کي ترتيب ڏيڻ لاءِ تمام گهڻي ڪوشش ڪئي وئي آهي، بشمول اوزار ٺاهڻ جهڙوڪ S2I، ODI، ڊولپر پورٽل، OpenShift آپريٽر فريم ورڪ، IDE انٽيگريشن، ڊولپر ڪيٽلاگ، هيلم انٽيگريشن، مانيٽرنگ ۽ ٻيا ڪيترائي.

اسان کي اميد آهي ته هي مضمون توهان لاء دلچسپ ۽ مفيد هو. توھان ڳولي سگھوٿا اضافي وسيلا، مواد ۽ ٻيون شيون ڊولپمينٽ لاءِ ڪارآمد OpenShift پليٽ فارم تي پورٽل تي Red Hat ڊولپرز.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو