1. ওভারভিউ
জেনকিন্স হল সবচেয়ে জনপ্রিয় ক্রমাগত ইন্টিগ্রেশন সমাধানগুলির মধ্যে একটি। এটি সফ্টওয়্যার উন্নয়ন প্রক্রিয়ার অপরিহার্য অ-মানবীয় অংশগুলি স্বয়ংক্রিয় করতে ব্যবহৃত হয়। Google ক্লাউডে জেনকিন্সকে কুবেনেটেস-এ স্থাপন করে এবং GKE প্লাগইন ব্যবহার করে, আমরা প্রয়োজনের সাথে সাথে বিল্ড এক্সিকিউটরদের দ্রুত এবং স্বয়ংক্রিয়ভাবে স্কেল করতে সক্ষম হয়েছি। ক্লাউড স্টোরেজের সাথে একত্রিত হয়ে, আমরা ন্যূনতম প্রচেষ্টায় একটি অ্যাপ্লিকেশন তৈরি এবং পরীক্ষা করতে সক্ষম।
আপনি কি করবেন
- জেনকিন্সকে একটি কুবারনেটস ক্লাস্টারে স্থাপন করুন
- জেনকিন্স জিকেই প্লাগইন স্থাপন এবং কনফিগার করুন যাতে জেনকিন্স নির্বাহক নোড হিসাবে পড তৈরি এবং ধ্বংস করতে সক্ষম হয়
- একটি নমুনা স্প্রিংবুট অ্যাপ্লিকেশন তৈরি করুন এবং পরীক্ষা করুন
- Google কন্টেইনার রেজিস্ট্রিতে একটি ধারক তৈরি এবং প্রকাশ করুন৷
- একটি স্টেজিং এবং উত্পাদন GKE পরিবেশে নমুনা অ্যাপ্লিকেশন স্থাপন করুন
আপনি কি প্রয়োজন হবে
- বিলিং সেট আপ সহ একটি Google ক্লাউড প্রকল্প৷ আপনার যদি একটি না থাকে তবে আপনাকে একটি তৈরি করতে হবে।
2. সেট আপ করা হচ্ছে
এই কোডল্যাবটি সম্পূর্ণরূপে Google ক্লাউড প্ল্যাটফর্মে কোনো স্থানীয় ইনস্টলেশন বা কনফিগারেশন ছাড়াই চলতে পারে।
মেঘের শেল
এই কোডল্যাব জুড়ে, আমরা ক্লাউড শেল এর মাধ্যমে কমান্ড লাইন ব্যবহার করে বিভিন্ন ক্লাউড সংস্থান এবং পরিষেবাদির ব্যবস্থা করব এবং পরিচালনা করব।
এপিআই সক্ষম করুন
আমাদের প্রকল্পে সক্ষম করার জন্য আমাদের যে API গুলি প্রয়োজন তা এখানে রয়েছে:
- Compute Engine API - ভার্চুয়াল মেশিন তৈরি করে এবং চালায়
- Kubernetes Engine API - কন্টেইনার-ভিত্তিক অ্যাপ্লিকেশন তৈরি করে এবং পরিচালনা করে
- ক্লাউড বিল্ড এপিআই - গুগল ক্লাউডের ক্রমাগত ইন্টিগ্রেশন এবং ক্রমাগত ডেলিভারি প্ল্যাটফর্ম
- সার্ভিস ম্যানেজমেন্ট API - পরিষেবা প্রযোজকদের Google ক্লাউড প্ল্যাটফর্মে পরিষেবা প্রকাশ করার অনুমতি দেয়
- ক্লাউড রিসোর্স ম্যানেজার API - Google ক্লাউড রিসোর্স কন্টেনারগুলির জন্য মেটাডেটা তৈরি করে, পড়ে এবং আপডেট করে
নিম্নলিখিত gcloud কমান্ড দিয়ে প্রয়োজনীয় API গুলি সক্ষম করুন:
gcloud services enable compute.googleapis.com \ container.googleapis.com \ cloudbuild.googleapis.com \ servicemanagement.googleapis.com \ cloudresourcemanager.googleapis.com \ --project ${GOOGLE_CLOUD_PROJECT}
একটি GCS বালতি তৈরি করুন
আমাদের পরীক্ষার কাজ আপলোড করার জন্য আমাদের একটি GCS বালতি লাগবে। আসুন স্বতন্ত্রতা নিশ্চিত করতে নামে আমাদের প্রকল্প আইডি ব্যবহার করে একটি বালতি তৈরি করি:
gsutil mb gs://${GOOGLE_CLOUD_PROJECT}-jenkins-test-bucket/
3. কুবারনেটস ক্লাস্টার তৈরি করা
ক্লাস্টার তৈরি করুন
এর পরে, আমরা একটি GKE ক্লাস্টার তৈরি করব যা আমাদের জেনকিন্স সিস্টেমকে হোস্ট করবে, সেই পডগুলি সহ যা কর্মী নোড হিসাবে প্রেরণ করা হবে। --scopes
পতাকা দ্বারা নির্দেশিত অতিরিক্ত সুযোগ জেনকিন্সকে ক্লাউড সোর্স রিপোজিটরি এবং কন্টেইনার রেজিস্ট্রি অ্যাক্সেস করার অনুমতি দেবে। ক্লাউড কনসোলে, নিম্নলিখিতগুলি চালান:
gcloud container clusters create jenkins-cd \ --machine-type n1-standard-2 --num-nodes 1 \ --zone us-east1-d \ --scopes "https://www.googleapis.com/auth/source.read_write,cloud-platform" \ --cluster-version latest
আমাদের নমুনা অ্যাপ্লিকেশনের আমাদের স্টেজিং এবং প্রোড বিল্ডগুলি হোস্ট করতে 2 টি ক্লাস্টার স্থাপন করা যাক:
gcloud container clusters create staging \ --machine-type n1-standard-2 --num-nodes 1 \ --zone us-east1-d \ --cluster-version latest
gcloud container clusters create prod \ --machine-type n1-standard-2 --num-nodes 2 \ --zone us-east1-d \ --cluster-version latest
যাচাই করুন
ক্লাস্টারগুলি তৈরি হয়ে গেলে, আমরা নিশ্চিত করতে পারি যে তারা gcloud container clusters list
সাথে চলছে
আউটপুট STATUS
কলামে RUNNING
থাকা উচিত:
NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS jenkins-cd us-east1-d 1.15.9-gke.9 34.74.77.124 n1-standard-2 1.15.9-gke.9 2 RUNNING prod us-east1-d 1.15.9-gke.9 35.229.98.12 n1-standard-2 1.15.9-gke.9 2 RUNNING staging us-east1-d 1.15.9-gke.9 34.73.92.228 n1-standard-2 1.15.9-gke.9 2 RUNNING
4. হেলমের সাথে জেনকিনস স্থাপন করুন
হেলম ইনস্টল করুন
আমরা আমাদের ক্লাস্টারে জেনকিন্স ইনস্টল করতে কুবারনেটসের জন্য একটি অ্যাপ্লিকেশন প্যাকেজ ম্যানেজার হেলম ব্যবহার করব। শুরু করতে, প্রকল্পটি ডাউনলোড করুন যাতে Kubernetes ম্যানিফেস্টগুলি অন্তর্ভুক্ত রয়েছে যা আমরা জেনকিন্স স্থাপন করতে ব্যবহার করব:
git clone https://github.com/GoogleCloudPlatform/continuous-deployment-on-kubernetes.git ~/continuous-deployment-on-kubernetes
আপনার বর্তমান কাজের ডিরেক্টরিটি প্রকল্প ডিরেক্টরিতে পরিবর্তন করুন:
cd ~/continuous-deployment-on-kubernetes/
নিজেকে ক্লাস্টার-প্রশাসক ভূমিকার অনুমতি দেওয়ার জন্য একটি ক্লাস্টার রোল বাইন্ডিং তৈরি করুন:
kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=$(gcloud config get-value account)
আপনার জেনকিন্স ক্লাস্টারের শংসাপত্রগুলি পেয়ে তার সাথে সংযোগ করুন:
gcloud container clusters get-credentials jenkins-cd --zone us-east1-d --project ${GOOGLE_CLOUD_PROJECT}
এবং আপনার ক্লাউড কনসোলে হেলম বাইনারি ডাউনলোড করুন:
wget https://storage.googleapis.com/kubernetes-helm/helm-v2.14.1-linux-amd64.tar.gz
ফাইলটি আনজিপ করুন এবং অন্তর্ভুক্ত হেলম ফাইলটি আপনার বর্তমান কার্যকারী ডিরেক্টরিতে অনুলিপি করুন:
tar zxfv helm-v2.14.1-linux-amd64.tar.gz && \ cp linux-amd64/helm .
টিলার হল হেলমের সার্ভার সাইড যা কুবারনেটস ক্লাস্টারে চলে। আসুন tiller
নামে একটি পরিষেবা অ্যাকাউন্ট তৈরি করি:
kubectl create serviceaccount tiller \ --namespace kube-system
এবং এটিকে cluster-admin
ক্লাস্টার ভূমিকার সাথে আবদ্ধ করুন যাতে এটি পরিবর্তন করতে পারে:
kubectl create clusterrolebinding tiller-admin-binding \ --clusterrole=cluster-admin \ --serviceaccount=kube-system:tiller
এখন আমরা হেলম শুরু করতে পারি এবং রেপো আপডেট করতে পারি:
./helm init --service-account=tiller && \ ./helm repo update
যাচাই করুন
নিশ্চিত করুন যে Helm ./helm version
সাথে যাওয়া ভাল - এটি ক্লায়েন্ট এবং সার্ভারের সংস্করণ নম্বরগুলি ফিরিয়ে দেবে:
Client: &version.Version{SemVer:"v2.14.1", GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"} Server: &version.Version{SemVer:"v2.14.1", GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"}
জেনকিন্স ইনস্টল করুন
এখন যেহেতু হেলম আমাদের ক্লাস্টারে ইনস্টল করা হয়েছে, আমরা জেনকিন্স ইনস্টলেশনের জন্য প্রস্তুত:
./helm install stable/jenkins -n cd \ -f jenkins/values.yaml \ --version 1.2.2 --wait
যাচাই করুন
আসুন শুঁটি পরীক্ষা করা যাক:
kubectl get pods
আউটপুটটি আমাদের জেনকিন্স পডকে একটি চলমান স্থিতি সহ দেখাতে হবে:
NAME READY STATUS RESTARTS AGE cd-jenkins-7c786475dd-vbhg4 1/1 Running 0 1m
নিশ্চিত করুন যে জেনকিন্স পরিষেবাটি সঠিকভাবে তৈরি করা হয়েছে:
kubectl get svc
আউটপুট এই মত কিছু দেখতে হবে:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE cd-jenkins ClusterIP 10.35.241.170 <none> 8080/TCP 2m27s cd-jenkins-agent ClusterIP 10.35.250.57 <none> 50000/TCP 2m27s kubernetes ClusterIP 10.35.240.1 <none> 443/TCP 75m
জেনকিন্স ইনস্টলেশনটি নির্মাতা এজেন্ট তৈরি করতে কুবারনেটস প্লাগইন ব্যবহার করবে। প্রয়োজন অনুসারে সেগুলি জেনকিন্স মাস্টার দ্বারা স্বয়ংক্রিয়ভাবে চালু হবে। যখন তাদের কাজ সম্পন্ন হয়, তখন সেগুলি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায় এবং তাদের সংস্থানগুলি ক্লাস্টারের রিসোর্স পুলে আবার যোগ করা হয়।
জেনকিন্সের সাথে সংযোগ করুন
জেনকিন্স আমাদের ক্লাস্টারে চলছে কিন্তু UI অ্যাক্সেস করতে, আসুন ক্লাউড শেল থেকে পোর্ট ফরওয়ার্ডিং সেট আপ করি:
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/component=jenkins-master" -l "app.kubernetes.io/instance=cd" -o jsonpath="{.items[0].metadata.name}") && kubectl port-forward $POD_NAME 8080:8080 >> /dev/null &
ইনস্টলেশনের সময় একটি অ্যাডমিন পাসওয়ার্ড তৈরি করা হয়েছিল। আসুন এটি পুনরুদ্ধার করা যাক:
printf $(kubectl get secret cd-jenkins -o jsonpath="{.data.jenkins-admin-password}" | base64 --decode);echo
ক্লাউড শেলের শীর্ষে, ওয়েব প্রিভিউ আইকনে ক্লিক করুন এবং 'পোর্ট 8080 এর পূর্বরূপ' নির্বাচন করুন
আমাদের জেনকিন্সের জন্য একটি লগইন স্ক্রীন দেখতে হবে যেখানে আমরা ব্যবহারকারীর নাম এবং পাসওয়ার্ডের জন্য admin
প্রবেশ করতে পারি যা পূর্ববর্তী ধাপে ফিরে এসেছে:
যখন আমরা সাইন ইন ক্লিক করি তখন আমাদের জেনকিন্সের মূল পৃষ্ঠায় নির্দেশিত করা উচিত।
5. GKE প্লাগইন ইনস্টল এবং কনফিগার করুন
Google Kubernetes Engine Plugin আমাদেরকে GKE-এর মধ্যে চলমান আমাদের Kubernetes ক্লাস্টারগুলিতে Jenkins-এর মধ্যে নির্মিত স্থাপনা প্রকাশ করতে দেয়। কিছু কনফিগারেশন আছে যা আপনার প্রজেক্টে IAM অনুমতি নিয়ে করা দরকার। আমরা Terraform ব্যবহার করে সেই কনফিগারেশনটি স্থাপন করব।
প্রথমে, GKE প্লাগইন প্রকল্প ডাউনলোড করুন:
git clone https://github.com/jenkinsci/google-kubernetes-engine-plugin.git ~/google-kubernetes-engine-plugin
স্বয়ংক্রিয় IAM অনুমতি কনফিগারেশন
আমরা আগে ক্লোন করা GKE প্রোজেক্টের rbac ডিরেক্টরিতে আপনার বর্তমান কাজের ডিরেক্টরি পরিবর্তন করুন:
cd ~/google-kubernetes-engine-plugin/docs/rbac/
gcp-sa-setup.tf
হল একটি Terraform কনফিগারেশন ফাইল যা একটি কাস্টম GCP IAM ভূমিকা তৈরি করবে সীমাবদ্ধ অনুমতি সহ একটি GCP পরিষেবা অ্যাকাউন্টের সাথে সেই ভূমিকাটি প্রদান করতে। ফাইলটির জন্য প্রকল্প, অঞ্চল এবং পরিষেবা অ্যাকাউন্ট নামের ভেরিয়েবলের মান প্রয়োজন। আমরা প্রথমে নিম্নলিখিত পরিবেশ ভেরিয়েবল ঘোষণা করে সেই মানগুলি প্রদান করি:
export TF_VAR_project=${GOOGLE_CLOUD_PROJECT} export TF_VAR_region=us-east1-d export TF_VAR_sa_name=kaniko-role
টেরাফর্ম শুরু করুন, একটি পরিকল্পনা তৈরি করুন এবং এটি প্রয়োগ করুন:
terraform init terraform plan -out /tmp/tf.plan terraform apply /tmp/tf.plan && rm /tmp/tf.plan
আমাদের ক্লাউড স্টোরেজ বালতিতে সংরক্ষণ করার জন্য পরিষেবা অ্যাকাউন্টটির স্টোরেজ অ্যাডমিন অনুমতির প্রয়োজন হবে:
gcloud projects add-iam-policy-binding ${GOOGLE_CLOUD_PROJECT} \ --member serviceAccount:kaniko-role@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com \ --role 'roles/storage.admin'
আমাদের পাইপলাইনের স্থাপনার ধাপগুলির জন্য এটির কন্টেইনার অনুমতিরও প্রয়োজন হবে:
gcloud projects add-iam-policy-binding ${GOOGLE_CLOUD_PROJECT} --member \ serviceAccount:kaniko-role@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com --role 'roles/container.developer'
এখন আমরা GKE রোবট ডিপ্লোয়ার ব্যবহার করে GKE প্লাগইনের ক্লাস্টার অনুমতি সেট আপ করতে Helm ব্যবহার করতে পারি। আপনার কাজের ডিরেক্টরিকে GKE প্রকল্পের হেলম ডিরেক্টরিতে পরিবর্তন করুন:
cd ~/google-kubernetes-engine-plugin/docs/helm/
এবং প্রদত্ত হেলম চার্ট ব্যবহার করে ইনস্টল করুন:
export TARGET_NAMESPACE=kube-system && \ envsubst < gke-robot-deployer/values.yaml | helm install ./gke-robot-deployer --name gke-robot-deployer -f -
6. জেনকিন্স কনফিগার করুন
পরিষেবা অ্যাকাউন্ট কী
পরিষেবা অ্যাকাউন্টটি সঠিকভাবে কাজ করার জন্য, আমাদের একটি ব্যক্তিগত কী ফাইল তৈরি করতে হবে এবং এটিকে কুবারনেটস সিক্রেট হিসাবে যুক্ত করতে হবে। প্রথমে, ফাইলটি নিম্নলিখিত gcloud কমান্ডটি তৈরি করবে:
gcloud iam service-accounts keys create /tmp/kaniko-secret.json --iam-account kaniko-role@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com
আমরা সেই ফাইলটি দিয়ে kubernetes গোপন স্টোরে একটি গোপন কী তৈরি করব:
kubectl create secret generic jenkins-int-samples-kaniko-secret --from-file=/tmp/kaniko-secret.json
ক্লাউড শেলের 3-ডট মেনু থেকে ডাউনলোড ফাইল আইটেমটি অ্যাক্সেস করে আপনার স্থানীয় ডিস্কে json ফাইলটি ডাউনলোড করুন:
ফাইল পাথ /tmp/kaniko-secret.json
লিখুন এবং ডাউনলোড ক্লিক করুন।
জেনকিন্স পৃষ্ঠায় ফিরে, বাম দিকের ফলকে, শংসাপত্রে ক্লিক করুন, তারপর সিস্টেমে।
সিস্টেম শিরোনামের পৃষ্ঠার বিভাগের অধীনে, গ্লোবাল ক্রেডেনশিয়াল ক্লিক করুন তারপর বাম দিকে শংসাপত্র যোগ করুন:
কাইন্ড ড্রপডাউনে, ব্যক্তিগত কী থেকে Google পরিষেবা অ্যাকাউন্ট নির্বাচন করুন। নাম হিসাবে 'কানিকো-রোল' লিখুন, তারপর আপনার JSON কী আপলোড করুন যা পূর্ববর্তী ধাপে তৈরি হয়েছিল এবং ঠিক আছে ক্লিক করুন।
এনভায়রনমেন্ট ভেরিয়েবল
কিছু এনভায়রনমেন্ট ভেরিয়েবল আছে যেগুলো আমাদের বহু-শাখা পাইপলাইন তৈরি করার আগে জেনকিন্সকে সংজ্ঞায়িত করতে হবে। তারা হল:
- JENK_INT_IT_ZONE - কুবারনেটস ক্লাস্টারের অঞ্চল। আমাদের ক্ষেত্রে
us-east1-d
- JENK_INT_IT_PROJECT_ID - জেনকিন্সের এই উদাহরণ হোস্ট করা GCP প্রকল্প আইডি বোঝায়
- JENK_INT_IT_STAGING - আমাদের 'মঞ্চায়ন' ক্লাস্টারের নাম, প্রদর্শনের উদ্দেশ্যে এটি
staging
- JENK_INT_IT_PROD - আমাদের 'prod' ক্লাস্টার নাম। প্রদর্শনের উদ্দেশ্যে, এটি
prod
- JENK_INT_IT_BUCKET - Google ক্লাউড স্টোরেজ বাকেটটি আগের ধাপে তৈরি করা হয়েছে
- JENK_INT_IT_CRED_ID - পূর্ববর্তী ধাপে json ব্যবহার করে তৈরি করা শংসাপত্রকে বোঝায়।
kaniko-role
আমরা যে নাম দিয়েছি তার সাথে মান মিলতে হবে
এগুলি যোগ করতে, Jenkins পরিচালনায় যান:
তারপর সিস্টেম কনফিগার করুন:
গ্লোবাল প্রোপার্টি নামে একটি বিভাগ থাকবে, এবং যখন আমরা এনভায়রনমেন্ট ভেরিয়েবলের জন্য বাক্সটি চেক করব তখন আমরা একটি অ্যাড বোতাম পাব যা আমরা উপরের ভেরিয়েবলগুলিকে মূল মান জোড়া হিসাবে যুক্ত করতে ক্লিক করব:
পরিবর্তনগুলি প্রয়োগ করতে পৃষ্ঠার নীচে সংরক্ষণ বোতামে ক্লিক করুন৷
7. একটি পাইপলাইন সেটআপ করুন
জেনকিন্সে 'নতুন আইটেম'-এ ক্লিক করুন:
নামের জন্য 'জেনকিন্স-ইনটিগ্রেশন-নমুনা' লিখুন এবং প্রকল্পের ধরন হিসাবে 'মাল্টিব্র্যাঞ্চ পাইপলাইন' নির্বাচন করুন এবং ঠিক আছে ক্লিক করুন:
আমাদের পাইপলাইন কনফিগারেশন পৃষ্ঠায় পুনঃনির্দেশিত করা হবে। শাখা উৎসের অধীনে প্রজেক্ট রিপোজিটরি হিসেবে https://github.com/GoogleCloudPlatform/jenkins-integration-samples.git লিখুন। বিল্ড কনফিগারেশনের অধীনে স্ক্রিপ্ট পাথ হিসাবে 'gke/Jenkinsfile' লিখুন।
এই সেটিংস প্রয়োগ করতে সংরক্ষণ করুন ক্লিক করুন. সংরক্ষণ করার পরে, জেনকিন্স সংগ্রহস্থলের একটি স্ক্যান এবং প্রতিটি শাখার জন্য পরবর্তী বিল্ড শুরু করবে। এটি অগ্রসর হওয়ার সাথে সাথে, আপনি কুবারনেটস ওয়ার্কলোডস পৃষ্ঠায় অগ্রগতি তৈরি করার সাথে সাথে পডগুলি তৈরি, চালানো এবং ধ্বংস করা দেখতে পাবেন।
বিল্ডগুলি শেষ হয়ে গেলে, আপনি কুবারনেটস ওয়ার্কলোডস পৃষ্ঠায় জেনকিন্স-ইনটিগ্রেশন-স্যাম্পলস-জিকে নামে দুটি আইটেম পাবেন, প্রতিটি প্রোড বা টেস্টিং ক্লাস্টারের সাথে সম্পর্কিত। স্ট্যাটাসটি ঠিক আছে পড়বে:
নিম্নলিখিত gcloud কমান্ড ব্যবহার করে আমরা দেখতে পাব যে আমরা আমাদের পাইপলাইনের সাথে সম্পর্কিত Google কন্টেইনার রেজিস্ট্রিতে একটি কন্টেইনার ইমেজ আপলোড করেছি:
gcloud container images list
আপনার ব্রাউজারে কাজের চাপ দেখতে, প্রোড ক্লাস্টারের জন্য শংসাপত্রগুলি পান:
gcloud container clusters get-credentials prod --zone us-east1-d --project ${GOOGLE_CLOUD_PROJECT}
এবং আপনার শেলের পোর্ট 8081 থেকে আপনার ওয়ার্কলোডের পোর্ট 8080 এ একটি পোর্ট ফরোয়ার্ড সেট আপ করতে নিম্নলিখিতটি চালান:
export POD_NAME=$(kubectl get pods -o jsonpath="{.items[0].metadata.name}") && kubectl port-forward $POD_NAME 8081:8080 >> /dev/null &
ক্লাউড শেলের শীর্ষে, ওয়েব প্রিভিউ আইকনে ক্লিক করুন এবং 'পোর্ট 8081 এর পূর্বরূপ' নির্বাচন করুন
8. পরিষ্কার করা
আমরা কুবারনেটসে জেনকিন্স এবং একটি নমুনা মাল্টিব্র্যাঞ্চ পাইপলাইন কীভাবে স্থাপন করতে হয় তা অনুসন্ধান করেছি। এখন আমাদের তৈরি করা কোনো সংস্থান থেকে আমাদের প্রকল্প পরিষ্কার করার সময়।
প্রকল্পটি মুছুন
আপনি যদি চান, আপনি সম্পূর্ণ প্রকল্প মুছে ফেলতে পারেন. GCP কনসোলে, ক্লাউড রিসোর্স ম্যানেজার পৃষ্ঠায় যান:
প্রকল্প তালিকায়, আমরা যে প্রকল্পে কাজ করছি সেটি নির্বাচন করুন এবং মুছুন ক্লিক করুন। আপনাকে প্রজেক্ট আইডি টাইপ করতে বলা হবে। এটি লিখুন এবং শাট ডাউন ক্লিক করুন।
বিকল্পভাবে, আপনি gcloud দিয়ে সরাসরি ক্লাউড শেল থেকে সম্পূর্ণ প্রকল্প মুছে ফেলতে পারেন:
gcloud projects delete $GOOGLE_CLOUD_PROJECT
আপনি যদি বিভিন্ন বিলযোগ্য উপাদান একে একে মুছে ফেলতে পছন্দ করেন তবে পরবর্তী বিভাগে যান।
কুবারনেটস ক্লাস্টার
জিক্লাউড সহ সমগ্র কুবারনেটস ক্লাস্টার মুছুন:
gcloud container clusters delete jenkins-cd --zone=us-east1-d
স্টোরেজ বালতি
আপলোড করা সমস্ত ফাইল সরান এবং gsutil দিয়ে আমাদের বালতি মুছুন:
gsutil rm -r gs://${GOOGLE_CLOUD_PROJECT}-jenkins-test-bucket
গুগল কন্টেইনার রেজিস্ট্রি ছবি
আমরা ইমেজ ডাইজেস্ট ব্যবহার করে Google কন্টেইনার রেজিস্ট্রি ছবি মুছে ফেলব। প্রথমে, নিম্নলিখিত কমান্ডের সাহায্যে ডাইজেস্টগুলি পুনরুদ্ধার করুন:
gcloud container images list-tags gcr.io/${GOOGLE_CLOUD_PROJECT}/jenkins-integration-samples-gke --format="value(digest)"
তারপর প্রতিটি ডাইজেস্টের জন্য ফিরে এসেছে:
gcloud container images delete gcr.io/${GOOGLE_CLOUD_PROJECT}/jenkins-integration-samples-gke@sha256:<DIGEST>
9. অভিনন্দন!
উহু! আপনি এটা করেছেন. আপনি শিখেছেন কিভাবে জিকেই-তে জেনকিন্স স্থাপন করতে হয় এবং কুবারনেটস ক্লাস্টারে চাকরি পাঠাতে হয়।
আমরা কভার করেছি কি
- আমরা একটি কুবারনেটস ক্লাস্টার স্থাপন করেছি এবং জেনকিন্স ইনস্টল করতে হেলম ব্যবহার করেছি
- জেনকিন্সকে কুবারনেটস ক্লাস্টারে বিল্ড আর্টিফ্যাক্ট স্থাপন করতে সক্ষম করতে আমরা GKE প্লাগইন ইনস্টল এবং কনফিগার করেছি
- আমরা জেনকিন্সকে একটি মাল্টিব্র্যাঞ্চ পাইপলাইন সেট আপ করতে কনফিগার করেছি যা GKE ক্লাস্টারে কাজ প্রেরণ করে