From 880fe76088e5fbd7565b2a10652e1d2d4763f18c Mon Sep 17 00:00:00 2001 From: Fatima Jannet Date: Thu, 13 Mar 2025 08:17:54 -0700 Subject: [PATCH 1/3] Create garbage-collection.md --- .../architecture/garbage-collection.md | 136 ++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 content/bn/docs/concepts/architecture/garbage-collection.md diff --git a/content/bn/docs/concepts/architecture/garbage-collection.md b/content/bn/docs/concepts/architecture/garbage-collection.md new file mode 100644 index 0000000000000..0a56422270328 --- /dev/null +++ b/content/bn/docs/concepts/architecture/garbage-collection.md @@ -0,0 +1,136 @@ +--- +title: গার্বেজ কালেকশন +content_type: concept +weight: 70 +--- + + +{{}} +গার্বেজ কালেকশন সিস্টেমকে নিম্নলিখিত রিসোর্সগুলি পরিষ্কার করতে দেয়: + +* [সমাপ্ত পডগুলি](/bn/docs/concepts/workloads/pods/pod-lifecycle/#pod-garbage-collection) +* [সম্পন্ন হওয়া জবগুলি](/bn/docs/concepts/workloads/controllers/ttlafterfinished/) +* [মালিক রেফারেন্স ছাড়া অবজেক্ট](#owners-dependents) +* [অব্যবহৃত কন্টেইনার এবং কন্টেইনার ইমেজগুলি](#containers-images) +* [ডায়নামিকভাবে প্রস্তুতকৃত, StorageClass এর জন্য পুনরুদ্ধার নীতির সাথে Delete করা PV](/bn/docs/concepts/storage/persistent-volumes/#delete) +* [ব্যর্থ অথবা মেয়াদ উত্তীর্ণ সার্টিফিকেট সাইনিং রিকোয়েস্ট (CSR)](/bn/docs/reference/access-authn-authz/certificate-signing-requests/#request-signing-process) +* {{}} নিম্নলিখিত পরিস্থিতিতে মুছে ফেলা : + * যখন ক্লাস্টারটি [ক্লাউড কন্ট্রোলার ম্যানেজার](/bn/docs/concepts/architecture/cloud-controller/) এর মাধ্যমে ক্লাউডে চালানো হয়। + * যখন ক্লাস্টারটি ক্লাউড কন্ট্রোলার ম্যানেজারের মতো প্লাগইন ব্যবহার করে লোকাল পরিবেশে চলে। +* [নোড লিজ অবজেক্ট](/bn/docs/concepts/architecture/nodes/#heartbeats) + +## মালিক ও নির্ভরশীল {#owners-dependents} + +Kubernetes এ অনেক অবজেক্ট একে অপরের সাথে [**মালিকানাধীন রেফারেন্স**](/bn/docs/concepts/overview/working-with-objects/owners-dependents/) এর মাধ্যমে সংযুক্ত থাকে। মালিকানাধীন রেফারেন্স (Owner Reference) কন্ট্রোল প্লেনকে জানায় কোন অবজেক্ট অন্য অবজেক্টের উপর নির্ভরশীল। Kubernetes মালিকানাধীন রেফারেন্স ব্যবহার করে কন্ট্রোল প্লেন এবং অন্যান্য API ক্লায়েন্টদের একটি অবজেক্ট মুছে ফেলার সময় সংশ্লিষ্ট রিসোর্সগুলি পরিষ্কার করার একটি সুযোগ প্রদান করে। বেশিরভাগ পরিস্থিতিতে Kubernetes স্বয়ংক্রিয়ভাবে মালিকানাধীন রেফারেন্স পরিচালনা করে। + +মালিকানাধীন সম্পর্ক এবং কিছু রিসোর্সের জন্য ব্যবহার করা [ট্যাগ এবং সিলেক্টর](/bn/docs/concepts/overview/working-with-objects/labels/) এর মধ্যে পার্থক্য রয়েছে। উদাহরণস্বরূপ, একটি `EndpointSlice` অবজেক্ট তৈরি করা একটি {{}} কল্পনা করুন। সার্ভিস ট্যাগগুলি ব্যবহার করে কন্ট্রোল প্লেনকে অনুমোদিত `EndpointSlice` অবজেক্টগুলি সনাক্ত করতে দেয়। ট্যাগের পাশাপাশি, প্রতিটি সার্ভিস দ্বারা পরিচালিত `EndpointSlice` অবজেক্টের একটি মালিকানাধীন রেফারেন্স থাকবে যা সংশ্লিষ্ট সার্ভিসের সাথে সম্পর্কিত। + +{{< note >}} +ক্রস-নেমস্পেস মালিকানা রেফারেন্স ডিজাইন দ্বারা নিষিদ্ধ। নেমস্পেস নির্ভরশীলরা ক্লাস্টার-স্কোপড অথবা নেমস্পেসড মালিকদের নির্দিষ্ট করতে পারে। একটি নেমস্পেসড মালিক **অবশ্যই** নির্ভরশীলের সাথে একই নেমস্পেসে থাকতে হবে। যদি এটি না থাকে, তবে মালিকানা রেফারেন্সটি অনুপস্থিত হিসেবে বিবেচিত হয়, এবং মালিকদের সমস্ত অবস্থিতি যাচাই করা হলে নির্ভরশীলটি মুছে ফেলা হবে। + +ক্লাস্টার-স্কোপড নির্ভরশীলরা শুধুমাত্র ক্লাস্টার-স্কোপড মালিকদের উল্লেখ করতে পারে। v1.20+ এ, যদি একটি ক্লাস্টার-স্কোপড নির্ভরশীল একটি নেমস্পেসড প্রকারকে মালিক হিসেবে নির্দিষ্ট করে, তবে এটি একটি অযোগ্য মালিকানা রেফারেন্স হিসেবে বিবেচিত হয়, এবং এটি গার্বেজ কালেক্ট করা যাবে না। + +v1.20+ এ, যদি গার্বেজ কালেক্টর একটি অবৈধ ক্রস-নেমস্পেস `ownerReference` সনাক্ত করে, অথবা একটি ক্লাস্টার-স্কোপড নির্ভরশীল একটি নেমস্পেসড প্রকারের মালিককে রেফারেন্স করে, তবে একটি সতর্কতা ইভেন্ট যার কারণে `OwnerRefInvalidNamespace` এবং একটি `involvedObject` থাকে যা অবৈধ নির্ভরশীল হিসেবে রিপোর্ট হয়। এধরনের ইভেন্ট দেখতে আপনি চালাতে পারেন kubectl get events `kubectl get events -A --field-selector=reason=OwnerRefInvalidNamespace`। +{{< note >}} + +## ক্যাসকেডিং ডিলিশন {#cascading-deletion} + +Kubernetes সেসব অবজেক্ট পরীক্ষা করে এবং মুছে ফেলে, যেগুলোর আর মালিকানা রেফারেন্স নেই, যেমন `ReplicaSet` মুছে ফেললে বাকি থাকা পডগুলো। যখন আপনি একটি অবজেক্ট মুছে ফেলেন, তখন আপনি নিয়ন্ত্রণ করতে পারেন যে কুবার্নেটিস ঐ অবজেক্টের ডিপেনডেন্টসগুলো স্বয়ংক্রিয়ভাবে মুছে ফেলবে কিনা, এই প্রক্রিয়াকে বলা হয় *কাসকেডিং ডিলিশন*। কাসকেডিং ডিলিশনের দুটি ধরনের থাকে, যা নিচে ব্যাখ্যা করা হয়েছে: + +* ফরগ্রাউন্ড ক্যাসকেডিং ডিলিশন +* ব্যাকগ্রাউন্ড ক্যাসকেডিং ডিলিশন + +আপনি গার্বেজ কালেকশন কিভাবে এবং কখন মালিকানা রেফারেন্সসমূহের মাধ্যমে রিসোর্স মুছে ফেলে Kubernetes {{}} ব্যবহার করে নিয়ন্ত্রণ করতে পারেন। + + +### ফরগ্রাউন্ড ক্যাসকেডিং ডিলিশন {#foreground-deletion} + +ফরগ্রাউন্ড ক্যাসকেডিং ডিলিশনে, আপনি যে মালিকানা অবজেক্টটি মুছে ফেলছেন সেটি প্রথমে একটি *ডিলিশন ইন প্রগ্রেস* অবস্থায় চলে যায়। এই অবস্থায়, মালিকানা অবজেক্টের সাথে নিম্নলিখিত ঘটনা ঘটে: + +* Kubernetes API সার্ভার অবজেক্টের `metadata.deletionTimestamp` ক্ষেত্রটিকে সেই সময়ে সেট করে যখন অবজেক্টটি মুছে ফেলার জন্য চিহ্নিত করা হয়। +* Kubernetes API সার্ভার এছাড়াও `metadata.finalizers` ক্ষেত্রটিকে `foregroundDeletion` এ সেট করে। +* অবজেক্টটি Kubernetes API-এর মাধ্যমে দৃশ্যমান থাকে যতক্ষণ না মুছে ফেলার প্রক্রিয়া সম্পূর্ণ হয়। + +মালিকানা অবজেক্টটি ডিলিশন ইন প্রগ্রেস অবস্থায় চলে গেলে, কন্ট্রোলার নির্ভরশীল অবজেক্টগুলি মুছে ফেলে। সমস্ত নির্ভরশীল অবজেক্ট মুছে ফেলার পর কন্ট্রোলার মালিকানা অবজেক্টটি মুছে ফেলবে। এই মুহূর্তে, অবজেক্টটি Kubernetes API-এ আর দৃশ্যমান থাকে না। + +ফরগ্রাউন্ড ক্যাসকেডিং ডিলিশন চলাকালীন, একমাত্র নির্ভরশীলরা যারা মালিক মুছে ফেলার প্রতিবন্ধকতা সৃষ্টি করে তা হল যাদের `ownerReference.blockOwnerDeletion=true` ক্ষেত্র রয়েছে। আরো জানার জন্য [ফরগ্রাউন্ড ক্যাসকেডিং ডিলিশন ব্যবহার করুন।](/bn/docs/tasks/administer-cluster/use-cascading-deletion/#use-foreground-cascading-deletion) + +### ব্যাকগ্রাউন্ড ক্যাসকেডিং ডিলিশন {#background-deletion} + +ব্যাকগ্রাউন্ড ক্যাসকেডিং ডিলিশনে, Kubernetes API সার্ভার অবজেক্টটি অবিলম্বে মুছে ফেলে এবং কন্ট্রোলার ব্যাকগ্রাউন্ডে নির্ভরশীল অবজেক্টগুলি পরিষ্কার করে। স্বাভাবিকভাবে, Kubernetes ব্যাকগ্রাউন্ড ক্যাসকেডিং ডিলিশন ব্যবহার করে যতক্ষণ না আপনি ম্যানুয়ালি ফরগ্রাউন্ড ডিলিশন ব্যবহার করেন বা নির্ভরশীল অবজেক্টগুলি অরফান না করেন। + +আরো জানার জন্য [ব্যাকগ্রাউন্ড ক্যাসকেডিং ডিলিশন ব্যবহার করুন।](/bn/docs/tasks/administer-cluster/use-cascading-deletion/#use-background-cascading-deletion) +to learn more. + +### অরফানড ডিপেনডেন্টস {#orphaned-dependents} + +যখন কুবার্নেটিস একটি মালিক অবজেক্ট মুছে ফেলে, তখন বাকি থাকা ডিপেনডেন্টসগুলোকে অরফান অবজেক্ট বলা হয়। ডিফল্টভাবে, কুবার্নেটিস ডিপেনডেন্ট অবজেক্টগুলো মুছে ফেলে। এই আচরণটি কিভাবে ওভাররাইড করবেন তা জানতে, দেখুন [মালিক অবজেক্ট মুছে ফেলুন এবং অরফান ডিপেনডেন্টস](/bn/docs/tasks/administer-cluster/use-cascading-deletion/#set-orphan-deletion-policy) + +## অব্যবহৃত কনটেইনার এবং চিত্রগুলির গার্বেজ কালেকশন {#containers-images} + +{{}} প্রতি দুই মিনিটে অব্যবহৃত চিত্রগুলির গার্বেজ কালেকশন এবং প্রতি মিনিটে অব্যবহৃত কনটেইনারগুলির গার্বেজ কালেকশন করে। বাহ্যিক গার্বেজ কালেকশন টুলস ব্যবহার থেকে বিরত থাকুন, কারণ এটি কিউবিলেটের আচরণ ভেঙে ফেলতে পারে এবং এমন কনটেইনারগুলি মুছে ফেলতে পারে যা থাকার উচিত। +অব্যবহৃত কনটেইনার এবং চিত্রগুলির গার্বেজ কালেকশন জন্য বিকল্প কনফিগার করতে, কিউবিলেটটি একটি [কনফিগারেশন ফাইল](/bn/docs/tasks/administer-cluster/kubelet-config-file/) ব্যবহার করে কনফিগার করুন এবং গার্বেজ কালেকশন সম্পর্কিত প্যারামিটারগুলি পরিবর্তন করুন [`KubeletConfiguration`](/bn/docs/reference/config-api/kubelet-config.v1beta1/) +রিসোর্সটি ব্যবহার করে। + +### কনটেইনার চিত্রের জীবনচক্র {#container-image-lifecycle} + +কুবেরনেটিস তার *চিত্র ম্যানেজার(Image Manager)* এর মাধ্যমে সমস্ত চিত্রের জীবনচক্র পরিচালনা করে, যা কিউবিলেটের অংশ এবং {{< glossary_tooltip text="cadvisor" term_id="cadvisor" >}}এর সহযোগিতায়. Kubelet +গার্বেজ কালেকশন সিদ্ধান্ত নেবার সময় নিম্নলিখিত ডিস্ক ব্যবহার সীমা বিবেচনা করে: + +* `HighThresholdPercent` +* `LowThresholdPercent` + +ডিস্ক ব্যবহারের পরিমাণ নির্ধারিত `HighThresholdPercent` মানের চেয়ে বেশি হলে গার্বেজ কালেকশন ট্রিগার হয়, যা চিত্র (ইমেজ) মুছে ফেলে। এটি সর্বশেষ ব্যবহারের সময়ের ভিত্তিতে প্রাচীনতম চিত্র থেকে শুরু করে মুছে ফেলা হয়। Kubelet চিত্র মুছতে থাকে যতক্ষণ না ডিস্ক ব্যবহারের পরিমাণ `LowThresholdPercent` মানে নেমে আসে। + +#### অব্যবহৃত কন্টেইনার ইমেজগুলোর জন্য গারবেজ কালেকশন {#image-maximum-age-gc} + +{{< feature-state feature_gate_name="ImageMaximumGCAge" >}} + +একটি বিটা ফিচার হিসেবে, আপনি নির্দিষ্ট করতে পারেন যে একটি স্থানীয় ইমেজ সর্বাধিক কতক্ষণ অব্যবহৃত থাকতে পারবে, ডিস্ক ব্যবহারের পরিমাণ নির্বিশেষে। এটি একটি kubelet সেটিং, যা প্রতিটি নোডের জন্য কনফিগার করা যায়। + +এই সেটিং কনফিগার করতে, কুবলেটের জন্য `ImageMaximumGCAge` +[ফিচার গেট](/bn/docs/reference/command-line-tools-reference/feature-gates/) সক্ষম করুন এবং kubelet কনফিগারেশন ফাইলে `imageMaximumGCAge` ফিল্ডের জন্য একটি মান সেট করুন। + +মানটি কুবার্নেটিসের সময়কাল (duration) হিসেবে নির্ধারিত হয়। Kubelet কনফিগারেশন ফাইলে `imageMaximumGCAge` ফিল্ডের জন্য বৈধ সময় এককগুলি হলো: + +- "ns" ন্যানোসেকেন্ডের জন্য +- "us" বা "µs" মাইক্রোসেকেন্ডের জন্য +- "ms" মিলিসেকেন্ডের জন্য +- "s" সেকেন্ডের জন্য +- "m" মিনিটের জন্য +- "h" ঘন্টার জন্য + +উদাহরণস্বরূপ, আপনি যদি `imageMaximumGCAge` ফিল্ডের মান `12h 45m` সেট করেন, তাহলে এর অর্থ হবে ১২ ঘন্টা এবং ৪৫ মিনিট। + +{{< note >}} +এই ফিচারটি কিউবিলেট (kubelet) পুনরায় চালু হওয়ার (restart) পরেও ইমেজ ব্যবহারের তথ্য সংরক্ষণ করে না। যদি কিউবিলেট রিস্টার্ট হয়, তাহলে ট্র্যাক করা ইমেজের বয়স পুনরায় শূন্যে সেট হয়, যার ফলে কিউবিলেটকে সম্পূর্ণ `imageMaximumGCAge` সময় অপেক্ষা করতে হয়, এরপর ইমেজের বয়সের ভিত্তিতে গারবেজ কালেকশনের জন্য যোগ্যতা নির্ধারণ করা হয়। +{{< /note>}} + +### কন্টেইনার গারবেজ কালেকশন {#container-image-garbage-collection} + +কিউবিলেট (kubelet) অব্যবহৃত কন্টেইনারগুলো গারবেজ কালেকশন করে নিম্নলিখিত ভ্যারিয়েবলগুলির ভিত্তিতে, যেগুলো আপনি সংজ্ঞায়িত করতে পারেন: + +* MinAge: এটি হল সেই ন্যূনতম বয়স, যার পরে কিউবিলেট একটি কন্টেইনার গারবেজ কালেক্ট করতে পারে। এটি নিষ্ক্রিয় করতে `0` এ সেট করতে হবে। +* MaxPerPodContainer: প্রতিটি পডের জন্য মৃত কন্টেইনারের সর্বাধিক সংখ্যা। এটি নিষ্ক্রিয় করতে ` 0` এ সেট করতে হবে। +* MaxContainers: ক্লাস্টারের জন্য মৃত কন্টেইনারের সর্বাধিক সংখ্যা। এটি নিষ্ক্রিয় করতে কম ` 0` এ সেট করতে হবে। + +এই ভ্যারিয়েবলগুলির পাশাপাশি, কিউবিলেট অজানা এবং মুছে ফেলা কন্টেইনারগুলিকেও গারবেজ কালেক্ট করে, সাধারণত সবচেয়ে পুরনো কন্টেইনারগুলো প্রথমে মুছে ফেলে। + +`MaxPerPodContaine`r এবং `MaxContainers` একে অপরের সাথে সংঘর্ষে পড়তে পারে এমন পরিস্থিতিতে, যেখানে একটি পডে সর্বাধিক কন্টেইনার সংখ্যা (MaxPerPodContainer) ক্লাস্টারের অনুমোদিত মোট মৃত কন্টেইনারের সংখ্যা (MaxContainers) থেকে বেশি হতে পারে। এই পরিস্থিতিতে, কিউবিলেট সংঘর্ষ সমাধান করতে MaxPerPodContainer এর মান সমন্বয় করে। একটি খারাপ পরিস্থিতি হতে পারে MaxPerPodContainer কে `1` এ নামিয়ে আনা এবং সবচেয়ে পুরনো কন্টেইনারগুলো মুছে ফেলা। এছাড়াও, যে পডগুলি মুছে ফেলা হয়েছে, তাদের মালিকানাধীন কন্টেইনারগুলো MinAge এর চেয়ে পুরনো হলে মুছে ফেলা হয়। + +{{}} +কিউবিলেট (kubelet) শুধুমাত্র সেই কন্টেইনারগুলো গারবেজ কালেকশন করে, যেগুলোর এটি পরিচালনা করে। +{{}} + +## গারবেজ কালেকশন কনফিগার করা {#configuring-gc} + +আপনি যেসব কন্ট্রোলার রিসোর্স পরিচালনা করছে, তাদের জন্য নির্দিষ্ট অপশন কনফিগার করে রিসোর্সের গারবেজ কালেকশন টিউন করতে পারেন। নিম্নলিখিত পৃষ্ঠাগুলো আপনাকে গারবেজ কালেকশন কনফিগার করতে সাহায্য করবে: + +* [কুবার্নেটিস অবজেক্টের কাসকেডিং ডিলিশন কনফিগার করা](/bn/docs/tasks/administer-cluster/use-cascading-deletion/) +* [শেষ হওয়া জবগুলোর ক্লিনআপ কনফিগার করা](/bn/docs/concepts/workloads/controllers/ttlafterfinished/) + +## {{% heading "whatsnext" %}} + +* কুবার্নেটিস অবজেক্টের [মালিকানা সম্পর্কে আরও জানুন.](/bn/docs/concepts/overview/working-with-objects/owners-dependents/). +* কুবার্নেটিসের [ফাইনালাইজার সম্পর্কে আরও জানুন.](/bn/docs/concepts/overview/working-with-objects/finalizers/). +* শেষ হওয়া জবগুলো ক্লিনআপ করার জন্য [TTL কন্ট্রোলার](/bn/docs/concepts/workloads/controllers/ttlafterfinished/) সম্পর্কে জানুন। From bce9415377f27c25d34c98458105f17e1909c22a Mon Sep 17 00:00:00 2001 From: Fatima Jannet Date: Mon, 17 Mar 2025 07:41:01 -0700 Subject: [PATCH 2/3] Update content/bn/docs/concepts/architecture/garbage-collection.md Co-authored-by: Dipesh Rawat --- content/bn/docs/concepts/architecture/garbage-collection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/bn/docs/concepts/architecture/garbage-collection.md b/content/bn/docs/concepts/architecture/garbage-collection.md index 0a56422270328..6c24bd90acf03 100644 --- a/content/bn/docs/concepts/architecture/garbage-collection.md +++ b/content/bn/docs/concepts/architecture/garbage-collection.md @@ -31,7 +31,7 @@ Kubernetes এ অনেক অবজেক্ট একে অপরের স ক্লাস্টার-স্কোপড নির্ভরশীলরা শুধুমাত্র ক্লাস্টার-স্কোপড মালিকদের উল্লেখ করতে পারে। v1.20+ এ, যদি একটি ক্লাস্টার-স্কোপড নির্ভরশীল একটি নেমস্পেসড প্রকারকে মালিক হিসেবে নির্দিষ্ট করে, তবে এটি একটি অযোগ্য মালিকানা রেফারেন্স হিসেবে বিবেচিত হয়, এবং এটি গার্বেজ কালেক্ট করা যাবে না। v1.20+ এ, যদি গার্বেজ কালেক্টর একটি অবৈধ ক্রস-নেমস্পেস `ownerReference` সনাক্ত করে, অথবা একটি ক্লাস্টার-স্কোপড নির্ভরশীল একটি নেমস্পেসড প্রকারের মালিককে রেফারেন্স করে, তবে একটি সতর্কতা ইভেন্ট যার কারণে `OwnerRefInvalidNamespace` এবং একটি `involvedObject` থাকে যা অবৈধ নির্ভরশীল হিসেবে রিপোর্ট হয়। এধরনের ইভেন্ট দেখতে আপনি চালাতে পারেন kubectl get events `kubectl get events -A --field-selector=reason=OwnerRefInvalidNamespace`। -{{< note >}} +{{< /note >}} ## ক্যাসকেডিং ডিলিশন {#cascading-deletion} From 810556bbc6b157ccda5d7fa1e1cf65558949d942 Mon Sep 17 00:00:00 2001 From: Fatima Jannet Date: Thu, 24 Apr 2025 07:01:01 -0700 Subject: [PATCH 3/3] Update garbage-collection.md --- .../architecture/garbage-collection.md | 192 ++++++++++++------ 1 file changed, 133 insertions(+), 59 deletions(-) diff --git a/content/bn/docs/concepts/architecture/garbage-collection.md b/content/bn/docs/concepts/architecture/garbage-collection.md index 6c24bd90acf03..063d2ec721608 100644 --- a/content/bn/docs/concepts/architecture/garbage-collection.md +++ b/content/bn/docs/concepts/architecture/garbage-collection.md @@ -8,115 +8,187 @@ weight: 70 {{}} গার্বেজ কালেকশন সিস্টেমকে নিম্নলিখিত রিসোর্সগুলি পরিষ্কার করতে দেয়: -* [সমাপ্ত পডগুলি](/bn/docs/concepts/workloads/pods/pod-lifecycle/#pod-garbage-collection) -* [সম্পন্ন হওয়া জবগুলি](/bn/docs/concepts/workloads/controllers/ttlafterfinished/) +* [সমাপ্ত পডগুলি](/en/docs/concepts/workloads/pods/pod-lifecycle/#pod-garbage-collection) +* [সম্পন্ন হওয়া জবগুলি](/en/docs/concepts/workloads/controllers/ttlafterfinished/) * [মালিক রেফারেন্স ছাড়া অবজেক্ট](#owners-dependents) * [অব্যবহৃত কন্টেইনার এবং কন্টেইনার ইমেজগুলি](#containers-images) -* [ডায়নামিকভাবে প্রস্তুতকৃত, StorageClass এর জন্য পুনরুদ্ধার নীতির সাথে Delete করা PV](/bn/docs/concepts/storage/persistent-volumes/#delete) -* [ব্যর্থ অথবা মেয়াদ উত্তীর্ণ সার্টিফিকেট সাইনিং রিকোয়েস্ট (CSR)](/bn/docs/reference/access-authn-authz/certificate-signing-requests/#request-signing-process) +* [ডায়নামিকভাবে প্রস্তুতকৃত, StorageClass এর জন্য পুনরুদ্ধার নীতির সাথে Delete করা PV](/en/docs/concepts/storage/persistent-volumes/#delete) +* [ব্যর্থ অথবা মেয়াদ উত্তীর্ণ সার্টিফিকেট সাইনিং রিকোয়েস্ট (CSR)](/en/docs/reference/access-authn-authz/certificate-signing-requests/#request-signing-process) * {{}} নিম্নলিখিত পরিস্থিতিতে মুছে ফেলা : - * যখন ক্লাস্টারটি [ক্লাউড কন্ট্রোলার ম্যানেজার](/bn/docs/concepts/architecture/cloud-controller/) এর মাধ্যমে ক্লাউডে চালানো হয়। - * যখন ক্লাস্টারটি ক্লাউড কন্ট্রোলার ম্যানেজারের মতো প্লাগইন ব্যবহার করে লোকাল পরিবেশে চলে। -* [নোড লিজ অবজেক্ট](/bn/docs/concepts/architecture/nodes/#heartbeats) + * যখন ক্লাস্টারটি [ক্লাউড কন্ট্রোলার ম্যানেজার](/en/docs/concepts/architecture/cloud-controller/) এর মাধ্যমে ক্লাউডে চালানো হয়। + * যখন ক্লাস্টারটি ক্লাউড কন্ট্রোলার ম্যানেজারের মতো প্লাগইন ব্যবহার করে লোকাল পরিবেশে + চলে। +* [নোড লিজ অবজেক্ট](/en/docs/concepts/architecture/nodes/#heartbeats) ## মালিক ও নির্ভরশীল {#owners-dependents} -Kubernetes এ অনেক অবজেক্ট একে অপরের সাথে [**মালিকানাধীন রেফারেন্স**](/bn/docs/concepts/overview/working-with-objects/owners-dependents/) এর মাধ্যমে সংযুক্ত থাকে। মালিকানাধীন রেফারেন্স (Owner Reference) কন্ট্রোল প্লেনকে জানায় কোন অবজেক্ট অন্য অবজেক্টের উপর নির্ভরশীল। Kubernetes মালিকানাধীন রেফারেন্স ব্যবহার করে কন্ট্রোল প্লেন এবং অন্যান্য API ক্লায়েন্টদের একটি অবজেক্ট মুছে ফেলার সময় সংশ্লিষ্ট রিসোর্সগুলি পরিষ্কার করার একটি সুযোগ প্রদান করে। বেশিরভাগ পরিস্থিতিতে Kubernetes স্বয়ংক্রিয়ভাবে মালিকানাধীন রেফারেন্স পরিচালনা করে। +Kubernetes এ অনেক অবজেক্ট একে অপরের সাথে [**মালিকানাধীন রেফারেন্স**](/en/docs/concepts/overview/working-with-objects/owners-dependents/) এর মাধ্যমে সংযুক্ত থাকে। +মালিকানাধীন রেফারেন্স (Owner Reference) কন্ট্রোল প্লেনকে জানায় কোন অবজেক্ট অন্য অবজেক্টের উপর নির্ভরশীল। +Kubernetes মালিকানাধীন রেফারেন্স ব্যবহার করে কন্ট্রোল প্লেন এবং অন্যান্য API ক্লায়েন্টদের একটি অবজেক্ট মুছে ফেলার +সময় সংশ্লিষ্ট রিসোর্সগুলি পরিষ্কার করার একটি সুযোগ প্রদান করে। বেশিরভাগ পরিস্থিতিতে Kubernetes স্বয়ংক্রিয়ভাবে +মালিকানাধীন রেফারেন্স পরিচালনা করে। -মালিকানাধীন সম্পর্ক এবং কিছু রিসোর্সের জন্য ব্যবহার করা [ট্যাগ এবং সিলেক্টর](/bn/docs/concepts/overview/working-with-objects/labels/) এর মধ্যে পার্থক্য রয়েছে। উদাহরণস্বরূপ, একটি `EndpointSlice` অবজেক্ট তৈরি করা একটি {{}} কল্পনা করুন। সার্ভিস ট্যাগগুলি ব্যবহার করে কন্ট্রোল প্লেনকে অনুমোদিত `EndpointSlice` অবজেক্টগুলি সনাক্ত করতে দেয়। ট্যাগের পাশাপাশি, প্রতিটি সার্ভিস দ্বারা পরিচালিত `EndpointSlice` অবজেক্টের একটি মালিকানাধীন রেফারেন্স থাকবে যা সংশ্লিষ্ট সার্ভিসের সাথে সম্পর্কিত। +মালিকানাধীন সম্পর্ক এবং কিছু রিসোর্সের জন্য ব্যবহার করা +[ট্যাগ এবং সিলেক্টর](/en/docs/concepts/overview/working-with-objects/labels/) এর মধ্যে পার্থক্য রয়েছে। +উদাহরণস্বরূপ, একটি `EndpointSlice` অবজেক্ট তৈরি করা একটি {{}} +কল্পনা করুন। সার্ভিস ট্যাগগুলি ব্যবহার করে কন্ট্রোল প্লেনকে অনুমোদিত `EndpointSlice` অবজেক্টগুলি সনাক্ত করতে দেয়। +ট্যাগের পাশাপাশি, প্রতিটি সার্ভিস দ্বারা পরিচালিত `EndpointSlice` অবজেক্টের একটি মালিকানাধীন রেফারেন্স থাকবে যা +সংশ্লিষ্ট সার্ভিসের সাথে সম্পর্কিত। -{{< note >}} -ক্রস-নেমস্পেস মালিকানা রেফারেন্স ডিজাইন দ্বারা নিষিদ্ধ। নেমস্পেস নির্ভরশীলরা ক্লাস্টার-স্কোপড অথবা নেমস্পেসড মালিকদের নির্দিষ্ট করতে পারে। একটি নেমস্পেসড মালিক **অবশ্যই** নির্ভরশীলের সাথে একই নেমস্পেসে থাকতে হবে। যদি এটি না থাকে, তবে মালিকানা রেফারেন্সটি অনুপস্থিত হিসেবে বিবেচিত হয়, এবং মালিকদের সমস্ত অবস্থিতি যাচাই করা হলে নির্ভরশীলটি মুছে ফেলা হবে। -ক্লাস্টার-স্কোপড নির্ভরশীলরা শুধুমাত্র ক্লাস্টার-স্কোপড মালিকদের উল্লেখ করতে পারে। v1.20+ এ, যদি একটি ক্লাস্টার-স্কোপড নির্ভরশীল একটি নেমস্পেসড প্রকারকে মালিক হিসেবে নির্দিষ্ট করে, তবে এটি একটি অযোগ্য মালিকানা রেফারেন্স হিসেবে বিবেচিত হয়, এবং এটি গার্বেজ কালেক্ট করা যাবে না। -v1.20+ এ, যদি গার্বেজ কালেক্টর একটি অবৈধ ক্রস-নেমস্পেস `ownerReference` সনাক্ত করে, অথবা একটি ক্লাস্টার-স্কোপড নির্ভরশীল একটি নেমস্পেসড প্রকারের মালিককে রেফারেন্স করে, তবে একটি সতর্কতা ইভেন্ট যার কারণে `OwnerRefInvalidNamespace` এবং একটি `involvedObject` থাকে যা অবৈধ নির্ভরশীল হিসেবে রিপোর্ট হয়। এধরনের ইভেন্ট দেখতে আপনি চালাতে পারেন kubectl get events `kubectl get events -A --field-selector=reason=OwnerRefInvalidNamespace`। +{{< note >}} +ক্রস-নেমস্পেস মালিকানা রেফারেন্স ডিজাইন দ্বারা নিষিদ্ধ। +নেমস্পেস নির্ভরশীলরা ক্লাস্টার-স্কোপড অথবা নেমস্পেসড মালিকদের নির্দিষ্ট করতে পারে। +একটি নেমস্পেসড মালিক **অবশ্যই** নির্ভরশীলের সাথে একই নেমস্পেসে থাকতে হবে। +যদি এটি না থাকে, তবে মালিকানা রেফারেন্সটি অনুপস্থিত হিসেবে বিবেচিত হয়, এবং মালিকদের সমস্ত +অবস্থিতি যাচাই করা হলে নির্ভরশীলটি মুছে ফেলা হবে। + +ক্লাস্টার-স্কোপড নির্ভরশীলরা শুধুমাত্র ক্লাস্টার-স্কোপড মালিকদের উল্লেখ করতে পারে। v1.20+ এ, +যদি একটি ক্লাস্টার-স্কোপড নির্ভরশীল একটি নেমস্পেসড প্রকারকে মালিক হিসেবে নির্দিষ্ট করে, +তবে এটি একটি অযোগ্য মালিকানা রেফারেন্স হিসেবে বিবেচিত হয়, এবং এটি গার্বেজ কালেক্ট করা যাবে না। + +v1.20+ এ, যদি গার্বেজ কালেক্টর একটি অবৈধ ক্রস-নেমস্পেস `ownerReference` সনাক্ত করে, +অথবা একটি ক্লাস্টার-স্কোপড নির্ভরশীল একটি নেমস্পেসড প্রকারের মালিককে রেফারেন্স করে, তবে একটি সতর্কতা ইভেন্ট +যার কারণে `OwnerRefInvalidNamespace` এবং একটি `involvedObject` থাকে যা অবৈধ নির্ভরশীল হিসেবে রিপোর্ট হয়। +এধরনের ইভেন্ট দেখতে আপনি চালাতে পারেন +kubectl get events `kubectl get events -A --field-selector=reason=OwnerRefInvalidNamespace`। {{< /note >}} ## ক্যাসকেডিং ডিলিশন {#cascading-deletion} -Kubernetes সেসব অবজেক্ট পরীক্ষা করে এবং মুছে ফেলে, যেগুলোর আর মালিকানা রেফারেন্স নেই, যেমন `ReplicaSet` মুছে ফেললে বাকি থাকা পডগুলো। যখন আপনি একটি অবজেক্ট মুছে ফেলেন, তখন আপনি নিয়ন্ত্রণ করতে পারেন যে কুবার্নেটিস ঐ অবজেক্টের ডিপেনডেন্টসগুলো স্বয়ংক্রিয়ভাবে মুছে ফেলবে কিনা, এই প্রক্রিয়াকে বলা হয় *কাসকেডিং ডিলিশন*। কাসকেডিং ডিলিশনের দুটি ধরনের থাকে, যা নিচে ব্যাখ্যা করা হয়েছে: +Kubernetes সেসব অবজেক্ট পরীক্ষা করে এবং মুছে ফেলে, যেগুলোর আর মালিকানা রেফারেন্স নেই, +যেমন `ReplicaSet` মুছে ফেললে বাকি থাকা পডগুলো। যখন আপনি একটি অবজেক্ট মুছে ফেলেন, +তখন আপনি নিয়ন্ত্রণ করতে পারেন যে কুবার্নেটিস ঐ অবজেক্টের ডিপেনডেন্টসগুলো স্বয়ংক্রিয়ভাবে +মুছে ফেলবে কিনা, এই প্রক্রিয়াকে বলা হয় *কাসকেডিং ডিলিশন*। +কাসকেডিং ডিলিশনের দুটি ধরনের থাকে, যা নিচে ব্যাখ্যা করা হয়েছে: * ফরগ্রাউন্ড ক্যাসকেডিং ডিলিশন * ব্যাকগ্রাউন্ড ক্যাসকেডিং ডিলিশন -আপনি গার্বেজ কালেকশন কিভাবে এবং কখন মালিকানা রেফারেন্সসমূহের মাধ্যমে রিসোর্স মুছে ফেলে Kubernetes {{}} ব্যবহার করে নিয়ন্ত্রণ করতে পারেন। - +আপনি গার্বেজ কালেকশন কিভাবে এবং কখন মালিকানা রেফারেন্সসমূহের মাধ্যমে রিসোর্স মুছে ফেল +ে Kubernetes {{}} ব্যবহার করে নিয়ন্ত্রণ করতে পারেন। ### ফরগ্রাউন্ড ক্যাসকেডিং ডিলিশন {#foreground-deletion} -ফরগ্রাউন্ড ক্যাসকেডিং ডিলিশনে, আপনি যে মালিকানা অবজেক্টটি মুছে ফেলছেন সেটি প্রথমে একটি *ডিলিশন ইন প্রগ্রেস* অবস্থায় চলে যায়। এই অবস্থায়, মালিকানা অবজেক্টের সাথে নিম্নলিখিত ঘটনা ঘটে: - -* Kubernetes API সার্ভার অবজেক্টের `metadata.deletionTimestamp` ক্ষেত্রটিকে সেই সময়ে সেট করে যখন অবজেক্টটি মুছে ফেলার জন্য চিহ্নিত করা হয়। -* Kubernetes API সার্ভার এছাড়াও `metadata.finalizers` ক্ষেত্রটিকে `foregroundDeletion` এ সেট করে। -* অবজেক্টটি Kubernetes API-এর মাধ্যমে দৃশ্যমান থাকে যতক্ষণ না মুছে ফেলার প্রক্রিয়া সম্পূর্ণ হয়। - -মালিকানা অবজেক্টটি ডিলিশন ইন প্রগ্রেস অবস্থায় চলে গেলে, কন্ট্রোলার নির্ভরশীল অবজেক্টগুলি মুছে ফেলে। সমস্ত নির্ভরশীল অবজেক্ট মুছে ফেলার পর কন্ট্রোলার মালিকানা অবজেক্টটি মুছে ফেলবে। এই মুহূর্তে, অবজেক্টটি Kubernetes API-এ আর দৃশ্যমান থাকে না। - -ফরগ্রাউন্ড ক্যাসকেডিং ডিলিশন চলাকালীন, একমাত্র নির্ভরশীলরা যারা মালিক মুছে ফেলার প্রতিবন্ধকতা সৃষ্টি করে তা হল যাদের `ownerReference.blockOwnerDeletion=true` ক্ষেত্র রয়েছে। আরো জানার জন্য [ফরগ্রাউন্ড ক্যাসকেডিং ডিলিশন ব্যবহার করুন।](/bn/docs/tasks/administer-cluster/use-cascading-deletion/#use-foreground-cascading-deletion) +ফরগ্রাউন্ড ক্যাসকেডিং ডিলিশনে, আপনি যে মালিকানা অবজেক্টটি মুছে ফেলছেন সেটি প্রথমে +একটি *ডিলিশন ইন প্রগ্রেস* অবস্থায় চলে যায়। এই অবস্থায়, মালিকানা অবজেক্টের সাথে +নিম্নলিখিত ঘটনা ঘটে: + +* Kubernetes API সার্ভার অবজেক্টের `metadata.deletionTimestamp` ক্ষেত্রটিকে সেই সময়ে সেট করে যখন + অবজেক্টটি মুছে ফেলার জন্য চিহ্নিত করা হয়। +* Kubernetes API সার্ভার এছাড়াও `metadata.finalizers` ক্ষেত্রটিকে + `foregroundDeletion` এ সেট করে। +* অবজেক্টটি Kubernetes API-এর মাধ্যমে দৃশ্যমান থাকে যতক্ষণ না মুছে ফেলার প্রক্রিয়া + সম্পূর্ণ হয়। + +মালিকানা অবজেক্টটি ডিলিশন ইন প্রগ্রেস অবস্থায় চলে গেলে, কন্ট্রোলার নির্ভরশীল অবজেক্টগুলি মুছে ফেলে। +সমস্ত নির্ভরশীল অবজেক্ট মুছে ফেলার পর কন্ট্রোলার মালিকানা অবজেক্টটি মুছে ফেলবে। +এই মুহূর্তে, অবজেক্টটি +Kubernetes API-এ আর দৃশ্যমান থাকে না। + +ফোরগ্রাউন্ড ক্যাসকেডিং ডিলিশনের সময়, শুধুমাত্র সেই ডিপেনডেন্ট অবজেক্টগুলো +মালিক (Owner) ডিলিশন ব্লক করে, যেগুলোর +`ownerReference.blockOwnerDeletion=true` ফিল্ড সেট করা আছে এবং যেগুলো +গারবেজ কালেকশন কন্ট্রোলারের ক্যাশে সংরক্ষিত রয়েছে। গারবেজ কালেকশন +কন্ট্রোলারের ক্যাশে এমন অবজেক্ট থাকতে নাও পারে, যেগুলোর রিসোর্স টাইপ +সফলভাবে তালিকাভুক্ত (listed) বা পর্যবেক্ষণ (watched) করা যায় না, অথবা যেগুলো +মালিক অবজেক্ট মুছে ফেলার সঙ্গে সঙ্গে তৈরি হয়। বিস্তারিত জানতে দেখুন: [ফরগ্রাউন্ড ক্যাসকেডিং ডিলিশন ব্যবহার করুন।](/en/docs/tasks/administer-cluster/use-cascading-deletion/#use-foreground-cascading-deletion) ### ব্যাকগ্রাউন্ড ক্যাসকেডিং ডিলিশন {#background-deletion} -ব্যাকগ্রাউন্ড ক্যাসকেডিং ডিলিশনে, Kubernetes API সার্ভার অবজেক্টটি অবিলম্বে মুছে ফেলে এবং কন্ট্রোলার ব্যাকগ্রাউন্ডে নির্ভরশীল অবজেক্টগুলি পরিষ্কার করে। স্বাভাবিকভাবে, Kubernetes ব্যাকগ্রাউন্ড ক্যাসকেডিং ডিলিশন ব্যবহার করে যতক্ষণ না আপনি ম্যানুয়ালি ফরগ্রাউন্ড ডিলিশন ব্যবহার করেন বা নির্ভরশীল অবজেক্টগুলি অরফান না করেন। +ব্যাকগ্রাউন্ড ক্যাসকেডিং ডিলিশনের ক্ষেত্রে, কুবার্নেটিস API সার্ভার মালিক (Owner) +অবজেক্টটি সঙ্গে সঙ্গে মুছে ফেলে এবং গারবেজ কালেকশন কন্ট্রোলার (ডিফল্ট বা কাস্টম) ব্যাকগ্রাউন্ডে ডিপেনডেন্ট অবজেক্টগুলোর পরিষ্কার-পরিচ্ছন্নতার কাজ সম্পন্ন করে। +যদি একটি ফাইনালাইজার (Finalizer) থাকে, তবে এটি নিশ্চিত করে যে সমস্ত +প্রয়োজনীয় ক্লিন-আপ কাজ শেষ না হওয়া পর্যন্ত অবজেক্টগুলো মুছে ফেলা হবে না। +ডিফল্টভাবে, কুবার্নেটিস ব্যাকগ্রাউন্ড ক্যাসকেডিং ডিলিশন ব্যবহার করে, যদি না আপনি ম্যানুয়ালি +ফোরগ্রাউন্ড ডিলিশন ব্যবহার করেন বা ডিপেনডেন্ট অবজেক্টগুলোকে অনাথ (Orphan) করে রাখার সিদ্ধান্ত নেন। -আরো জানার জন্য [ব্যাকগ্রাউন্ড ক্যাসকেডিং ডিলিশন ব্যবহার করুন।](/bn/docs/tasks/administer-cluster/use-cascading-deletion/#use-background-cascading-deletion) -to learn more. +আরও জানতে [ব্যাকগ্রাউন্ড ক্যাসকেডিং ডিলিশন ব্যবহার করুন।](/en/docs/tasks/administer-cluster/use-cascading-deletion/#use-background-cascading-deletion) +দেখুন। ### অরফানড ডিপেনডেন্টস {#orphaned-dependents} -যখন কুবার্নেটিস একটি মালিক অবজেক্ট মুছে ফেলে, তখন বাকি থাকা ডিপেনডেন্টসগুলোকে অরফান অবজেক্ট বলা হয়। ডিফল্টভাবে, কুবার্নেটিস ডিপেনডেন্ট অবজেক্টগুলো মুছে ফেলে। এই আচরণটি কিভাবে ওভাররাইড করবেন তা জানতে, দেখুন [মালিক অবজেক্ট মুছে ফেলুন এবং অরফান ডিপেনডেন্টস](/bn/docs/tasks/administer-cluster/use-cascading-deletion/#set-orphan-deletion-policy) +যখন কুবার্নেটিস একটি মালিক অবজেক্ট মুছে ফেলে, তখন বাকি থাকা ডিপেনডেন্টসগুলোকে অরফান অবজেক্ট বলা হয়। +ডিফল্টভাবে, কুবার্নেটিস ডিপেনডেন্ট অবজেক্টগুলো মুছে ফেলে। +এই আচরণটি কিভাবে ওভাররাইড করবেন তা জানতে, দেখুন [মালিক অবজেক্ট মুছে ফেলুন এবং অরফান ডিপেনডেন্টস](/en/docs/tasks/administer-cluster/use-cascading-deletion/#set-orphan-deletion-policy) ## অব্যবহৃত কনটেইনার এবং চিত্রগুলির গার্বেজ কালেকশন {#containers-images} -{{}} প্রতি দুই মিনিটে অব্যবহৃত চিত্রগুলির গার্বেজ কালেকশন এবং প্রতি মিনিটে অব্যবহৃত কনটেইনারগুলির গার্বেজ কালেকশন করে। বাহ্যিক গার্বেজ কালেকশন টুলস ব্যবহার থেকে বিরত থাকুন, কারণ এটি কিউবিলেটের আচরণ ভেঙে ফেলতে পারে এবং এমন কনটেইনারগুলি মুছে ফেলতে পারে যা থাকার উচিত। -অব্যবহৃত কনটেইনার এবং চিত্রগুলির গার্বেজ কালেকশন জন্য বিকল্প কনফিগার করতে, কিউবিলেটটি একটি [কনফিগারেশন ফাইল](/bn/docs/tasks/administer-cluster/kubelet-config-file/) ব্যবহার করে কনফিগার করুন এবং গার্বেজ কালেকশন সম্পর্কিত প্যারামিটারগুলি পরিবর্তন করুন [`KubeletConfiguration`](/bn/docs/reference/config-api/kubelet-config.v1beta1/) +{{}} প্রতি দুই মিনিটে অব্যবহৃত চিত্রগুলির +গার্বেজ কালেকশনএবং প্রতি মিনিটে অব্যবহৃত কনটেইনারগুলির গার্বেজ কালেকশন করে। বাহ্যিক গার্বেজ +কালেকশন টুলস ব্যবহার থেকে বিরতথাকুন,কারণ এটি কিউবিলেটের আচরণ ভেঙে ফেলতে পারে এবং এমন +কনটেইনারগুলি মুছে ফেলতে পারে যা থাকার উচিত। + +অব্যবহৃত কনটেইনার এবং চিত্রগুলির গার্বেজ কালেকশন জন্য বিকল্প কনফিগার করতে, +কিউবিলেটটি একটি [কনফিগারেশন ফাইল](/en/docs/tasks/administer-cluster/kubelet-config-file/) +ব্যবহার করে কনফিগার করুন এবং গার্বেজ কালেকশন সম্পর্কিত প্যারামিটারগুলি পরিবর্তন করুন +[`KubeletConfiguration`](/en/docs/reference/config-api/kubelet-config.v1beta1/) রিসোর্সটি ব্যবহার করে। ### কনটেইনার চিত্রের জীবনচক্র {#container-image-lifecycle} -কুবেরনেটিস তার *চিত্র ম্যানেজার(Image Manager)* এর মাধ্যমে সমস্ত চিত্রের জীবনচক্র পরিচালনা করে, যা কিউবিলেটের অংশ এবং {{< glossary_tooltip text="cadvisor" term_id="cadvisor" >}}এর সহযোগিতায়. Kubelet -গার্বেজ কালেকশন সিদ্ধান্ত নেবার সময় নিম্নলিখিত ডিস্ক ব্যবহার সীমা বিবেচনা করে: +কুবেরনেটিস তার *চিত্র ম্যানেজার(Image Manager)* +এর মাধ্যমে সমস্ত চিত্রের জীবনচক্র পরিচালনা করে, +যা কিউবিলেটের অংশ এবং {{< glossary_tooltip text="cadvisor" term_id="cadvisor" >}} +এর সহযোগিতায়. Kubelet গার্বেজ কালেকশন সিদ্ধান্ত নেবার সময় নিম্নলিখিত ডিস্ক ব্যবহার সীমা +বিবেচনা করে: * `HighThresholdPercent` * `LowThresholdPercent` -ডিস্ক ব্যবহারের পরিমাণ নির্ধারিত `HighThresholdPercent` মানের চেয়ে বেশি হলে গার্বেজ কালেকশন ট্রিগার হয়, যা চিত্র (ইমেজ) মুছে ফেলে। এটি সর্বশেষ ব্যবহারের সময়ের ভিত্তিতে প্রাচীনতম চিত্র থেকে শুরু করে মুছে ফেলা হয়। Kubelet চিত্র মুছতে থাকে যতক্ষণ না ডিস্ক ব্যবহারের পরিমাণ `LowThresholdPercent` মানে নেমে আসে। +নির্ধারিত `HighThresholdPercent` মানের চেয়ে ডিস্ক ব্যবহারের পরিমাণ বেশি হলে +গারবেজ কালেকশন প্রক্রিয়া শুরু হয়, যা সর্বশেষ ব্যবহারের সময় অনুযায়ী +ইমেজগুলো মুছে ফেলে, প্রাচীনতম থেকে শুরু করে। কিউবলেট (kubelet) ইমেজ +মুছতে থাকে যতক্ষণ না ডিস্ক ব্যবহারের পরিমাণ `LowThresholdPercent` মানে পৌঁছে। #### অব্যবহৃত কন্টেইনার ইমেজগুলোর জন্য গারবেজ কালেকশন {#image-maximum-age-gc} {{< feature-state feature_gate_name="ImageMaximumGCAge" >}} -একটি বিটা ফিচার হিসেবে, আপনি নির্দিষ্ট করতে পারেন যে একটি স্থানীয় ইমেজ সর্বাধিক কতক্ষণ অব্যবহৃত থাকতে পারবে, ডিস্ক ব্যবহারের পরিমাণ নির্বিশেষে। এটি একটি kubelet সেটিং, যা প্রতিটি নোডের জন্য কনফিগার করা যায়। - -এই সেটিং কনফিগার করতে, কুবলেটের জন্য `ImageMaximumGCAge` -[ফিচার গেট](/bn/docs/reference/command-line-tools-reference/feature-gates/) সক্ষম করুন এবং kubelet কনফিগারেশন ফাইলে `imageMaximumGCAge` ফিল্ডের জন্য একটি মান সেট করুন। +একটি বিটা ফিচার হিসেবে, আপনি নির্দিষ্ট করতে পারেন যে একটি স্থানীয় ইমেজ সর্বাধিক কতক্ষণ অব্যবহৃত থাকতে পারবে, +ডিস্ক ব্যবহারের পরিমাণ নির্বিশেষে। এটি একটি kubelet সেটিং, যা প্রতিটি নোডের জন্য কনফিগার করা যায়। -মানটি কুবার্নেটিসের সময়কাল (duration) হিসেবে নির্ধারিত হয়। Kubelet কনফিগারেশন ফাইলে `imageMaximumGCAge` ফিল্ডের জন্য বৈধ সময় এককগুলি হলো: +এই সেটিং কনফিগার করতে হলে, কিউবলেট কনফিগারেশন ফাইলে +`imageMaximumGCAge` ফিল্ডের জন্য একটি মান নির্ধারণ করতে হবে। -- "ns" ন্যানোসেকেন্ডের জন্য -- "us" বা "µs" মাইক্রোসেকেন্ডের জন্য -- "ms" মিলিসেকেন্ডের জন্য -- "s" সেকেন্ডের জন্য -- "m" মিনিটের জন্য -- "h" ঘন্টার জন্য +মানটি Kubernetes-এর {{< glossary_tooltip text="সময়কাল" term_id="duration" >}} হিসেবে নির্ধারিত হয়। +আরও বিস্তারিত জানতে [সময়কাল](/docs/reference/glossary/?all=true#term-duration) +glossary দেখুন। -উদাহরণস্বরূপ, আপনি যদি `imageMaximumGCAge` ফিল্ডের মান `12h 45m` সেট করেন, তাহলে এর অর্থ হবে ১২ ঘন্টা এবং ৪৫ মিনিট। +উদাহরণস্বরূপ, আপনি যদি `imageMaximumGCAge` ফিল্ডের মান `12h 45m` সেট করেন, +তাহলে এর অর্থ হবে ১২ ঘন্টা এবং ৪৫ মিনিট। {{< note >}} -এই ফিচারটি কিউবিলেট (kubelet) পুনরায় চালু হওয়ার (restart) পরেও ইমেজ ব্যবহারের তথ্য সংরক্ষণ করে না। যদি কিউবিলেট রিস্টার্ট হয়, তাহলে ট্র্যাক করা ইমেজের বয়স পুনরায় শূন্যে সেট হয়, যার ফলে কিউবিলেটকে সম্পূর্ণ `imageMaximumGCAge` সময় অপেক্ষা করতে হয়, এরপর ইমেজের বয়সের ভিত্তিতে গারবেজ কালেকশনের জন্য যোগ্যতা নির্ধারণ করা হয়। +এই ফিচারটি কিউবিলেট (kubelet) পুনরায় চালু হওয়ার (restart) পরেও ইমেজ ব্যবহারের তথ্য সংরক্ষণ করে না। +যদি কিউবিলেট রিস্টার্ট হয়, তাহলে ট্র্যাক করা ইমেজের বয়স পুনরায় শূন্যে সেট হয়, যার ফলে কিউবিলেটকে সম্পূর্ণ +`imageMaximumGCAge` সময় অপেক্ষা করতে হয়, এরপর ইমেজের বয়সের ভিত্তিতে গারবেজ কালেকশনের জন্য +যোগ্যতা নির্ধারণ করা হয়। {{< /note>}} ### কন্টেইনার গারবেজ কালেকশন {#container-image-garbage-collection} -কিউবিলেট (kubelet) অব্যবহৃত কন্টেইনারগুলো গারবেজ কালেকশন করে নিম্নলিখিত ভ্যারিয়েবলগুলির ভিত্তিতে, যেগুলো আপনি সংজ্ঞায়িত করতে পারেন: +কিউবিলেট (kubelet) অব্যবহৃত কন্টেইনারগুলো গারবেজ কালেকশন করে নিম্নলিখিত ভ্যারিয়েবলগুলির ভিত্তিতে, +যেগুলো আপনি সংজ্ঞায়িত করতে পারেন: -* MinAge: এটি হল সেই ন্যূনতম বয়স, যার পরে কিউবিলেট একটি কন্টেইনার গারবেজ কালেক্ট করতে পারে। এটি নিষ্ক্রিয় করতে `0` এ সেট করতে হবে। -* MaxPerPodContainer: প্রতিটি পডের জন্য মৃত কন্টেইনারের সর্বাধিক সংখ্যা। এটি নিষ্ক্রিয় করতে ` 0` এ সেট করতে হবে। -* MaxContainers: ক্লাস্টারের জন্য মৃত কন্টেইনারের সর্বাধিক সংখ্যা। এটি নিষ্ক্রিয় করতে কম ` 0` এ সেট করতে হবে। +* `MinAge`: এটি হল সেই ন্যূনতম বয়স, যার পরে কিউবিলেট একটি কন্টেইনার গারবেজ কালেক্ট করতে পারে। এটি নিষ্ক্রিয় করতে `0` + সেট করতে হবে। +* `MaxPerPodContainer`: প্রতিটি পডের জন্য মৃত কন্টেইনারের সর্বাধিক সংখ্যা। + এটি নিষ্ক্রিয় করতে `0` এ সেট করতে হবে। +* `MaxContainers`: ক্লাস্টারের জন্য মৃত কন্টেইনারের সর্বাধিক সংখ্যা। + এটি নিষ্ক্রিয় করতে কম ` 0` এ সেট করতে হবে। -এই ভ্যারিয়েবলগুলির পাশাপাশি, কিউবিলেট অজানা এবং মুছে ফেলা কন্টেইনারগুলিকেও গারবেজ কালেক্ট করে, সাধারণত সবচেয়ে পুরনো কন্টেইনারগুলো প্রথমে মুছে ফেলে। +এই ভ্যারিয়েবলগুলির পাশাপাশি, কিউবিলেট অজানা এবং মুছে ফেলা কন্টেইনারগুলিকেও গারবেজ কালেক্ট করে, +সাধারণত সবচেয়ে পুরনো কন্টেইনারগুলো প্রথমে মুছে ফেলে। -`MaxPerPodContaine`r এবং `MaxContainers` একে অপরের সাথে সংঘর্ষে পড়তে পারে এমন পরিস্থিতিতে, যেখানে একটি পডে সর্বাধিক কন্টেইনার সংখ্যা (MaxPerPodContainer) ক্লাস্টারের অনুমোদিত মোট মৃত কন্টেইনারের সংখ্যা (MaxContainers) থেকে বেশি হতে পারে। এই পরিস্থিতিতে, কিউবিলেট সংঘর্ষ সমাধান করতে MaxPerPodContainer এর মান সমন্বয় করে। একটি খারাপ পরিস্থিতি হতে পারে MaxPerPodContainer কে `1` এ নামিয়ে আনা এবং সবচেয়ে পুরনো কন্টেইনারগুলো মুছে ফেলা। এছাড়াও, যে পডগুলি মুছে ফেলা হয়েছে, তাদের মালিকানাধীন কন্টেইনারগুলো MinAge এর চেয়ে পুরনো হলে মুছে ফেলা হয়। +`MaxPerPodContaine`r এবং `MaxContainers` একে অপরের সাথে সংঘর্ষে পড়তে পারে এমন পরিস্থিতিতে, +যেখানে একটি পডে সর্বাধিক কন্টেইনার সংখ্যা (`MaxPerPodContainer`) ক্লাস্টারের অনুমোদিত মোট মৃত +কন্টেইনারের সংখ্যা (`MaxContainers`) অতিক্রম করতে পারে। +এই পরিস্থিতিতে, কিউবিলেট সংঘর্ষ সমাধান করতে `MaxPerPodContainer` এর মান সামঞ্জস্য করে। +সবচেয়ে খারাপ পরিস্থিতিতে, `MaxPerPodContainer`-এর মান `1` +পর্যন্ত কমিয়ে দিয়ে সবচেয়ে পুরনো কন্টেইনার মুছে ফেলা হতে পারে। +এছাড়াও, যেসব কন্টেইনার এখন আর কোনো পডের মালিকানায় নেই (অর্থাৎ, সংশ্লিষ্ট পড মুছে ফেলা +হয়েছে), সেগুলো `MinAge` অতিক্রম করার পর স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়। {{}} কিউবিলেট (kubelet) শুধুমাত্র সেই কন্টেইনারগুলো গারবেজ কালেকশন করে, যেগুলোর এটি পরিচালনা করে। @@ -124,13 +196,15 @@ to learn more. ## গারবেজ কালেকশন কনফিগার করা {#configuring-gc} -আপনি যেসব কন্ট্রোলার রিসোর্স পরিচালনা করছে, তাদের জন্য নির্দিষ্ট অপশন কনফিগার করে রিসোর্সের গারবেজ কালেকশন টিউন করতে পারেন। নিম্নলিখিত পৃষ্ঠাগুলো আপনাকে গারবেজ কালেকশন কনফিগার করতে সাহায্য করবে: +আপনি যেসব কন্ট্রোলার রিসোর্স পরিচালনা করছে, তাদের জন্য নির্দিষ্ট অপশন +কনফিগার করে রিসোর্সের গারবেজ কালেকশন টিউন করতে পারেন। নিম্নলিখিত +পৃষ্ঠাগুলো আপনাকে গারবেজ কালেকশন কনফিগার করতে সাহায্য করবে: -* [কুবার্নেটিস অবজেক্টের কাসকেডিং ডিলিশন কনফিগার করা](/bn/docs/tasks/administer-cluster/use-cascading-deletion/) -* [শেষ হওয়া জবগুলোর ক্লিনআপ কনফিগার করা](/bn/docs/concepts/workloads/controllers/ttlafterfinished/) +* [কুবার্নেটিস অবজেক্টের কাসকেডিং ডিলিশন কনফিগার করা](/en/docs/tasks/administer-cluster/use-cascading-deletion/) +* [শেষ হওয়া জবগুলোর ক্লিনআপ কনফিগার করা](/en/docs/concepts/workloads/controllers/ttlafterfinished/) ## {{% heading "whatsnext" %}} -* কুবার্নেটিস অবজেক্টের [মালিকানা সম্পর্কে আরও জানুন.](/bn/docs/concepts/overview/working-with-objects/owners-dependents/). -* কুবার্নেটিসের [ফাইনালাইজার সম্পর্কে আরও জানুন.](/bn/docs/concepts/overview/working-with-objects/finalizers/). -* শেষ হওয়া জবগুলো ক্লিনআপ করার জন্য [TTL কন্ট্রোলার](/bn/docs/concepts/workloads/controllers/ttlafterfinished/) সম্পর্কে জানুন। +* কুবার্নেটিস অবজেক্টের [মালিকানা সম্পর্কে আরও জানুন.](/en/docs/concepts/overview/working-with-objects/owners-dependents/). +* কুবার্নেটিসের [ফাইনালাইজার সম্পর্কে আরও জানুন.](/en/docs/concepts/overview/working-with-objects/finalizers/). +* শেষ হওয়া জবগুলো ক্লিনআপ করার জন্য [TTL কন্ট্রোলার](/en/docs/concepts/workloads/controllers/ttlafterfinished/) সম্পর্কে জানুন।