Google Kubernetes ইঞ্জিনে Kubernetes-এ একটি স্প্রিং বুট জাভা অ্যাপ স্থাপন করুন

১. শুরু করার আগে

কুবারনেটস একটি ওপেন সোর্স প্রকল্প, যা ল্যাপটপ থেকে শুরু করে উচ্চ-উপলব্ধতা মাল্টি-নোড ক্লাস্টার, পাবলিক ক্লাউড থেকে অন-প্রিমিস স্থাপনা এবং ভার্চুয়াল মেশিন (VM) ইনস্ট্যান্স থেকে শুরু করে বেয়ার মেটাল পর্যন্ত বিভিন্ন পরিবেশে চলতে পারে।

এই কোডল্যাবে, আপনি GKE- তে Kubernetes-এ একটি সাধারণ স্প্রিং বুট জাভা ওয়েব অ্যাপ স্থাপন করবেন, যার লক্ষ্য হল আপনার ওয়েব অ্যাপটিকে Kubernetes-এ একটি প্রতিলিপিকৃত অ্যাপ হিসেবে চালানো। আপনি আপনার মেশিনে তৈরি করা কোডটি নেবেন, এটিকে একটি ডকার কন্টেইনার ছবিতে রূপান্তর করবেন এবং GKE-তে ছবিটি চালাবেন।

আপনি GKE ব্যবহার করবেন, যা গুগল ক্লাউডে সম্পূর্ণরূপে পরিচালিত Kubernetes পরিষেবা, যা আপনাকে অন্তর্নিহিত অবকাঠামো স্থাপনের পরিবর্তে Kubernetes অভিজ্ঞতার উপর আরও বেশি মনোযোগ দেওয়ার সুযোগ দেবে।

যদি আপনি আপনার স্থানীয় মেশিনে, যেমন ডেভেলপমেন্ট ল্যাপটপে, Kubernetes চালাতে আগ্রহী হন, তাহলে Minikube দেখুন, যা ডেভেলপমেন্ট এবং পরীক্ষার উদ্দেশ্যে একটি একক-নোড Kubernetes ক্লাস্টারের সহজ সেটআপ অফার করে। আপনি চাইলে কোডল্যাবটি দেখতে Minikube ব্যবহার করতে পারেন।

কোডল্যাব স্প্রিং বুট দিয়ে অ্যাপ তৈরি সম্পর্কে নির্দেশিকা থেকে নমুনা কোড ব্যবহার করবে।

পূর্বশর্ত

  • জাভা প্রোগ্রামিং ভাষা এবং সরঞ্জামগুলির সাথে পরিচিতি
  • ভিম, ইম্যাকস এবং ন্যানোর মতো স্ট্যান্ডার্ড লিনাক্স টেক্সট এডিটর সম্পর্কে জ্ঞান থাকা।

তুমি কি করবে

  • একটি সাধারণ জাভা অ্যাপকে ডকার কন্টেইনার হিসেবে প্যাকেজ করুন।
  • GKE তে আপনার Kubernetes ক্লাস্টার তৈরি করুন।
  • GKE-তে Kubernetes-এ আপনার জাভা অ্যাপটি স্থাপন করুন।
  • আপনার পরিষেবা আরও বিস্তৃত করুন এবং একটি আপগ্রেড চালু করুন।
  • অ্যাক্সেস ড্যাশবোর্ড, একটি ওয়েব-ভিত্তিক কুবারনেটস ইউজার ইন্টারফেস।

তোমার যা লাগবে

  • একটি গুগল ক্লাউড প্রকল্প
  • একটি ব্রাউজার, যেমন গুগল ক্রোম

2. সেটআপ এবং প্রয়োজনীয়তা

স্ব-গতিসম্পন্ন পরিবেশ সেটআপ

  1. গুগল ক্লাউড কনসোলে সাইন-ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন অথবা বিদ্যমান একটি পুনরায় ব্যবহার করুন। যদি আপনার ইতিমধ্যেই একটি জিমেইল বা গুগল ওয়ার্কস্পেস অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

b35bf95b8bf3d5d8.png সম্পর্কে

a99b7ace416376c4.png সম্পর্কে

