ھن سبق ۾، توھان استعمال ڪري سگھو ٿا Cloud Shell، جيڪو تيار ڪري ٿو ورچوئل مشين g1-small Google Compute Engine ۾ ديبين جي بنياد تي لينڪس، يا لينڪس يا ميڪوس ڪمپيوٽر سان.
اختيار A: Cloud شيل استعمال ڪندي
Cloud Shell استعمال ڪرڻ جا فائدا:
پٿون 2 ۽ پٿون 3 ڊولپمينٽ ماحول (بشمول مجازي) مڪمل طور تي ترتيب ڏنل آهن.
ڪمانڊ لائين اوزار ڪلائوڊ, گھڻي, اٿي и ڪيوبڪبل، جيڪي اسان استعمال ڪنداسين اڳ ۾ ئي نصب ٿيل آهن.
ھڪڙي نيٽ ورڪنگ جي نقطي نظر کان، سڄي ايپليڪيشن ھڪڙي ھوسٽ تي ھلندي آھي (مقامي ڪمپيوٽر يا ڪلائوڊ شيل ورچوئل مشين). تنهن ڪري توهان استعمال ڪري سگهو ٿا مقامي هلوڏانهن درخواستون موڪلڻ لاء سرور.
10) روڪڻ لوڊ ڪرڻ и سرورداخل ڪريو Ctrl-c هر ٽرمينل ونڊو ۾.
11) ٽرمينل ونڊو ۾ لوڊ ڪرڻ مجازي ماحول کي غير فعال ڪريو:
deactivate
ڪنٽينرز ۾ ايپليڪيشن پيڪنگ
GKE تي ايپليڪيشن کي هلائڻ لاءِ، توهان کي پيڪيج ڪرڻ جي ضرورت پوندي مثال ايپليڪيشن - سرور и لوڊ ڪرڻ - اندر آهن. هڪ ڪنٽينر هڪ ايپليڪيشن کي پيڪ ڪرڻ جو هڪ طريقو آهي ان کي ماحول کان الڳ ڪرڻ لاءِ.
ھڪڙي ايپليڪيشن کي ھڪڙي ڪنٽينر ۾ پيڪ ڪرڻ لاء، توھان کي ضرورت آھي Dockerfile. Dockerfile هڪ ٽيڪسٽ فائل آهي جيڪا ايپليڪيشن جي سورس ڪوڊ ۽ ان جي انحصار کي تعمير ڪرڻ لاءِ حڪمن جي وضاحت ڪري ٿي ڊاکر تصوير. هڪ دفعو ٺهيل، توهان تصوير کي ڪنٽينر رجسٽري تي اپلوڊ ڪريو جهڙوڪ ڊڪر هب يا ڪنٽينر رجسٽري.
FROM python:3-slim as base
FROM base as builder
RUN apt-get -qq update
&& apt-get install -y --no-install-recommends
g++
&& rm -rf /var/lib/apt/lists/*
# Enable unbuffered logging
FROM base as final
ENV PYTHONUNBUFFERED=1
RUN apt-get -qq update
&& apt-get install -y --no-install-recommends
wget
WORKDIR /helloserver
# Grab packages from builder
COPY --from=builder /usr/local/lib/python3.7/ /usr/local/lib/python3.7/
# Add the application
COPY . .
EXPOSE 8080
ENTRYPOINT [ "python", "server.py" ]
ٽيم پٿرن کان: 3-پتلا جيئن بنياد ڊاڪر کي جديد استعمال ڪرڻ لاءِ ٻڌائي ٿو Python 3 تصوير هڪ بنياد جي طور تي.
ٽيم ڪاپي. . ماخذ فائلن کي موجوده ڪم ڪندڙ ڊاريڪٽري ۾ نقل ڪري ٿو (صرف اسان جي صورت ۾ server.py) ڪنٽينر جي فائيل سسٽم ڏانهن.
ENTRYPOINT حڪم کي بيان ڪري ٿو جيڪو ڪنٽينر کي شروع ڪرڻ لاء استعمال ڪيو ويندو آهي. اسان جي حالت ۾، هي حڪم لڳ ڀڳ ساڳيو آهي جيڪو توهان هلائيندا هئا server.py ذريعو ڪوڊ کان.
ٽيم بيان انهي ڏانهن اشارو ڪري ٿو سرور پورٽ ذريعي ڊيٽا جي انتظار ۾ 8080. هي ٽيم نه آهي بندرگاهن مهيا ڪري ٿو. هي ڪجهه قسم جو دستاويز آهي جيڪو پورٽ کولڻ جي ضرورت آهي 8080 جڏهن ڪنٽينر شروع ڪريو.
توهان جي ايپليڪيشن کي ڪنٽرول ڪرڻ جي تياري
1) هيٺ ڏنل ماحولياتي متغير مقرر ڪريو. بدلائڻ PROJECT_ID توهان جي GCP پروجيڪٽ ID ڏانهن.
export PROJECT_ID="PROJECT_ID"
export GCR_REPO="preparing-istio"
قدر استعمال ڪندي PROJECT_ID и GCR_REPO توهان ڊاکر تصوير کي ٽيگ ڪيو جڏهن توهان ان کي ٺاهيو ۽ ان کي هڪ خانگي ڪنٽينر رجسٽري ڏانهن ڌڪيو.
مخزن ۾ تصويرن جي فهرست جو جائزو وٺو ۽ تصديق ڪريو ته تصويرون اپ لوڊ ڪيون ويون آهن:
gcloud container images list --repository gcr.io/$PROJECT_ID/preparing-istio
حڪم نئين اپلوڊ ٿيل تصويرن جا نالا ڏيکاري ٿو:
NAME
gcr.io/PROJECT_ID/preparing-istio/helloserver
gcr.io/PROJECT_ID/preparing-istio/loadgen
GKE ڪلستر ٺاهڻ.
اهي ڪنٽينر هلائي سگھجن ٿا ڪلائوڊ شيل ورچوئل مشين تي يا ڪمپيوٽر تي ڪمانڊ سان ڊاکر هلائيندڙ. پر هڪ پيداوار واري ماحول ۾، توهان کي مرڪزي طور تي ڪنٽينرز کي ترتيب ڏيڻ جو هڪ طريقو آهي. مثال طور، توهان کي هڪ سسٽم جي ضرورت آهي جيڪا يقيني بڻائي ٿي ته ڪنٽينر هميشه هلندا رهيا آهن، ۽ توهان کي ضرورت آهي هڪ طريقي سان وڌائڻ ۽ اضافي ڪنٽينر مثالن کي اسپن اپ ڪرڻ جي صورت ۾ جيڪڏهن ٽرئفڪ وڌي ٿي.
ڪنٽينر ٿيل ايپليڪيشنن کي هلائڻ لاءِ توھان استعمال ڪري سگھو ٿا G.K.E.. GKE هڪ ڪنٽينر آرڪيسٽريشن پليٽ فارم آهي جيڪو ورچوئل مشينن کي ڪلستر ۾ گڏ ڪري ٿو. هر مجازي مشين کي نوڊ سڏيو ويندو آهي. GKE ڪلستر اوپن سورس ڪبرنيٽس ڪلستر مينيجمينٽ سسٽم تي ٻڌل آهن. ڪبرنيٽس ڪلستر سان رابطي لاءِ ميکانيزم مهيا ڪري ٿو.
نوڊس ۽ ڪلستر. GKE ۾، هڪ نوڊ هڪ مجازي مشين آهي. ٻين Kubernetes پليٽ فارمن تي، هڪ نوڊ هڪ ڪمپيوٽر يا هڪ مجازي مشين ٿي سگهي ٿو. هڪ ڪلستر نوڊس جو هڪ مجموعو آهي جنهن کي هڪ واحد يونٽ سمجهي سگهجي ٿو جتي توهان ڪنٽينر ٿيل ايپليڪيشن کي ترتيب ڏيو ٿا.
ٻوٽا. ڪبرنيٽس ۾، ڪنٽينر پوڊ ۾ هلندا آهن. ڪبرنيٽس ۾ هڪ پوڊ هڪ ناقابل تقسيم يونٽ آهي. هڪ پوڊ هڪ يا وڌيڪ ڪنٽينر رکي ٿو. توهان سرور ڪنٽينرز کي ترتيب ڏيو ۽ لوڊ ڪرڻ جدا جدا حصن ۾. جڏهن پوڊ ۾ ڪيترائي ڪنٽينر هوندا آهن (مثال طور، هڪ ايپليڪيشن سرور ۽ پراکسي سرور)، ڪنٽينرز کي هڪ واحد اداري طور منظم ڪيو وڃي ٿو ۽ پوڊ وسيلن کي حصيداري ڪريو.
مقرريون. Kubernetes ۾، هڪ مقرري هڪ اعتراض آهي جيڪو هڪجهڙائي واري پوڊ جو مجموعو آهي. تعیناتي شروع ڪري ٿي پوڊ جي ڪيترن ئي نقلن کي ڪلستر نوڊس ۾ ورهايو ويو. تعیناتي خود بخود پوڊ کي تبديل ڪري ٿي جيڪي ناڪام ٿيا آهن يا غير جوابدار آهن.
ڪبرنيٽس سروس. جڏهن GKE ۾ ايپليڪيشن ڪوڊ هلائڻ، وچ ۾ ڪنيڪشن لوڊ ڪرڻ и سرور. جڏهن توهان Cloud Shell ورچوئل مشين يا ڊيسڪ ٽاپ تي خدمتون شروع ڪيون، توهان کي درخواستون موڪليون سرور تي مقامي هنڌ: 8080. هڪ دفعو GKE تي مقرر ڪيو ويو، پوڊ موجود نوڊس تي عمل ڪيو ويو آهي. ڊفالٽ طور، توهان وٽ ڪو به ڪنٽرول ناهي ته ڪهڙي نوڊ تي پوڊ هلندي آهي، تنهنڪري توهان ٻج مستقل IP پتي ناهي.
هڪ IP پتو حاصل ڪرڻ لاء سرور، توهان کي پوڊ جي چوٽي تي نيٽ ورڪ خلاصو بيان ڪرڻ جي ضرورت آهي. اھو اھو آھي جيڪو اھو آھي ڪبرنيٽس سروس. ڪبرنيٽس سروس پوڊز جي هڪ سيٽ لاءِ مسلسل آخري پوائنٽ مهيا ڪري ٿي. ڪي ٿورا آهن خدمتن جي قسمن. سرور استعمال ڪري ٿو لوڊ بيلنسر، جيڪو رابطي لاءِ هڪ خارجي IP پتو مهيا ڪري ٿو سرور ڪلستر جي ٻاهران.
Kubernetes وٽ ھڪڙو تعمير ٿيل DNS سسٽم آھي جيڪو DNS نالن کي تفويض ڪري ٿو (مثال طور، helloserver.default.cluster.local) خدمتون. انهي جي مهرباني، ڪلستر جي اندر پوڊ هڪ مستقل ايڊريس تي ڪلستر ۾ ٻين پوڊ سان رابطو ڪن ٿا. DNS نالو ڪلستر کان ٻاهر استعمال نه ٿو ڪري سگھجي، جهڙوڪ Cloud Shell ۾ يا ڪمپيوٽر تي.
Kubernetes ظاهر ڪري ٿو
جڏهن توهان ايپليڪيشن کي ماخذ کان وٺي، توهان استعمال ڪيو لازمي حڪم python3
server.py
Imperative هڪ فعل جو مطلب آهي: "هي ڪريو."
ڪبرنيٽس استعمال ڪري ٿو بيان ڪندڙ ماڊل. هن جو مطلب اهو آهي ته اسان ڪبرنيٽس کي اهو نه ٻڌائي رهيا آهيون ته ڇا ڪرڻ گهرجي، بلڪه گهربل رياست کي بيان ڪري رهيا آهيون. مثال طور، Kubernetes شروع ٿئي ٿو ۽ پوڊ کي روڪي ٿو ضرورت مطابق يقيني بڻائڻ لاءِ ته سسٽم جي اصل حالت مطلوب رياست سان ملي ٿي.
توھان ظاھر ڪريو مطلوب رياست منشور يا فائلن ۾ يام ايل. ھڪڙو YAML فائل ھڪڙي يا وڌيڪ ڪبرنيٽس شين جي وضاحتن تي مشتمل آھي.
مثال لاءِ YAML فائل شامل آهي سرور и لوڊ ڪرڻ. هر YAML فائل بيان ڪري ٿو گهربل رياست جي ترتيب واري اعتراض ۽ ڪبرنيٽس سروس.
هڪ دفعو لوڊ ڪرڻ ايندڙ درخواستن کي قبول نٿو ڪري، فيلڊ لاء قسم ظاهر ڪيو ويو آهي ڪلستر پي. هي قسم هڪ مسلسل IP پتو مهيا ڪري ٿو جيڪا ڪلستر ۾ خدمتون استعمال ڪري سگهن ٿيون، پر هي IP پتو خارجي گراهڪن کي ظاهر نه ڪيو ويو آهي.
بدلائڻ PROJECT_ID توهان جي GCP پروجيڪٽ ID ڏانهن.
9) محفوظ ڪريو ۽ بند ڪريو loadgen.yaml، ٽيڪسٽ ايڊيٽر کي بند ڪريو.
10) YAML فائل کي ڪبرنيٽس کي ترتيب ڏيو:
kubectl apply -f loadgen.yaml
ڪامياب مڪمل ٿيڻ تي، حڪم ھيٺ ڏنل ڪوڊ پيدا ڪري ٿو:
deployment.apps/loadgenerator created
service/loadgensvc created
11) پوڊ جي حالت چيڪ ڪريو:
kubectl get pods
حڪم حالت ڏيکاري ٿو:
NAME READY STATUS RESTARTS AGE
helloserver-69b9576d96-mwtcj 1/1 Running 0 58s
loadgenerator-774dbc46fb-gpbrz 1/1 Running 0 57s
سڀني ڪنٽينرز لاءِ خدمتون. تعينات ڪرڻ سرور и لوڊ ڪرڻ ڪبرنيٽس سروس سان ڳنڍيل آهي. پڻ لوڊ ڪرڻ, جيڪو ايندڙ درخواستون وصول نه ڪندو آهي, اتي هڪ خدمت آهي.
خدمتن ۾ بندرگاهن جا نالا هجڻ گهرجن. جيتوڻيڪ سروس بندرگاهن کي GKE ۾ اڻ ڄاتل ڇڏي سگهجي ٿو، Istio توهان کي وضاحت ڪرڻ جي ضرورت آهي بندرگاهه جو نالو هن جي پروٽوڪول جي مطابق. YAML فائل ۾ پورٽ لاء سرور سڏيو ويندو آهي httpڇاڪاڻ ته سرور پروٽوڪول استعمال ڪري ٿو HTTP. جيڪڏهن خدمت استعمال ٿيل جي آر پي سي، توهان بندرگاهه جو نالو ڏيندا جي پي سي.
نوڪريون نشان لڳل آهن. تنهن ڪري، توهان استعمال ڪري سگهو ٿا Istio جي ٽرئفڪ مئنيجمينٽ خاصيتون، جهڙوڪ ساڳئي خدمت جي نسخن جي وچ ۾ ٽرئفڪ کي ورهائڻ.
Istio انسٽال ڪرڻ
Istio انسٽال ڪرڻ جا ٻه طريقا آهن. ڪري GKE واڌ تي Istio کي فعال ڪريو يا Istio جو اوپن سورس ورزن انسٽال ڪريو ڪلستر تي. GKE تي Istio سان، توهان آساني سان منظم ڪري سگهو ٿا Istio تنصيب ۽ اپ گريڊ سڄي GKE ڪلستر لائف سائيڪل ۾. جيڪڏهن توهان Istio جو جديد ورزن چاهيو ٿا يا توهان جي Istio ڪنٽرول پينل جي ترتيب تي وڌيڪ ڪنٽرول، GKE ايڪسٽينشن تي Istio جي بدران اوپن سورس ورزن انسٽال ڪريو. طريقيڪار تي فيصلو ڪرڻ لاء، مضمون پڙهو ڇا مون کي GKE تي Istio جي ضرورت آهي؟.
ھڪڙو اختيار چونڊيو، مناسب ھدايت جو جائزو وٺو، ۽ پنھنجي ڪلستر تي Istio انسٽال ڪرڻ لاءِ ھدايتن تي عمل ڪريو. جيڪڏهن توهان Istio استعمال ڪرڻ چاهيو ٿا توهان جي نئين مقرر ٿيل ايپليڪيشن سان، سائڊ ڪار جي عمل کي فعال ڪريو نالي جي جڳهه لاءِ رٿيل.
صفائي
توهان جي گوگل ڪلائوڊ پليٽ فارم اڪائونٽ تي چارج ٿيڻ کان بچڻ لاءِ انهن وسيلن لاءِ جيڪي توهان هن سبق ۾ استعمال ڪيا آهن، هڪ ڀيرو توهان Istio انسٽال ڪيو ۽ نموني ايپليڪيشن سان کيڏيو، ڪنٽينر ڪلسٽر کي حذف ڪريو. اهو سڀ ڪلستر وسيلن کي ختم ڪري ڇڏيندو، جهڙوڪ ڪمپيوٽ مثال، ڊسڪ، ۽ نيٽ ورڪ وسيلن.