यह ट्यूटोरियल प्रदर्शित करता है कि Google Kubernetes Engine (GKE) का उपयोग कैसे करें ताकि आपके वेब एप्लिकेशन को एक स्थिर बाहरी IP पते पर इंटरनेट पर प्रदर्शित किया जा सके और आपके एप्लिकेशन को इंगित करने के लिए एक डोमेन नाम कॉन्फ़िगर किया जा सके यह ट्यूटोरियल मानता है कि आप एक पंजीकृत डोमेन नाम के स्वामी हैं, जैसे example.com आप Google के माध्यम से एक डोमेन नाम पंजीकृत कर सकते हैं आपके डोमेन या अन्य डोमेन रजिस्ट्रार विकल्प अगर आपके पास एक नहीं है ## उद्देश्य यह ट्यूटोरियल निम्न चरणों का प्रदर्शन करता है: ## लागत यह ट्यूटोरियल Google क्लाउड के निम्नलिखित बिल योग्य घटकों का उपयोग करता है: अपने अनुमानित उपयोग के आधार पर लागत अनुमान उत्पन्न करने के लिए, मूल्य निर्धारण कैलकुलेटर का उपयोग करें जब आप इस ट्यूटोरियल को समाप्त कर लेते हैं, तो आप अपने द्वारा बनाए गए संसाधनों को हटाकर निरंतर बिलिंग से बच सकते हैं। अधिक जानकारी के लिए, सफाई देखें ## शुरू करने से पहले कुबेरनेट्स इंजन एपीआई को सक्षम करने के लिए निम्नलिखित कदम उठाएं: - Google क्लाउड कंसोल में कुबेरनेट्स इंजन पेज पर जाएं - एक परियोजना बनाएं या चुनें - एपीआई और संबंधित सेवाओं के सक्षम होने की प्रतीक्षा करें। इसमें कई मिनट लग सकते हैं - सुनिश्चित करें कि आपके क्लाउड प्रोजेक्ट के लिए बिलिंग सक्षम है। किसी प्रोजेक्ट पर बिलिंग सक्षम है या नहीं, इसकी जांच करना सीखें इस ट्यूटोरियल में उपयोग किए गए निम्न कमांड-लाइन टूल इंस्टॉल करें: - gcloudis कुबेरनेट्स इंजन क्लस्टर बनाने और हटाने के लिए उपयोग किया जाता है gcloudis में शामिल है gcloudCLI - kubectlis Kubernetes को प्रबंधित करने के लिए उपयोग किया जाता है, Kubernetes Engine द्वारा उपयोग किया जाने वाला क्लस्टर ऑर्केस्ट्रेशन सिस्टम। आप स्थापित कर सकते हैं kubectlusing जीक्लाउड: gcloud घटक kubectl इंस्टॉल करते हैं GitHub से नमूना कोड क्लोन करें: गिट क्लोन httpsgithub.com/GoogleCloudPlatform/kubernetes-engine-samples cd kubernetes-engine-samples/hello-app/manifests के लिए डिफ़ॉल्ट सेट करें अपना प्रोजेक्ट आईडी टाइप करने में समय बचाने के लिए और कंप्यूट इंजन ज़ोन विकल्पों में gcloud कमांड-लाइन टूल gcloudcommand-line टूल, आप डिफ़ॉल्ट सेट कर सकते हैं: gcloud कॉन्फ़िगरेशन सेट प्रोजेक्ट प्रोजेक्ट-idgcloud कॉन्फ़िगरेशन सेट कंप्यूट/ज़ोन कंप्यूट-ज़ोन एक क्लस्टर बनाएँ नाम का एक कंटेनर क्लस्टर बनाएं अपने वेब एप्लिकेशन को परिनियोजित करने के लिए डोमेन-परीक्षण: gcloud कंटेनर क्लस्टर डोमेन-टेस्ट बनाते हैं ## अपने वेब एप्लिकेशन को तैनात करना निम्नलिखित मेनिफेस्ट एक परिनियोजन का वर्णन करता है जो नमूना वेब एप्लिकेशन कंटेनर छवि चलाता है: # कॉपीराइट 2021 Google LLC # # अपाचे लाइसेंस के तहत लाइसेंस प्राप्त, संस्करण 2.0 ("लाइसेंस # आप लाइसेंस के अनुपालन के अलावा इस फ़ाइल का उपयोग नहीं कर सकते। # आप # # httpwww.apache.org पर लाइसेंस की एक प्रति प्राप्त कर सकते हैं। /लाइसेंस/लाइसेंस-2.0 # # जब तक लागू कानून की आवश्यकता न हो या लिखित रूप में सहमति न हो, लाइसेंस के तहत वितरित सॉफ़्टवेयर # "जैसा है"आधार पर वितरित किया जाता है, # किसी भी प्रकार की वारंटी या शर्तों के बिना, या तो व्यक्त या निहित। # लाइसेंस के तहत विशिष्ट भाषा संचालन अनुमतियों और # सीमाओं के लिए लाइसेंस देखें। apiVersion: ऐप्स/v1 प्रकार: परिनियोजन मेटाडेटा: नाम: हेलोवेब लेबल: ऐप: हैलो स्पेक: चयनकर्ता: मैचलैबल्स: ऐप: हैलो टियर: वेब टेम्पलेट: मेटाडेटा: लेबल: ऐप: हैलो टियर: वेब स्पेक: कंटेनर: - नाम: हैलो-ऐप छवि: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 पोर्ट: - कंटेनरपोर्ट: 8080 संसाधन: अनुरोध : सीपीयू: 200 मी परिनियोजन बनाने के लिए निम्न आदेश चलाएँ: kubectl apply -f helloweb-deployment.yaml ## अपने आवेदन को उजागर करना आप निम्न विधियों में से किसी एक का उपयोग करके जीकेई पर अपना आवेदन प्रदर्शित कर सकते हैं: एक सेवा का उपयोग करें, जो एक टीसीपी नेटवर्क लोड बैलेंसर बनाता है जो क्षेत्रीय आईपी पतों के साथ काम करता है। एक प्रवेश का प्रयोग करें, जो एक HTTP (एस) लोड बैलेंसर बनाता है और वैश्विक आईपी पते का समर्थन करता है प्रत्येक विधि के लाभ और हानि के बारे में अधिक जानने के लिए, HTTP(S) लोड बैलेंसिंग को इनग्रेड के साथ सेट अप करना देखें। एक सेवा का प्रयोग करें यह सुनिश्चित करने के लिए कि आपके आवेदन में एक स्थिर सार्वजनिक आईपी पता है, आपको एक स्थिर आईपी पता आरक्षित करना होगा यदि आप किसी सेवा का उपयोग करके अपने एप्लिकेशन को प्रकट करना चुनते हैं, तो आपको एक क्षेत्रीय IP पता बनाना होगा। ग्लोबल आईपी एड्रेस केवल इनग्रेड रिसोर्स टाइप के साथ काम करते हैं, जैसा कि अगले सेक्शन में बताया गया है किसी सेवा का उपयोग करने के लिए, नाम का एक स्थिर IP पता बनाएँ हेलोवेब-आईपी में क्षेत्र हमें-केंद्रीय1: gcloud gcloud कंप्यूट एड्रेस क्रिएट helloweb-ip --region us-central1 आपके द्वारा बनाए गए स्थिर IP पते को खोजने के लिए, निम्न कमांड चलाएँ: gcloud कंप्यूट एड्रेस helloweb-ip --region us-central1आउटपुट का वर्णन करता है: पता: 203.0.113.32 ... कॉन्फिग कनेक्टर ** नोट इस चरण की आवश्यकता है कॉन्फिग कनेक्टर। का पीछा करो स्थापाना निर्देश अपने क्लस्टर पर कॉन्फिग कनेक्टर स्थापित करने के लिए apiVersion: Compute.cnrm.cloud.google.com/v1beta1 प्रकार: ComputeAddress मेटाडेटा: नाम: helloweb-ip युक्ति: स्थान: us-central1 kubectl apply -f कंप्यूट-एड्रेस-regional.yamlस्थिर IP पता खोजने के लिए, निम्नलिखित कमांड चलाएँ: kubectl get Computeaddress helloweb-ip -o jsonpathspec.address}'निम्नलिखित मेनिफेस्ट लोडबैंसर प्रकार की एक सेवा का वर्णन करता है, जो एक सार्वजनिक आईपी के साथ पॉड्स को उजागर करने के लिए एक नेटवर्क लोड बैलेंसर बनाता है बदलना `Your.IP.ADDRESS.HERE` स्थिर IP पते के साथ: # कॉपीराइट 2021 Google LLC # # अपाचे लाइसेंस के तहत लाइसेंस प्राप्त, संस्करण 2.0 ("लाइसेंस # आप लाइसेंस के अनुपालन के अलावा इस फ़ाइल का उपयोग नहीं कर सकते। # आप # # httpwww.apache.org पर लाइसेंस की एक प्रति प्राप्त कर सकते हैं। /लाइसेंस/लाइसेंस-2.0 # # जब तक लागू कानून की आवश्यकता न हो या लिखित रूप में सहमति न हो, लाइसेंस के तहत वितरित सॉफ़्टवेयर # "जैसा है"आधार पर वितरित किया जाता है, # किसी भी प्रकार की वारंटी या शर्तों के बिना, या तो व्यक्त या निहित। # लाइसेंस के तहत विशिष्ट भाषा संचालन अनुमतियों और # सीमाओं के लिए लाइसेंस देखें। apiVersion: v1 प्रकार: सेवा मेटाडेटा: नाम: helloweb लेबल: ऐप: हैलो स्पेक: चयनकर्ता: ऐप: हैलो टियर: वेब पोर्ट: - पोर्ट: 80 लक्ष्य पोर्ट: 8080 प्रकार: लोडबैलेंसर लोडबैलेंसरआईपी: "आपका.आईपी.एड्रेस.यहां"फिर, सेवा बनाएँ: kubectl apply -f helloweb-service-static-ip.yaml लोड बैलेंसर से जुड़े आरक्षित आईपी पते को देखने के लिए: kubectl get serviceOutput: नाम क्लस्टर-आईपी बाहरी-आईपी पोर्ट (एस) आयु हेलोवेब 10.31.254.176 203.0.113.32 80:30690/टीसीपी 54s एक प्रवेश का प्रयोग करें यदि आप एक इनग्रेड का उपयोग करके अपने एप्लिकेशन को उजागर करना चुनते हैं, जो एक HTTP (S) लोड बैलेंसर बनाता है, तो आपको एक वैश्विक स्थिर IP पता आरक्षित करना होगा। क्षेत्रीय आईपी पते प्रवेश के साथ काम नहीं करते अपने एप्लिकेशन को इंटरनेट पर प्रदर्शित करने के लिए इनग्रेड का उपयोग करने के तरीके के बारे में अधिक जानने के लिए, इनग्रेड ट्यूटोरियल के साथ HTTP(S) लोड बैलेंसिंग सेट करना देखें। नामित एक वैश्विक स्थिर आईपी पता बनाने के लिए हैलोवेब-आईपी: gcloud gcloud कंप्यूट एड्रेस क्रिएट helloweb-ip --global आपके द्वारा बनाए गए स्थिर IP पते को खोजने के लिए: gcloud कंप्यूट एड्रेस helloweb-ip --globalOutput का वर्णन करता है: पता: 203.0.113.32 ... कॉन्फिग कनेक्टर ** नोट इस चरण की आवश्यकता है कॉन्फिग कनेक्टर। का पीछा करो स्थापाना निर्देश अपने क्लस्टर पर कॉन्फिग कनेक्टर स्थापित करने के लिए apiVersion: Compute.cnrm.cloud.google.com/v1beta1 तरह: ComputeAddress मेटाडेटा: नाम: helloweb-ip कल्पना: स्थान: वैश्विक कुबेक्टल लागू -f कंप्यूट-एड्रेस-ग्लोबल.यामल निम्नलिखित मेनिफेस्ट दो संसाधनों के साथ एक स्थिर IP पर एक वेब एप्लिकेशन के प्रवेश का वर्णन करता है: - ए सर्विसविथ टाइप करें: नोडपोर्ट - एक सेवा नाम और स्थिर IP एनोटेशन के साथ इनग्रेड कॉन्फ़िगर किया गया # कॉपीराइट 2021 Google LLC # # अपाचे लाइसेंस के तहत लाइसेंस प्राप्त, संस्करण 2.0 ("लाइसेंस # आप लाइसेंस के अनुपालन के अलावा इस फ़ाइल का उपयोग नहीं कर सकते। # आप # # httpwww.apache.org पर लाइसेंस की एक प्रति प्राप्त कर सकते हैं। /लाइसेंस/लाइसेंस-2.0 # # जब तक लागू कानून की आवश्यकता न हो या लिखित रूप में सहमति न हो, लाइसेंस के तहत वितरित सॉफ़्टवेयर # "जैसा है"आधार पर वितरित किया जाता है, # किसी भी प्रकार की वारंटी या शर्तों के बिना, या तो व्यक्त या निहित। # लाइसेंस के तहत विशिष्ट भाषा संचालन अनुमतियों और # सीमाओं के लिए लाइसेंस देखें। apiVersion: नेटवर्किंग.k8s.io/v1 प्रकार: प्रवेश मेटाडेटा: नाम: helloweb एनोटेशन: kubernetes.io/ingress.global-static-ip-name: helloweb -आईपी लेबल: ऐप: हैलो स्पेक: डिफॉल्टबैकएंड: सर्विस: नाम: हेलोवेब-बैकएंड पोर्ट: नंबर: 8080एपीवर्जन: वी1 तरह: सर्विस मेटाडेटा: नाम: हैलोवेब-बैकएंड लेबल्स: ऐप: हैलो स्पेक: टाइप: नोडपोर्ट सिलेक्टर: ऐप: हैलो टीयर: वेब पोर्ट: - पोर्ट: 8080 टारगेटपोर्ट: 8080 kubernetes.io/ingress.global-static-ip-name एनोटेशन नाम निर्दिष्ट करता है HTTP(S) लोड के साथ संबद्ध होने के लिए वैश्विक IP पता संसाधन का कसरती संसाधन को क्लस्टर पर लागू करें: kubectl लागू -f helloweb-ingress-static-ip.yamlOutput: प्रवेश "हेलोवेब"बनाई गई सेवा "हेलोवेब-बैकएंड"बनाई गई लोड बैलेंसर से जुड़े आरक्षित आईपी पते को देखने के लिए: कुबेक्टल इंग्रेस आउटपुट प्राप्त करें: नाम होस्ट पता बंदरगाह उम्र helloweb * 203.0.113.32 80 4m ## अपने आरक्षित स्थिर आईपी पते पर जाना यह सत्यापित करने के लिए कि लोड बैलेंसर ठीक से कॉन्फ़िगर किया गया है, आप या तो उपयोग कर सकते हैं आईपी ​​​​एड्रेस पर जाने या उपयोग करने के लिए वेब ब्राउजर कर्ल: कर्ल http203.0.113.32/आउटपुट: नमस्ते दुनिया! होस्टनाम: helloweb-3766687455-8lvqv ## अपने डोमेन नाम रिकॉर्ड को कॉन्फ़िगर करना आपके डोमेन नाम को क्वेरी करने वाले ब्राउज़रों के लिए, जैसे कि example.com, या उपडोमेन नाम, जैसे blog.example.com, आपके द्वारा आरक्षित स्थिर IP पते को इंगित करें, आपको अपने डोमेन नाम के DNS (डोमेन नाम सर्वर) रिकॉर्ड को अपडेट करना होगा आपको एक बनाना होगा **ए** (पता) आपके डोमेन या सबडोमेन के लिए डीएनएस रिकॉर्ड टाइप करें नाम और उसके मूल्य को आरक्षित आईपी पते के साथ कॉन्फ़िगर किया गया है आपके डोमेन के DNS रिकॉर्ड आपके नेमसर्वर द्वारा प्रबंधित किए जाते हैं। आपका नेमसर्वर वह "रजिस्ट्रार"हो सकता है जहां आपने अपना डोमेन पंजीकृत किया है, एक DNS सेवा जैसे क्लाउड DNS, या अन्य तृतीय-पक्ष प्रदाता यदि आपका नेमसर्वर क्लाउड डीएनएस है: अपने एप्लिकेशन के आरक्षित आईपी पते के साथ अपने डोमेन नाम के लिए डीएनएस ए रिकॉर्ड को कॉन्फ़िगर करने के लिए क्लाउड डीएनएस क्विकस्टार्ट गाइड का पालन करें। यदि आपका नेमसर्वर कोई अन्य प्रदाता है: अपने डोमेन नाम को कॉन्फ़िगर करने के लिए DNS A रिकॉर्ड सेट करने पर अपनी DNS सेवा के दस्तावेज़ देखें। यदि आप इसके बजाय क्लाउड डीएनएस का उपयोग करना चुनते हैं, तो माइग्रेटिंग टू क्लाउड डीएनएस देखें ## अपने डोमेन नाम पर जाना यह सत्यापित करने के लिए कि आपके डोमेन नाम का DNS A रिकॉर्ड आपके द्वारा आरक्षित IP पते पर हल होता है, अपने डोमेन नाम पर जाएँ अपने डोमेन नाम के A रिकॉर्ड के लिए DNS क्वेरी बनाने के लिए, चलाएँ मेज़बान आज्ञा: होस्ट example.com आउटपुट: example.com का पता 203.0.113.32 है इस बिंदु पर, आप अपने वेब ब्राउज़र को अपने डोमेन नाम पर इंगित कर सकते हैं और अपनी वेबसाइट पर जा सकते हैं! ## साफ - सफाई इस ट्यूटोरियल में उपयोग किए गए संसाधनों के लिए अपने Google क्लाउड खाते पर शुल्क लगाने से बचने के लिए, या तो संसाधनों वाले प्रोजेक्ट को हटा दें, या प्रोजेक्ट को रखें और अलग-अलग संसाधनों को हटा दें लोड संतुलन संसाधन हटाएं: कुबेक्टल डिलीट इंग्रेस, सर्विस -एल ऐप = हैलो आरक्षित स्टेटिक आईपी जारी करें। लोड बैलेंसर को हटा दिए जाने के बाद, अप्रयुक्त लेकिन आरक्षित आईपी पता अब नि: शुल्क नहीं है और अप्रयुक्त आईपी पते मूल्य निर्धारण के अनुसार बिल किया जाता है। स्थिर IP संसाधन को रिलीज़ करने के लिए निम्न आदेश चलाएँ: यदि आपने किसी सेवा का उपयोग किया है: gcloud कंप्यूट एड्रेस डिलीट helloweb-ip --region us-central1 यदि आपने एक प्रवेश का उपयोग किया है: gcloud कंप्यूट एड्रेस डिलीट helloweb-ip --global - नमूना आवेदन हटाएं: kubectl हटाएं -f helloweb-deployment.yaml निम्न आदेश के आउटपुट को देखकर लोड बैलेंसर को हटाए जाने तक प्रतीक्षा करें। आउटपुट को एक अग्रेषण नियम नहीं दिखाना चाहिए जिसमें इसके नाम पर "हेलोवेब"हो: gcloud गणना अग्रेषण-नियमों की सूची कंटेनर क्लस्टर हटाएं: gcloud कंटेनर क्लस्टर डोमेन-परीक्षण को हटाते हैं ## आगे क्या होगा Google Domains के ज़रिए अपना खुद का डोमेन नाम रजिस्टर करें अन्य कुबेरनेट्स इंजन ट्यूटोरियल देखें Google क्लाउड के बारे में संदर्भ आर्किटेक्चर, आरेख, ट्यूटोरियल और सर्वोत्तम अभ्यासों का अन्वेषण करें। हमारे क्लाउड आर्किटेक्चर सेंटर पर एक नज़र डालें।