bd84a6d3004737c5.png সম্পর্কে

  • এই প্রকল্পের অংশগ্রহণকারীদের জন্য প্রজেক্টের নামটি প্রদর্শন করা হবে। এটি একটি অক্ষর স্ট্রিং যা Google API গুলি ব্যবহার করে না। আপনি যেকোনো সময় এটি আপডেট করতে পারেন।
  • সমস্ত Google ক্লাউড প্রোজেক্টে প্রোজেক্ট আইডি অনন্য এবং অপরিবর্তনীয় (সেট করার পরে এটি পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত আপনি এটি কী তা নিয়ে চিন্তা করেন না। বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রোজেক্ট আইডি (সাধারণত PROJECT_ID হিসাবে চিহ্নিত) উল্লেখ করতে হবে। যদি আপনি জেনারেট করা আইডি পছন্দ না করেন, তাহলে আপনি অন্য একটি র্যান্ডম তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের চেষ্টা করে দেখতে পারেন, এবং এটি উপলব্ধ কিনা তা দেখতে পারেন। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রকল্পের সময়কালের জন্য থাকবে।
  • আপনার তথ্যের জন্য, তৃতীয় একটি মান আছে, একটি Project Number , যা কিছু API ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি মান সম্পর্কে আরও জানুন।
  1. এরপর, ক্লাউড রিসোর্স/API ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে। এই কোডল্যাবটি চালানোর জন্য খুব বেশি খরচ হবে না, এমনকি কিছু খরচও হবে না। এই টিউটোরিয়ালের বাইরে বিলিং এড়াতে রিসোর্স বন্ধ করতে, আপনি আপনার তৈরি রিসোর্সগুলি মুছে ফেলতে পারেন অথবা প্রকল্পটি মুছে ফেলতে পারেন। নতুন গুগল ক্লাউড ব্যবহারকারীরা $300 USD ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।

ক্লাউড শেল সক্রিয় করুন

  1. ক্লাউড কনসোল থেকে, ক্লাউড শেল সক্রিয় করুন ক্লিক করুন 853e55310c205094.png সম্পর্কে .

55efc1aaa7a4d3ad.png সম্পর্কে

যদি আপনি প্রথমবারের মতো ক্লাউড শেল শুরু করেন, তাহলে আপনাকে একটি মধ্যবর্তী স্ক্রিন দেখানো হবে যা এটি কী তা বর্ণনা করবে। যদি আপনার কাছে একটি মধ্যবর্তী স্ক্রিন থাকে, তাহলে Continue এ ক্লিক করুন।

9c92662c6a846a5c.png সম্পর্কে

ক্লাউড শেলের সাথে সংযোগ স্থাপন এবং সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগবে।

9f0e51b578fecce5.png সম্পর্কে

এই ভার্চুয়াল মেশিনটিতে প্রয়োজনীয় সকল ডেভেলপমেন্ট টুল রয়েছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি অফার করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক কর্মক্ষমতা এবং প্রমাণীকরণকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার বেশিরভাগ কাজ, যদি সব না হয়, একটি ব্রাউজার দিয়ে করা যেতে পারে।

একবার ক্লাউড শেলের সাথে সংযুক্ত হয়ে গেলে, আপনি দেখতে পাবেন যে আপনি প্রমাণিত এবং প্রকল্পটি আপনার প্রকল্প আইডিতে সেট করা আছে।

  1. আপনি প্রমাণিত কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud auth list

কমান্ড আউটপুট

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. gcloud কমান্ড আপনার প্রকল্প সম্পর্কে জানে কিনা তা নিশ্চিত করতে ক্লাউড শেলে নিম্নলিখিত কমান্ডটি চালান:
gcloud config list project

কমান্ড আউটপুট

[core]
project = <PROJECT_ID>

যদি তা না হয়, তাহলে আপনি এই কমান্ড দিয়ে এটি সেট করতে পারেন:

gcloud config set project <PROJECT_ID>

কমান্ড আউটপুট

Updated property [core/project].

৩. সোর্স কোড পান

ক্লাউড শেল চালু হওয়ার পর, আপনি হোম ডিরেক্টরিতে উদাহরণ সোর্স কোড ক্লোন করতে কমান্ড লাইন ব্যবহার করতে পারেন।

$ git clone https://github.com/spring-guides/gs-spring-boot.git
$ cd gs-spring-boot/complete

৪. স্থানীয়ভাবে অ্যাপটি চালান

  1. নিশ্চিত করুন যে JAVA_HOME সঠিক সংস্করণে সেট করা আছে:
$ export JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-amd64
  1. আপনি স্প্রিং বুট প্লাগইন দিয়ে সাধারণত স্প্রিং বুট অ্যাপটি শুরু করতে পারেন।
$ ./mvnw -DskipTests spring-boot:run
  1. অ্যাপটি শুরু হওয়ার পর, ওয়েব প্রিভিউতে ক্লিক করুন। 1a94d5bd10bfc072.png সম্পর্কে ক্লাউড শেল টুলবারে এবং পোর্ট 8080-এ প্রিভিউ নির্বাচন করুন।

6252b94905f3f7bd.png সম্পর্কে

আপনার ব্রাউজারে একটি ট্যাব খোলে এবং আপনার শুরু করা সার্ভারের সাথে সংযোগ স্থাপন করে।

9b6c29059957bd0.jpeg সম্পর্কে

৫. জাভা অ্যাপটিকে ডকার কন্টেইনার হিসেবে প্যাকেজ করুন

এরপর, আপনার অ্যাপটি Kubernetes-এ চালানোর জন্য প্রস্তুত করতে হবে। প্রথম ধাপ হল কন্টেইনার এবং এর বিষয়বস্তু নির্ধারণ করা।

  1. অ্যাপটির জন্য স্থাপনযোগ্য JAR তৈরি করুন।
$ ./mvnw -DskipTests package
  1. আপনার তৈরি করা কন্টেইনার ইমেজ সংরক্ষণ করতে আর্টিফ্যাক্ট রেজিস্ট্রি API সক্রিয় করুন।
$ gcloud services enable artifactregistry.googleapis.com
  1. যদি ডকার রিপোজিটরি না থাকে, তাহলে একটি নতুন রিপোজিটরি তৈরি করুন । যেকোনো ছবি পুশ করার আগে আপনাকে অবশ্যই একটি রিপোজিটরি তৈরি করতে হবে:
$ gcloud artifacts repositories create codelabrepo     --repository-format=docker --location=us-central1 
  1. আপনার ছবিটি এই ফর্ম্যাটের হবে:

{LOCATION}-docker.pkg.dev/{PROJECT-ID}/{REPOSITORY}/{IMAGE-NAME}

উদাহরণস্বরূপ, যদি আপনি us-central1 location এ codelabrepo নামে একটি রিপোজিটরি তৈরি করে থাকেন এবং আপনার ছবির নাম hello-java:v1 রাখতে চান, তাহলে ছবিটি হবে:

us-central1-docker.pkg.dev/{PROJECT-ID}/codelabrepo/hello-java:v1

  1. কন্টেইনার ইমেজ তৈরি করতে Jib ব্যবহার করুন এবং এটিকে আর্টিফ্যাক্ট রেজিস্ট্রিতে পুশ করুন।
$ export GOOGLE_CLOUD_PROJECT=`gcloud config list --format="value(core.project)"`

$ ./mvnw -DskipTests com.google.cloud.tools:jib-maven-plugin:build -Dimage=us-central1-docker.pkg.dev/${GOOGLE_CLOUD_PROJECT}/codelabrepo/hello-java:v1
  1. ক্লাউড কনসোলের আর্টিফ্যাক্টস রেজিস্ট্রি ইমেজ পৃষ্ঠায় নেভিগেট করে আপনি কনসোলে তালিকাভুক্ত কন্টেইনার চিত্রটি দেখতে সক্ষম হবেন। আপনার কাছে এখন একটি প্রকল্প-ব্যাপী ডকার চিত্র উপলব্ধ, যা কুবারনেটস অ্যাক্সেস করতে এবং অর্কেস্ট্রেট করতে পারে যা আপনি কয়েক মিনিটের মধ্যে দেখতে পাবেন।
  2. (ঐচ্ছিক) সম্পূর্ণ হওয়ার পরে (সবকিছু ডাউনলোড এবং এক্সট্র্যাক্ট করতে কিছুটা সময় লাগবে), নিম্নলিখিত কমান্ড দিয়ে ছবিটি পরীক্ষা করুন, যা আপনার নতুন তৈরি কন্টেইনার ইমেজ থেকে পোর্ট 8080 এ ডেমন হিসেবে একটি ডকার কন্টেইনার চালাবে। যদি আপনার অনুমতি সংক্রান্ত সমস্যা হয়, তাহলে প্রথমে gcloud auth configure-docker us-central1-docker.pkg.dev চালান:
$ docker run -ti --rm -p 8080:8080 \
  us-central1-docker.pkg.dev/$GOOGLE_CLOUD_PROJECT/codelabrepo/hello-java:v1
  1. আবার, ক্লাউড শেলের ওয়েব প্রিভিউ বৈশিষ্ট্যের সুবিধা নিন।

6252b94905f3f7bd.png সম্পর্কে

  1. আপনার ডিফল্ট পৃষ্ঠাটি একটি নতুন ট্যাবে দেখা উচিত। অ্যাপটি স্থানীয়ভাবে একটি ডকার কন্টেইনারে চলছে কিনা তা যাচাই করার পরে, আপনি Control+C টিপে চলমান কন্টেইনারটি বন্ধ করতে পারেন।

৬. আপনার ক্লাস্টার তৈরি করুন

আপনি আপনার GKE ক্লাস্টার তৈরি করতে প্রস্তুত। একটি ক্লাস্টারে Google দ্বারা পরিচালিত একটি Kubernetes API সার্ভার এবং কর্মী নোডের একটি সেট থাকে। কর্মী নোডগুলি হল Compute Engine VM।

  1. প্রথমে, নিশ্চিত করুন যে সম্পর্কিত API বৈশিষ্ট্যগুলি সক্রিয় আছে।
$ gcloud services enable compute.googleapis.com container.googleapis.com
  1. দুটি n1-standard-1 নোড দিয়ে একটি ক্লাস্টার তৈরি করুন (এটি সম্পূর্ণ হতে কয়েক মিনিট সময় লাগবে)।
$ gcloud container clusters create hello-java-cluster \
  --num-nodes 2 \
  --machine-type n1-standard-1 \
  --zone us-central1-c

শেষে, আপনি ক্লাস্টারটি তৈরি দেখতে পাবেন।

Creating cluster hello-java-cluster...done.
Created [https://container.googleapis.com/v1/projects/...].
kubeconfig entry generated for hello-dotnet-cluster.
NAME                  ZONE            MASTER_VERSION  
hello-java-cluster  us-central1-c  ...

আপনার এখন GKE দ্বারা চালিত একটি সম্পূর্ণরূপে কার্যকরী Kubernetes ক্লাস্টার থাকা উচিত।

758c7fca14f70623.png সম্পর্কে

এখন আপনার কন্টেইনারাইজড অ্যাপটি Kubernetes ক্লাস্টারে স্থাপন করার সময়! এখন থেকে, আপনি kubectl কমান্ড লাইন ব্যবহার করবেন (আপনার ক্লাউড শেল পরিবেশে ইতিমধ্যেই সেট আপ করা আছে)। কোডল্যাবের বাকি অংশের জন্য Kubernetes ক্লায়েন্ট এবং সার্ভার সংস্করণটি 1.2 বা তার বেশি হওয়া প্রয়োজন। kubectl version আপনাকে কমান্ডের বর্তমান সংস্করণটি দেখাবে।

৭. আপনার অ্যাপটি কুবারনেটসে স্থাপন করুন

  1. একটি Kubernetes ডিপ্লয়মেন্ট আপনার তৈরি করা কন্টেইনার ইমেজ ব্যবহার করে আপনার অ্যাপের একাধিক ইনস্ট্যান্স তৈরি, পরিচালনা এবং স্কেল করতে পারে। kubectl run কমান্ড ব্যবহার করে আপনার অ্যাপের একটি ইনস্ট্যান্স Kubernetes-এ ডিপ্লয় করুন।
$ kubectl create deployment hello-java --image=us-central1-docker.pkg.dev/$GOOGLE_CLOUD_PROJECT/codelabrepo/hello-java:v1
  1. আপনার তৈরি করা ডিপ্লয়মেন্টটি দেখতে, কেবল নিম্নলিখিত কমান্ডটি চালান:
$ kubectl get deployments

NAME         DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
hello-java   1         1         1            1           37s
  1. স্থাপনার মাধ্যমে তৈরি অ্যাপের উদাহরণগুলি দেখতে, নিম্নলিখিত কমান্ডটি চালান:
$ kubectl get pods

NAME                         READY     STATUS    RESTARTS   AGE
hello-java-714049816-ztzrb   1/1       Running   0          57s

এই মুহুর্তে, আপনার কন্টেইনারটি কুবারনেটেসের নিয়ন্ত্রণে থাকা উচিত, তবে আপনাকে এখনও এটিকে বাইরের বিশ্বের জন্য অ্যাক্সেসযোগ্য করে তুলতে হবে।

৮. বহিরাগত ট্র্যাফিকের অনুমতি দিন

ডিফল্টরূপে, পডটি কেবল ক্লাস্টারের মধ্যে থাকা অভ্যন্তরীণ আইপি দ্বারা অ্যাক্সেসযোগ্য। hello-java কন্টেইনারটিকে কুবারনেটস ভার্চুয়াল নেটওয়ার্কের বাইরে থেকে অ্যাক্সেসযোগ্য করার জন্য, আপনাকে পডটিকে একটি কুবারনেটস পরিষেবা হিসাবে প্রকাশ করতে হবে।

  1. ক্লাউড শেলে, আপনি একটি Kubernetes LoadBalancer পরিষেবা তৈরি করে পডটিকে পাবলিক ইন্টারনেটে প্রকাশ করতে পারেন।
$ kubectl create service loadbalancer hello-java --tcp=8080:8080

মনে রাখবেন যে আপনি সরাসরি স্থাপনাটি প্রকাশ করবেন, পডটি নয়। এর ফলে পরিষেবাটি স্থাপনা দ্বারা পরিচালিত সমস্ত পডগুলিতে ব্যালেন্স ট্র্যাফিক লোড করবে (এই ক্ষেত্রে, শুধুমাত্র একটি পড, তবে আপনি পরে আরও প্রতিলিপি যুক্ত করবেন)।

গুগল ক্লাউডের বাইরে থেকে পরিষেবাটি সম্পূর্ণরূপে অ্যাক্সেসযোগ্য করার জন্য কুবারনেটস মাস্টার লোড ব্যালেন্সার এবং সম্পর্কিত কম্পিউট ইঞ্জিন ফরোয়ার্ডিং নিয়ম, টার্গেট পুল এবং ফায়ারওয়াল নিয়ম তৈরি করে।

  1. পরিষেবাটির সর্বজনীনভাবে অ্যাক্সেসযোগ্য IP ঠিকানা খুঁজে পেতে, কেবল kubectl সমস্ত ক্লাস্টার পরিষেবা তালিকাভুক্ত করার জন্য অনুরোধ করুন।
$ kubectl get services

NAME         CLUSTER-IP     EXTERNAL-IP      PORT(S)    AGE
hello-java   10.3.253.62    aaa.bbb.ccc.ddd  8080/TCP    1m
kubernetes   10.3.240.1     <none>           443/TCP    5m
  1. আপনার ব্রাউজারটি http://<EXTERNAL_IP>:8080 -এ নির্দেশ করে এখন আপনি পরিষেবাটিতে পৌঁছাতে সক্ষম হবেন।

৯. আপনার পরিষেবার পরিধি বাড়ান

Kubernetes এর একটি শক্তিশালী বৈশিষ্ট্য হল আপনার অ্যাপের আকার পরিবর্তন করা কত সহজ। ধরুন হঠাৎ করে আপনার অ্যাপের জন্য আরও ক্ষমতার প্রয়োজন হল। আপনি কেবল রেপ্লিকেশন কন্ট্রোলারকে আপনার অ্যাপের উদাহরণের জন্য নতুন সংখ্যক রেপ্লিকা পরিচালনা করতে বলতে পারেন।

$ kubectl scale deployment hello-java --replicas=3

deployment "hello-java" scaled

$ kubectl get deployment
NAME         DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
hello-java   3         3         3            3           22m

ঘোষণামূলক পদ্ধতিটি লক্ষ্য করুন। নতুন ইনস্ট্যান্স শুরু বা বন্ধ করার পরিবর্তে, আপনাকে ঘোষণা করতে হবে যে সবসময় কতগুলি ইনস্ট্যান্স চালানো উচিত। কুবারনেটস রিকন্সিলিয়েশন লুপগুলি কেবল নিশ্চিত করে যে বাস্তবতা আপনার অনুরোধের সাথে মিলে যায় এবং প্রয়োজনে পদক্ষেপ নেয়।

১০. আপনার পরিষেবার একটি আপগ্রেড চালু করুন

এক পর্যায়ে, আপনি যে অ্যাপটি প্রোডাকশনে স্থাপন করেছেন তার জন্য বাগ সংশোধন বা অতিরিক্ত বৈশিষ্ট্যের প্রয়োজন হবে। Kubernetes আপনার ব্যবহারকারীদের প্রভাবিত না করেই প্রোডাকশনে একটি নতুন সংস্করণ স্থাপন করতে আপনাকে সাহায্য করতে পারে।

  1. কোড এডিটরটি খুলুন এডিটর খুলুন এ ক্লিক করে। 2109d75686c889a.png সম্পর্কে ক্লাউড শেল মেনুতে।
  2. src/main/java/com/example/springboot/HelloController.java তে নেভিগেট করুন এবং প্রতিক্রিয়ার মান আপডেট করুন।
package com.example.springboot;

import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;

@RestController
public class HelloController {

    @RequestMapping("/")
    public String index() {
        return "Greetings from Google Kubernetes Engine!";
    }
}
  1. কন্টেইনার ইমেজের একটি নতুন সংস্করণ তৈরি এবং পুশ করতে Jib ব্যবহার করুন। ক্যাশিংয়ের সম্পূর্ণ সুবিধা নেওয়ার সাথে সাথে আপডেট করা ইমেজ তৈরি এবং পুশ করা অনেক দ্রুত হওয়া উচিত।
$ ./mvnw -DskipTests package com.google.cloud.tools:jib-maven-plugin:build -Dimage=us-central1-docker.pkg.dev/$GOOGLE_CLOUD_PROJECT/codelabrepo/hello-java:v2

আপনি Kubernetes-এর জন্য প্রস্তুত যাতে আপনার রেপ্লিকেশন কন্ট্রোলারটি অ্যাপের নতুন সংস্করণে মসৃণভাবে আপডেট করা যায়!

  1. আপনার চলমান কন্টেইনারের জন্য ছবির লেবেল পরিবর্তন করার জন্য, আপনাকে বিদ্যমান hello-java ডিপ্লয়মেন্ট সম্পাদনা করতে হবে এবং us-central1-docker.pkg.dev/PROJECT_ID/codelabrepo/hello-java:v1 থেকে ছবিটি পরিবর্তন করতে হবে।

us-central1-docker.pkg.dev/PROJECT_ID/codelabrepo/hello-java:v2 তে

  1. আপনি kubectl set image কমান্ড ব্যবহার করে Kubernetes কে আপনার অ্যাপের নতুন সংস্করণটি পুরো ক্লাস্টার জুড়ে রোলিং আপডেট সহ একবারে একবার স্থাপন করতে বলতে পারেন।
$ kubectl set image deployment/hello-java hello-java=us-central1-docker.pkg.dev/$GOOGLE_CLOUD_PROJECT/codelabrepo/hello-java:v2

deployment "hello-java" image updated
  1. এটি নতুন প্রতিক্রিয়াটি ফেরত দিচ্ছে কিনা তা দেখতে আবার http://EXTERNAL_IP:8080 চেক করুন।

১১. পিছনে ফিরে যাও

ওহো! অ্যাপটির নতুন সংস্করণ ব্যবহার করে কি আপনি ভুল করেছেন? সম্ভবত নতুন সংস্করণে একটি ত্রুটি ছিল এবং আপনাকে দ্রুত এটিকে আবার রোল করতে হবে। Kubernetes এর সাহায্যে, আপনি সহজেই এটিকে আগের অবস্থায় ফিরিয়ে আনতে পারেন। নিম্নলিখিত কমান্ডটি চালিয়ে অ্যাপটি রোল ব্যাক করুন:

$ kubectl rollout undo deployment/hello-java

আপনি যখন আবার http://EXTERNAL_IP:8080 চেক করবেন তখন আপনার পুরানো প্রতিক্রিয়াটি দেখা উচিত।

১২. অভিনন্দন

তুমি GKE-তে Kubernetes-এ একটি নতুন জাভা-ভিত্তিক ওয়েব অ্যাপ তৈরি এবং স্থাপন করতে শিখেছো।

পরিষ্কার করা

$ gcloud container clusters delete hello-java-cluster --zone us-central1-c

$ gcloud container images delete us-central1-docker.pkg.dev/$GOOGLE_CLOUD_PROJECT/codelabrepo/hello-java:v1 us-central1-docker.pkg.dev/$GOOGLE_CLOUD_PROJECT/codelabrepo/hello-java:v2

আরও জানুন