یہ ٹیوٹوریل ظاہر کرتا ہے کہ گوگل کوبرنیٹس انجن (GKE) کو کس طرح استعمال کیا جائے تاکہ آپ کی ویب ایپلیکیشن کو ایک مستحکم بیرونی IP ایڈریس پر انٹرنیٹ پر ظاہر کیا جائے اور آپ کی ایپلیکیشن کی طرف اشارہ کرنے کے لیے ایک ڈومین نام ترتیب دیا جائے۔ یہ ٹیوٹوریل فرض کرتا ہے کہ آپ رجسٹرڈ ڈومین نام کے مالک ہیں، جیسے example.com آپ گوگل کے ذریعے ڈومین کا نام رجسٹر کر سکتے ہیں۔ ڈومینز یا آپ کا دوسرا ڈومین رجسٹرار اگر آپ کے پاس نہیں ہے تو انتخاب کریں۔ ## مقاصد یہ ٹیوٹوریل درج ذیل اقدامات کو ظاہر کرتا ہے: ## اخراجات اس ٹیوٹوریل میں گوگل کلاؤڈ کے درج ذیل قابل بل اجزاء استعمال کیے گئے ہیں: آپ کے متوقع استعمال کی بنیاد پر لاگت کا تخمینہ تیار کرنے کے لیے، قیمت کا کیلکولیٹر استعمال کریں۔ جب آپ اس ٹیوٹوریل کو ختم کرتے ہیں، تو آپ اپنے بنائے گئے وسائل کو حذف کرکے مسلسل بلنگ سے بچ سکتے ہیں۔ مزید معلومات کے لیے، کلین اپ دیکھیں ## شروع کرنے سے پہلے Kubernetes Engine API کو فعال کرنے کے لیے درج ذیل اقدامات کریں: - گوگل کلاؤڈ کنسول میں Kubernetes انجن کا صفحہ دیکھیں - ایک پروجیکٹ بنائیں یا منتخب کریں۔ - API اور متعلقہ خدمات کے فعال ہونے کا انتظار کریں۔ اس میں کئی منٹ لگ سکتے ہیں۔ - یقینی بنائیں کہ آپ کے کلاؤڈ پروجیکٹ کے لیے بلنگ فعال ہے۔ کسی پروجیکٹ پر بلنگ کو فعال کرنے کا طریقہ جانیں۔ اس ٹیوٹوریل میں استعمال ہونے والے درج ذیل کمانڈ لائن ٹولز کو انسٹال کریں: - gcloudis کوبرنیٹس انجن کلسٹر بنانے اور حذف کرنے کے لیے استعمال کیا جاتا ہے۔ gcloudis میں شامل ہے۔ gcloudCLI - kubectlis کوبرنیٹس کے انتظام کے لیے استعمال کیا جاتا ہے، کلسٹر آرکیسٹریشن سسٹم جسے Kubernetes Engine استعمال کرتا ہے۔ آپ انسٹال کر سکتے ہیں۔ kubectlusing gcloud: gcloud اجزاء kubectl انسٹال کرتے ہیں۔ GitHub سے نمونہ کوڈ کلون کریں: git clone httpsgithub.com/GoogleCloudPlatform/kubernetes-engine-samples cd kubernetes-engine-samples/hello-app/manifests کے لیے ڈیفالٹس سیٹ کریں۔ اپنا پروجیکٹ ID ٹائپ کرنے میں وقت بچانے کے لیے اور میں کمپیوٹ انجن زون کے اختیارات gcloud کمانڈ لائن ٹول gcloudcommand-line ٹول، آپ ڈیفالٹس سیٹ کر سکتے ہیں: gcloud تشکیل سیٹ پروجیکٹ پروجیکٹ-idgcloud config سیٹ compute/zone compute-zone ایک کلسٹر بنائیں نام کا ایک کنٹینر کلسٹر بنائیں اپنی ویب ایپلیکیشن کو تعینات کرنے کے لیے ڈومین ٹیسٹ: gcloud کنٹینر کلسٹرز ڈومین ٹیسٹ بناتے ہیں۔ ## آپ کی ویب ایپلیکیشن کی تعیناتی درج ذیل مینی فیسٹ ایک تعیناتی کی وضاحت کرتا ہے جو ایک نمونہ ویب ایپلیکیشن کنٹینر امیج چلاتا ہے: # کاپی رائٹ 2021 Google LLC # # اپاچی لائسنس، ورژن 2.0 کے تحت لائسنس یافتہ ("لائسنس # آپ اس فائل کو لائسنس کی تعمیل کے علاوہ استعمال نہیں کر سکتے ہیں۔ /licenses/LICENSE-2.0 # # جب تک کہ قابل اطلاق قانون کی ضرورت نہ ہو یا تحریری طور پر اس پر اتفاق نہ ہو، لائسنس کے تحت تقسیم کردہ سافٹ ویئر # "جیسا ہے"کی بنیاد پر تقسیم کیا جاتا ہے، # بغیر کسی وارنٹی یا کسی بھی قسم کی شرائط کے، یا تو واضح یا مضمر۔ # لائسنس کے تحت مخصوص زبان کو کنٹرول کرنے والی اجازتوں اور # حدود کے لیے لائسنس دیکھیں۔ apiVersion: apps/v1 قسم: تعیناتی میٹا ڈیٹا: نام: ہیلویب لیبل: ایپ: ہیلو اسپیک: سلیکٹر: میچ لیبل: ایپ: ہیلو ٹائر: ویب ٹیمپلیٹ: میٹا ڈیٹا: لیبلز: ایپ: ہیلو ٹائر: ویب اسپیک: کنٹینرز: - نام: ہیلو ایپ امیج: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 پورٹس: - کنٹینرپورٹ: 8080 وسائل: درخواستیں : cpu: 200m تعیناتی بنانے کے لیے درج ذیل کمانڈ کو چلائیں: kubectl apply -f helloweb-deployment.yaml ## آپ کی درخواست کو بے نقاب کرنا آپ مندرجہ ذیل طریقوں میں سے کسی ایک کو استعمال کرتے ہوئے اپنی درخواست کو GKE پر ظاہر کر سکتے ہیں۔ ایک سروس استعمال کریں، جو ایک TCP نیٹ ورک لوڈ بیلنسر بناتا ہے جو علاقائی IP پتوں کے ساتھ کام کرتا ہے۔ ایک Ingress استعمال کریں، جو ایک HTTP(S) لوڈ بیلنسر بناتا ہے اور عالمی IP پتوں کو سپورٹ کرتا ہے۔ ہر طریقہ کے فائدے اور نقصانات کے بارے میں مزید جاننے کے لیے، HTTP(S) لوڈ بیلنسنگ کے ساتھ Ingress کی ترتیب کا حوالہ دیں۔ سروس استعمال کریں۔ اس بات کو یقینی بنانے کے لیے کہ آپ کی درخواست میں ایک جامد عوامی IP پتہ ہے، آپ کو ایک جامد IP پتہ محفوظ کرنا چاہیے۔ اگر آپ کسی سروس کا استعمال کرتے ہوئے اپنی درخواست کو ظاہر کرنے کا انتخاب کرتے ہیں، تو آپ کو ایک علاقائی IP ایڈریس بنانا ہوگا۔ گلوبل آئی پی ایڈریس صرف انگریس ریسورس کی قسم کے ساتھ کام کرتے ہیں، جیسا کہ اگلے حصے میں بیان کیا گیا ہے۔ سروس استعمال کرنے کے لیے، نام کا ایک جامد IP ایڈریس بنائیں میں helloweb-ip علاقہ us-central1: gcloud gcloud کمپیوٹ ایڈریس ہیلویب-ip --region us-central1 بناتے ہیں۔ اپنے بنائے ہوئے جامد IP ایڈریس کو تلاش کرنے کے لیے، درج ذیل کمانڈ کو چلائیں: gcloud کمپیوٹ ایڈریس helloweb-ip --region us-central1Output کی وضاحت کرتے ہیں: پتہ: 203.0.113.32 .. کنفیگ کنیکٹر ** نوٹ اس قدم کی ضرورت ہے۔ کنفیگ کنیکٹر۔ پیروی کریں یا پیچھے چلیں انسٹالیشن کی ہدایات اپنے کلسٹر پر کنفیگ کنیکٹر انسٹال کرنے کے لیے apiVersion: compute.cnrm.cloud.google.com/v1beta1 قسم: ComputeAddress میٹا ڈیٹا: name: helloweb-ip spec: location: us-central1 kubectl apply -f compute-address-regional.yaml جامد IP ایڈریس تلاش کرنے کے لیے درج ذیل کمانڈ کو چلائیں: kubectl get computeaddress helloweb-ip -o jsonpathspec.address}'مندرجہ ذیل مینی فیسٹ میں لوڈ بیلنس کی قسم کی سروس کی وضاحت کی گئی ہے، جو عوامی IP کے ساتھ پوڈز کو بے نقاب کرنے کے لیے نیٹ ورک لوڈ بیلنسر بناتی ہے۔ بدل دیں۔ جامد IP پتے کے ساتھ `YOUR.IP.ADDRESS.HERE`: # کاپی رائٹ 2021 Google LLC # # اپاچی لائسنس کے تحت لائسنس یافتہ، ورژن 2.0 ("لائسنس # آپ اس فائل کو لائسنس کی تعمیل کے علاوہ استعمال نہیں کر سکتے ہیں۔ /licenses/LICENSE-2.0 # # جب تک کہ قابل اطلاق قانون کی ضرورت نہ ہو یا تحریری طور پر اتفاق نہ کیا گیا ہو، لائسنس کے تحت تقسیم کردہ سافٹ ویئر # "جیسا ہے"کی بنیاد پر تقسیم کیا جاتا ہے، # بغیر کسی وارنٹی یا کسی بھی قسم کی شرائط کے، ظاہر یا مضمر۔ # لائسنس کے تحت مخصوص زبان کی حکمرانی کی اجازتوں اور # حدود کے لیے لائسنس دیکھیں۔ apiVersion: v1 قسم: سروس میٹا ڈیٹا: نام: ہیلو ایب لیبلز: ایپ: ہیلو اسپیک: سلیکٹر: ایپ: ہیلو ٹائر: ویب پورٹس: - پورٹ: 80 ٹارگٹ پورٹ: 8080 قسم: LoadBlancer loadBalancerIP: "YOUR.IP.ADDRESS.HERE"پھر، سروس بنائیں: kubectl apply -f helloweb-service-static-ip.yaml لوڈ بیلنسر سے وابستہ محفوظ IP پتہ دیکھنے کے لیے: kubectl get serviceOutput: NAME CLUSTER-IP EXTERNAL-IP پورٹ(S) AGE helloweb 10.31.254.176 203.0.113.32 80:30690/TCP 54s ایک داخل کا استعمال کریں اگر آپ ایک Ingress کا استعمال کرتے ہوئے اپنی ایپلیکیشن کو بے نقاب کرنے کا انتخاب کرتے ہیں، جو HTTP(S) لوڈ بیلنسر بناتا ہے، تو آپ کو عالمی جامد IP ایڈریس محفوظ کرنا ہوگا۔ علاقائی IP پتے Ingress کے ساتھ کام نہیں کرتے اپنی ایپلیکیشنز کو انٹرنیٹ پر ایکسپوز کرنے کے لیے Ingress استعمال کرنے کے طریقے کے بارے میں مزید جاننے کے لیے، Ingress ٹیوٹوریل کے ساتھ سیٹ اپ HTTP(S) لوڈ بیلنسنگ کا حوالہ دیں۔ نام کا عالمی جامد IP پتہ بنانے کے لیے helloweb-ip: gcloud gcloud کمپیوٹ ایڈریس ہیلوب-آئی پی --گلوبل بناتے ہیں۔ آپ نے جو جامد IP پتہ بنایا ہے اسے تلاش کرنے کے لیے: gcloud کمپیوٹ ایڈریس helloweb-ip --globalOutput کی وضاحت کرتے ہیں: پتہ: 203.0.113.32 .. کنفیگ کنیکٹر ** نوٹ اس قدم کی ضرورت ہے۔ کنفیگ کنیکٹر۔ پیروی کریں یا پیچھے چلیں انسٹالیشن کی ہدایات اپنے کلسٹر پر کنفیگ کنیکٹر انسٹال کرنے کے لیے apiVersion: compute.cnrm.cloud.google.com/v1beta1 قسم: ComputeAddress میٹا ڈیٹا: name: helloweb-ip spec: location: global kubectl apply -f compute-address-global.yaml مندرجہ ذیل مینی فیسٹ میں دو وسائل کے ساتھ ایک جامد IP پر ایک ویب ایپلیکیشن داخل کرنے کی وضاحت کی گئی ہے۔ -- سروس کے ساتھ قسم: نوڈ پورٹ - ایک سروس کے نام اور جامد IP تشریح کے ساتھ Ingress کو کنفیگر کیا گیا۔ # کاپی رائٹ 2021 Google LLC # # اپاچی لائسنس کے تحت لائسنس یافتہ، ورژن 2.0 ("لائسنس # آپ اس فائل کو لائسنس کی تعمیل کے علاوہ استعمال نہیں کر سکتے ہیں۔ /licenses/LICENSE-2.0 # # جب تک کہ قابل اطلاق قانون کی ضرورت نہ ہو یا تحریری طور پر اتفاق نہ کیا گیا ہو، لائسنس کے تحت تقسیم کردہ سافٹ ویئر # "جیسا ہے"کی بنیاد پر تقسیم کیا جاتا ہے، # بغیر کسی وارنٹی یا کسی بھی قسم کی شرائط کے، ظاہر یا مضمر۔ # لائسنس کے تحت مخصوص زبان کو کنٹرول کرنے والی اجازتوں اور # حدود کے لیے لائسنس دیکھیں۔ آئی پی لیبلز: ایپ: ہیلو اسپیک: ڈیفالٹ بیک اینڈ: سروس: نام: ہیلو ایب بیک اینڈ پورٹ: نمبر: 8080 اے پی آئی ورژن: v1 قسم: سروس میٹا ڈیٹا: نام: ہیلو ایب بیک اینڈ لیبلز: ایپ: ہیلو اسپیک: ٹائپ: نوڈ پورٹ سلیکٹر: ایپ: ہیلو ٹائر: ویب پورٹس: - پورٹ: 8080 ٹارگٹ پورٹ: 8080 دی kubernetes.io/ingress.global-static-ip-name تشریح نام کی وضاحت کرتی ہے HTTP(S) لوڈ کے ساتھ منسلک ہونے والے عالمی IP ایڈریس کے وسائل کا بیلنسر وسائل کو کلسٹر پر لاگو کریں: kubectl apply -f helloweb-ingress-static-ip.yamlOutput: ingress "helloweb"نے تخلیق کردہ سروس "helloweb-backend"بنائی لوڈ بیلنسر سے وابستہ ریزرو IP پتہ دیکھنے کے لیے: kubectl ingressOutput حاصل کریں: NAME میزبان ایڈریس پورٹس کی عمر helloweb * 203.0.113.32 80 4m ## اپنے محفوظ شدہ جامد IP ایڈریس پر جانا اس بات کی تصدیق کرنے کے لیے کہ لوڈ بیلنسر درست طریقے سے ترتیب دیا گیا ہے، آپ یا تو استعمال کر سکتے ہیں a ویب براؤزر آئی پی ایڈریس پر جانے یا استعمال کرنے کے لیے curl: curl http203.0.113.32/Output: ہیلو، دنیا! میزبان کا نام: helloweb-3766687455-8lvqv ## اپنے ڈومین نام کے ریکارڈ کو ترتیب دینا آپ کے ڈومین نام کے بارے میں براؤزرز کو استفسار کرنا، جیسے example.com، یا ذیلی ڈومین نام، جیسے blog.example.com، آپ کے محفوظ کردہ جامد IP پتے کی طرف اشارہ کریں، آپ کو اپنے ڈومین نام کے DNS (ڈومین نیم سرور) ریکارڈز کو اپ ڈیٹ کرنا ہوگا۔ آپ کو ایک بنانا ہوگا۔ **A** (ایڈریس) اپنے ڈومین یا ذیلی ڈومین کے لیے DNS ریکارڈ ٹائپ کریں۔ نام اور اس کی قدر کو مخصوص IP ایڈریس کے ساتھ ترتیب دیا ہے۔ آپ کے ڈومین کے DNS ریکارڈز کا نظم آپ کے نیم سرور کے ذریعے کیا جاتا ہے۔ آپ کا نام سرور وہ "رجسٹرار"ہو سکتا ہے جہاں آپ نے اپنا ڈومین رجسٹر کیا ہے، ایک DNS سروس جیسے کلاؤڈ DNS، یا کوئی دوسرا فریق ثالث فراہم کنندہ اگر آپ کا نام سرور کلاؤڈ DNS ہے: DNS کو ترتیب دینے کے لیے کلاؤڈ DNS کوئیک سٹارٹ گائیڈ پر عمل کریں اپنے ڈومین نام کے لیے اپنی درخواست کے مخصوص IP ایڈریس کے ساتھ ایک ریکارڈ۔ اگر آپ کا نام سرور کوئی دوسرا فراہم کنندہ ہے: اپنے ڈومین نام کو ترتیب دینے کے لیے DNS A ریکارڈ قائم کرنے کے لیے اپنی DNS سروس کی دستاویزات سے رجوع کریں۔ اگر آپ اس کے بجائے کلاؤڈ ڈی این ایس استعمال کرنے کا انتخاب کرتے ہیں، تو کلاؤڈ ڈی این ایس میں منتقلی سے رجوع کریں۔ ## اپنے ڈومین نام کا دورہ کرنا اس بات کی توثیق کرنے کے لیے کہ آپ کے ڈومین نام کا DNS A ریکارڈز آپ کے محفوظ کردہ IP پتے پر حل کرتا ہے، اپنا ڈومین نام ملاحظہ کریں۔ اپنے ڈومین نام کے A ریکارڈ کے لیے DNS استفسار کرنے کے لیے، چلائیں۔ میزبان کمانڈ: میزبان example.comOutput: example.com کا پتہ 203.0.113.32 ہے۔ اس وقت، آپ اپنے ویب براؤزر کو اپنے ڈومین نام کی طرف اشارہ کر سکتے ہیں اور اپنی ویب سائٹ ملاحظہ کر سکتے ہیں! ## صاف کریں۔ اس ٹیوٹوریل میں استعمال ہونے والے وسائل کے لیے اپنے گوگل کلاؤڈ اکاؤنٹ پر چارجز سے بچنے کے لیے، یا تو اس پروجیکٹ کو حذف کریں جس میں وسائل ہیں، یا پروجیکٹ کو برقرار رکھیں اور انفرادی وسائل کو حذف کردیں۔ لوڈ توازن کے وسائل کو حذف کریں: kubectl ڈیلیٹ داخل، سروس -l ایپ = ہیلو محفوظ شدہ جامد IP جاری کریں۔ لوڈ بیلنسر کو حذف کرنے کے بعد، غیر استعمال شدہ لیکن محفوظ IP ایڈریس اب مفت نہیں رہے گا اور ہر غیر استعمال شدہ IP ایڈریس کی قیمت کے حساب سے بل کیا جائے گا۔ جامد IP وسائل کو جاری کرنے کے لیے درج ذیل کمانڈز چلائیں: اگر آپ ایک سروس استعمال کرتے ہیں: gcloud کمپیوٹ ایڈریس ہیلویب-ip --region us-central1 کو حذف کریں۔ اگر آپ نے ایک Ingress استعمال کیا: gcloud کمپیوٹ ایڈریس ہیلوب-آئی پی --گلوبل کو حذف کریں۔ - نمونہ کی درخواست کو حذف کریں: kubectl حذف -f helloweb-deployment.yaml درج ذیل کمانڈ کے آؤٹ پٹ کو دیکھ کر لوڈ بیلنسر کے حذف ہونے تک انتظار کریں۔ آؤٹ پٹ کو فارورڈنگ قاعدہ نہیں دکھانا چاہئے جس میں اس کے نام میں "helloweb"ہو: gcloud کمپیوٹ فارورڈنگ رولز کی فہرست کنٹینر کلسٹر کو حذف کریں: gcloud کنٹینر کلسٹرز ڈومین ٹیسٹ کو حذف کرتے ہیں۔ ## اس کے بعد کیا ہے گوگل ڈومینز کے ذریعے اپنا ڈومین نام رجسٹر کریں۔ دیگر Kubernetes Engine ٹیوٹوریلز دریافت کریں۔ گوگل کلاؤڈ کے بارے میں حوالہ آرکیٹیکچرز، خاکے، سبق، اور بہترین طریقوں کو دریافت کریں۔ ہمارے کلاؤڈ آرکیٹیکچر سینٹر پر ایک نظر ڈالیں۔