এই টিউটোরিয়ালটি দেখায় কিভাবে Google Kubernetes Engine (GKE) ব্যবহার করে আপনার ওয়েব অ্যাপ্লিকেশনটিকে একটি স্ট্যাটিক এক্সটার্নাল আইপি ঠিকানায় ইন্টারনেটে প্রকাশ করতে হয় এবং আপনার অ্যাপ্লিকেশনের দিকে নির্দেশ করার জন্য একটি ডোমেন নাম কনফিগার করতে হয় এই টিউটোরিয়ালটি অনুমান করে যে আপনি একটি নিবন্ধিত ডোমেন নামের মালিক, যেমন example.com আপনি Google এর মাধ্যমে একটি ডোমেন নাম নিবন্ধন করতে পারেন ডোমেইন বা আপনার অন্য ডোমেন রেজিস্ট্রার আপনার যদি না থাকে তবে পছন্দ করুন ## উদ্দেশ্য এই টিউটোরিয়ালটি নিম্নলিখিত পদক্ষেপগুলি প্রদর্শন করে: ## খরচ এই টিউটোরিয়ালটি Google ক্লাউডের নিম্নলিখিত বিলযোগ্য উপাদানগুলি ব্যবহার করে: আপনার অভিক্ষিপ্ত ব্যবহারের উপর ভিত্তি করে একটি খরচ অনুমান তৈরি করতে, মূল্য ক্যালকুলেটর ব্যবহার করুন আপনি এই টিউটোরিয়ালটি শেষ করার পরে, আপনি আপনার তৈরি সংস্থানগুলি মুছে দিয়ে অবিরত বিলিং এড়াতে পারেন। আরও তথ্যের জন্য, ক্লিন আপ দেখুন ## আপনি শুরু করার আগে Kubernetes Engine API সক্ষম করতে নিম্নলিখিত পদক্ষেপগুলি গ্রহণ করুন: - Google ক্লাউড কনসোলে কুবারনেটস ইঞ্জিন পৃষ্ঠাটি দেখুন - একটি প্রকল্প তৈরি করুন বা নির্বাচন করুন - API এবং সম্পর্কিত পরিষেবাগুলি সক্ষম হওয়ার জন্য অপেক্ষা করুন৷ এতে কয়েক মিনিট সময় লাগতে পারে - নিশ্চিত করুন যে আপনার ক্লাউড প্রকল্পের জন্য বিলিং সক্ষম করা আছে৷ একটি প্রকল্পে বিলিং সক্ষম কিনা তা পরীক্ষা করতে শিখুন এই টিউটোরিয়ালে ব্যবহৃত নিম্নলিখিত কমান্ড-লাইন সরঞ্জামগুলি ইনস্টল করুন: - gcloudis কুবারনেটস ইঞ্জিন ক্লাস্টার তৈরি এবং মুছতে ব্যবহৃত হয় gcloudis অন্তর্ভুক্ত gCloudCLI - কুবেক্টলিস কুবারনেটস পরিচালনা করতে ব্যবহৃত হয়, কুবারনেটস ইঞ্জিন দ্বারা ব্যবহৃত ক্লাস্টার অর্কেস্ট্রেশন সিস্টেম। আপনি ইনস্টল করতে পারেন কুবেক্টলুসিং জিক্লাউড: gcloud উপাদানগুলি kubectl ইনস্টল করে GitHub থেকে নমুনা কোড ক্লোন করুন: git ক্লোন httpsgithub.com/GoogleCloudPlatform/kubernetes-engine-samples cd kubernetes-engine-samples/hello-app/manifests এর জন্য ডিফল্ট সেট করুন আপনার প্রকল্প আইডি টাইপ করার সময় বাঁচাতে এবং কম্পিউট ইঞ্জিন জোন অপশন gcloud কমান্ড লাইন টুল gcloudcommand-line টুল, আপনি ডিফল্ট সেট করতে পারেন: gcloud কনফিগারেশন সেট প্রকল্প প্রজেক্ট-আইডিজিক্লাউড কনফিগ সেট কম্পিউট/জোন কম্পিউট-জোন একটি ক্লাস্টার তৈরি করুন নামে একটি ধারক ক্লাস্টার তৈরি করুন আপনার ওয়েব অ্যাপ্লিকেশন স্থাপন করতে ডোমেন-পরীক্ষা: gcloud কন্টেইনার ক্লাস্টার ডোমেইন-পরীক্ষা তৈরি করে ## আপনার ওয়েব অ্যাপ্লিকেশন স্থাপন করা হচ্ছে নিম্নলিখিত ম্যানিফেস্ট একটি স্থাপনার বর্ণনা করে যা একটি নমুনা ওয়েব অ্যাপ্লিকেশন কন্টেইনার চিত্র চালায়: # কপিরাইট 2021 Google LLC # # Apache লাইসেন্সের অধীনে লাইসেন্সকৃত, সংস্করণ 2.0 ("লাইসেন্স # আপনি লাইসেন্সের সাথে সম্মতি ছাড়া এই ফাইলটি ব্যবহার করতে পারবেন না। /licenses/LICENSE-2.0 # # প্রযোজ্য আইন দ্বারা প্রয়োজন না হলে বা লিখিতভাবে সম্মত না হলে, লাইসেন্সের অধীনে সফ্টওয়্যার # বিতরণ করা হয় "যেমন আছে"ভিত্তিতে, # কোনো প্রকারের ওয়্যারেন্টি বা শর্ত ছাড়াই, প্রকাশ বা উহ্য। লাইসেন্সের অধীনে নির্দিষ্ট ভাষা পরিচালনার অনুমতি এবং # সীমাবদ্ধতার জন্য লাইসেন্স দেখুন। apiVersion: apps/v1 প্রকার: স্থাপনা মেটাডেটা: নাম: helloweb লেবেল: app: hello spec: Selector: matchLabels: app: hello tier: web template: metadata: labels: app: hello tier: web spec: containers: - name: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 পোর্ট: - কন্টেইনারপোর্ট: 8080 রিসোর্স: অনুরোধ : cpu: 200 মি স্থাপনা তৈরি করতে নিম্নলিখিত কমান্ডটি চালান: kubectl apply -f helloweb-deployment.yaml ## আপনার আবেদন প্রকাশ করা আপনি নিম্নলিখিত পদ্ধতিগুলির যেকোনো একটি ব্যবহার করে GKE-তে আপনার আবেদন প্রকাশ করতে পারেন: একটি পরিষেবা ব্যবহার করুন, যা একটি TCP নেটওয়ার্ক লোড ব্যালেন্সার তৈরি করে যা আঞ্চলিক আইপি ঠিকানাগুলির সাথে কাজ করে। একটি ইনগ্রেস ব্যবহার করুন, যা একটি HTTP(S) লোড ব্যালেন্সার তৈরি করে এবং গ্লোবাল আইপি অ্যাড্রেস সমর্থন করে প্রতিটি পদ্ধতির সুবিধা এবং অসুবিধা সম্পর্কে আরও জানতে, প্রবেশের সাথে HTTP(S) লোড ব্যালেন্সিং সেট আপ করুন একটি পরিষেবা ব্যবহার করুন আপনার অ্যাপ্লিকেশনের একটি স্ট্যাটিক পাবলিক আইপি ঠিকানা আছে তা নিশ্চিত করতে, আপনাকে অবশ্যই একটি স্ট্যাটিক আইপি ঠিকানা সংরক্ষণ করতে হবে আপনি যদি একটি পরিষেবা ব্যবহার করে আপনার অ্যাপ্লিকেশন প্রকাশ করতে চান তবে আপনাকে অবশ্যই একটি আঞ্চলিক IP ঠিকানা তৈরি করতে হবে। গ্লোবাল আইপি ঠিকানাগুলি শুধুমাত্র ইনগ্রেস রিসোর্স টাইপের সাথে কাজ করে, যেমনটি পরবর্তী বিভাগে ব্যাখ্যা করা হয়েছে একটি পরিষেবা ব্যবহার করতে, নামে একটি স্ট্যাটিক আইপি ঠিকানা তৈরি করুন helloweb-আইপি মধ্যে অঞ্চল us-central1: জিক্লাউড gcloud কম্পিউট ঠিকানা helloweb-ip --region us-central1 তৈরি করে আপনার তৈরি স্ট্যাটিক আইপি ঠিকানা খুঁজে পেতে, নিম্নলিখিত কমান্ডটি চালান: gcloud গণনা ঠিকানা helloweb-ip --region us-central1Output বর্ণনা করে: ঠিকানা: 203.0.113.32 .. কনফিগ সংযোগকারী ** দ্রষ্টব্য এই পদক্ষেপ প্রয়োজন কনফিগ সংযোগকারী। অনুসরণ করা সংস্থাপনের নির্দেশনা আপনার ক্লাস্টারে কনফিগ সংযোগকারী ইনস্টল করতে apiVersion: compute.cnrm.cloud.google.com/v1beta1 প্রকার: ComputeAddress মেটাডেটা: নাম: helloweb-ip spec: অবস্থান: us-central1 kubectl apply -f compute-address-regional.yaml স্ট্যাটিক আইপি ঠিকানা খুঁজে পেতে, নিম্নলিখিত কমান্ডটি চালান: kubectl get computeaddress helloweb-ip -o jsonpathspec.address}'নিম্নলিখিত ম্যানিফেস্টে লোডব্যালেন্সার ধরনের একটি পরিষেবা বর্ণনা করা হয়েছে, যা একটি পাবলিক আইপি দিয়ে পডগুলিকে প্রকাশ করার জন্য একটি নেটওয়ার্ক লোড ব্যালেন্সার তৈরি করে প্রতিস্থাপন করুন স্ট্যাটিক আইপি ঠিকানা সহ `YOUR.IP.ADDRESS.HERE`: # কপিরাইট 2021 Google LLC # # Apache লাইসেন্সের অধীনে লাইসেন্সকৃত, সংস্করণ 2.0 ("লাইসেন্স # আপনি লাইসেন্সের সাথে সম্মতি ছাড়া এই ফাইলটি ব্যবহার করতে পারবেন না। /licenses/LICENSE-2.0 # # প্রযোজ্য আইন দ্বারা প্রয়োজন না হলে বা লিখিতভাবে সম্মত না হলে, লাইসেন্সের অধীনে সফ্টওয়্যার # বিতরণ করা হয় "যেমন আছে"ভিত্তিতে, # কোনো প্রকারের ওয়্যারেন্টি বা শর্ত ছাড়াই, প্রকাশ বা উহ্য। লাইসেন্সের অধীনে নির্দিষ্ট ভাষা পরিচালনার অনুমতি এবং # সীমাবদ্ধতার জন্য লাইসেন্স দেখুন। apiVersion: v1 প্রকার: পরিষেবা মেটাডেটা: নাম: helloweb লেবেল: app: hello spec: Selector: app: hello tier: web ports: - port: 80 targetPort: 8080 প্রকার: LoadBalancer loadBalancerIP: "YOUR.IP.ADDRESS.HERE"তারপর, পরিষেবা তৈরি করুন: kubectl apply -f helloweb-service-static-ip.yaml লোড ব্যালেন্সারের সাথে যুক্ত সংরক্ষিত আইপি ঠিকানা দেখতে: kubectl get serviceOutput: নাম ক্লাস্টার-আইপি এক্সটারনাল-আইপি পোর্ট(এস) বয়স 10.31.254.176 203.0.113.32 80:30690/TCP 54s একটি প্রবেশ ব্যবহার করুন আপনি যদি একটি ইনগ্রেস ব্যবহার করে আপনার অ্যাপ্লিকেশন প্রকাশ করতে চান, যা একটি HTTP(S) লোড ব্যালেন্সার তৈরি করে, তাহলে আপনাকে অবশ্যই একটি বিশ্বব্যাপী স্ট্যাটিক আইপি ঠিকানা সংরক্ষণ করতে হবে। আঞ্চলিক আইপি ঠিকানাগুলি ইনগ্রেসের সাথে কাজ করে না আপনার অ্যাপ্লিকেশনগুলিকে ইন্টারনেটে প্রকাশ করতে কীভাবে ইনগ্রেস ব্যবহার করবেন সে সম্পর্কে আরও জানতে, ইনগ্রেস টিউটোরিয়াল সহ HTTP(S) লোড ব্যালেন্সিং সেট আপ করুন নামে একটি বিশ্বব্যাপী স্ট্যাটিক আইপি ঠিকানা তৈরি করতে হেলোইব-আইপি: জিক্লাউড gcloud গণনা ঠিকানা helloweb-ip --global তৈরি করে আপনার তৈরি স্ট্যাটিক আইপি ঠিকানা খুঁজে পেতে: gcloud কম্পিউট ঠিকানা helloweb-ip --globalOutput বর্ণনা করে: ঠিকানা: 203.0.113.32 .. কনফিগ সংযোগকারী ** দ্রষ্টব্য এই পদক্ষেপ প্রয়োজন কনফিগ সংযোগকারী। অনুসরণ করা সংস্থাপনের নির্দেশনা আপনার ক্লাস্টারে কনফিগ সংযোগকারী ইনস্টল করতে apiVersion: compute.cnrm.cloud.google.com/v1beta1 প্রকার: ComputeAddress মেটাডেটা: নাম: helloweb-ip spec: অবস্থান: বিশ্বব্যাপী kubectl apply -f compute-address-global.yaml নিম্নলিখিত ম্যানিফেস্ট দুটি সংস্থান সহ একটি স্ট্যাটিক আইপি-তে একটি ইনগ্রেস যা একটি ওয়েব অ্যাপ্লিকেশন বর্ণনা করে: - ক পরিষেবা সহ প্রকার: নোডপোর্ট - একটি পরিষেবার নাম এবং স্ট্যাটিক আইপি টীকা দিয়ে ইনগ্রেস কনফিগার করা হয়েছে # কপিরাইট 2021 Google LLC # # Apache লাইসেন্সের অধীনে লাইসেন্সকৃত, সংস্করণ 2.0 ("লাইসেন্স # আপনি লাইসেন্সের সাথে সম্মতি ছাড়া এই ফাইলটি ব্যবহার করতে পারবেন না। /licenses/LICENSE-2.0 # # প্রযোজ্য আইন দ্বারা প্রয়োজন না হলে বা লিখিতভাবে সম্মত না হলে, লাইসেন্সের অধীনে সফ্টওয়্যার # বিতরণ করা হয় "যেমন আছে"ভিত্তিতে, # কোনো প্রকারের ওয়্যারেন্টি বা শর্ত ছাড়াই, প্রকাশ বা উহ্য। লাইসেন্সের অধীনে নির্দিষ্ট ভাষা পরিচালনার অনুমতি এবং # সীমাবদ্ধতার জন্য লাইসেন্স দেখুন। apiVersion: networking.k8s.io/v1 প্রকার: ইনগ্রেস মেটাডেটা: নাম: হেলোইব টীকা: kubernetes.io/ingress.global-static-ip-name: helloweb -আইপি লেবেল: অ্যাপ: হ্যালো স্পেক: ডিফল্টব্যাকেন্ড: পরিষেবা: নাম: হেলোইব-ব্যাকেন্ড পোর্ট: নম্বর: 8080api সংস্করণ: 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"তৈরি করা হয়েছে লোড ব্যালেন্সারের সাথে যুক্ত রিজার্ভ আইপি ঠিকানা দেখতে: kubectl ingressOutput পেতে: নাম হোস্ট ঠিকানা পোর্টস বয়স helloweb * 203.0.113.32 80 4m ## আপনার সংরক্ষিত স্ট্যাটিক আইপি ঠিকানা পরিদর্শন করা লোড ব্যালেন্সার সঠিকভাবে কনফিগার করা হয়েছে তা যাচাই করতে, আপনি হয় a ব্যবহার করতে পারেন ওয়েব ব্রাউজার আইপি ঠিকানা পরিদর্শন বা ব্যবহার কার্ল: কার্ল http203.0.113.32/আউটপুট: ওহে বিশ্ব! হোস্টের নাম: helloweb-3766687455-8lvqv ## আপনার ডোমেইন নেম রেকর্ড কনফিগার করা আপনার ডোমেন নাম জিজ্ঞাসা ব্রাউজার আছে, যেমন example.com বা সাবডোমেন নাম, যেমন blog.example.com, আপনার সংরক্ষিত স্ট্যাটিক আইপি ঠিকানা নির্দেশ করুন, আপনাকে অবশ্যই আপনার ডোমেন নামের DNS (ডোমেন নেম সার্ভার) রেকর্ড আপডেট করতে হবে আপনি একটি তৈরি করতে হবে **A** (ঠিকানা) আপনার ডোমেন বা সাবডোমেনের জন্য DNS রেকর্ড টাইপ করুন নাম এবং এর মান সংরক্ষিত আইপি ঠিকানার সাথে কনফিগার করা আছে আপনার ডোমেনের DNS রেকর্ডগুলি আপনার নেমসার্ভার দ্বারা পরিচালিত হয়৷ আপনার নেমসার্ভারটি "রেজিস্ট্রার"হতে পারে যেখানে আপনি আপনার ডোমেন নিবন্ধন করেছেন, একটি DNS পরিষেবা যেমন ক্লাউড ডিএনএস, বা অন্য তৃতীয়-পক্ষ প্রদানকারী যদি আপনার নেমসার্ভারটি ক্লাউড ডিএনএস হয়: আপনার অ্যাপ্লিকেশনের সংরক্ষিত আইপি ঠিকানার সাথে আপনার ডোমেন নামের জন্য একটি রেকর্ড কনফিগার করতে ক্লাউড ডিএনএস কুইকস্টার্ট গাইড অনুসরণ করুন। যদি আপনার নাম সার্ভার অন্য প্রদানকারী হয়: আপনার ডোমেন নাম কনফিগার করতে DNS A রেকর্ড সেট করার বিষয়ে আপনার DNS পরিষেবার ডকুমেন্টেশন পড়ুন। আপনি যদি পরিবর্তে ক্লাউড ডিএনএস ব্যবহার করতে চান তবে ক্লাউড ডিএনএস-এ স্থানান্তরিত করুন ## আপনার ডোমেইন নাম পরিদর্শন আপনার ডোমেন নামের DNS A রেকর্ডগুলি আপনার সংরক্ষিত IP ঠিকানার সমাধান করে তা যাচাই করতে, আপনার ডোমেন নাম দেখুন আপনার ডোমেন নামের A রেকর্ডের জন্য একটি DNS ক্যোয়ারী করতে, চালান হোস্ট আদেশ: হোস্ট example.comOutput: example.com এর ঠিকানা 203.0.113.32 আছে এই মুহুর্তে, আপনি আপনার ওয়েব ব্রাউজারটিকে আপনার ডোমেন নামের দিকে নির্দেশ করতে পারেন এবং আপনার ওয়েবসাইটটি দেখতে পারেন! ## পরিষ্কার কর এই টিউটোরিয়ালে ব্যবহৃত সংস্থানগুলির জন্য আপনার Google ক্লাউড অ্যাকাউন্টে চার্জ এড়াতে, হয় সংস্থানগুলি রয়েছে এমন প্রকল্পটি মুছুন, অথবা প্রকল্পটি রাখুন এবং পৃথক সংস্থানগুলি মুছুন লোড ব্যালেন্সিং সংস্থানগুলি মুছুন: kubectl ডিলিট ইনগ্রেস, service -l app=hello সংরক্ষিত স্ট্যাটিক আইপি রিলিজ করুন। লোড ব্যালেন্সার মুছে ফেলার পর, অব্যবহৃত কিন্তু সংরক্ষিত আইপি ঠিকানাটি আর বিনামূল্যে থাকে না এবং অব্যবহৃত আইপি ঠিকানা মূল্যের জন্য বিল করা হয়। স্ট্যাটিক আইপি রিসোর্স প্রকাশ করতে নিম্নলিখিত কমান্ডগুলি চালান: আপনি যদি একটি পরিষেবা ব্যবহার করেন: জিক্লাউড কম্পিউট ঠিকানা হেলোইব-আইপি -- অঞ্চল ইউএস-কেন্দ্রীয়1 মুছে ফেলুন আপনি যদি একটি ইনগ্রেস ব্যবহার করেন: gcloud কম্পিউট ঠিকানা helloweb-ip --global মুছে ফেলুন - নমুনা অ্যাপ্লিকেশন মুছুন: kubectl delete -f helloweb-deployment.yaml নিম্নলিখিত কমান্ডের আউটপুট দেখে লোড ব্যালেন্সার মুছে ফেলা পর্যন্ত অপেক্ষা করুন। আউটপুটে একটি ফরওয়ার্ডিং নিয়ম দেখানো উচিত নয় যাতে এর নামে "helloweb"থাকে: gcloud কম্পিউট ফরওয়ার্ডিং-নিয়ম তালিকা ধারক ক্লাস্টার মুছুন: gcloud কন্টেইনার ক্লাস্টারগুলি ডোমেন-পরীক্ষা মুছে দেয় ## এরপর কি Google Domains এর মাধ্যমে আপনার নিজের ডোমেইন নাম নিবন্ধন করুন অন্যান্য Kubernetes ইঞ্জিন টিউটোরিয়াল অন্বেষণ করুন Google ক্লাউড সম্পর্কে রেফারেন্স আর্কিটেকচার, ডায়াগ্রাম, টিউটোরিয়াল এবং সেরা অনুশীলনগুলি অন্বেষণ করুন৷ আমাদের ক্লাউড আর্কিটেকচার সেন্টারে একবার দেখুন।