diff --git a/content/bn/docs/concepts/workloads/pods/_index.md b/content/bn/docs/concepts/workloads/pods/_index.md new file mode 100644 index 0000000000..748f9fbc68 --- /dev/null +++ b/content/bn/docs/concepts/workloads/pods/_index.md @@ -0,0 +1,398 @@ +--- +title: Pods +content_type: concept +weight: 10 +no_list: true +--- + + + +_পড_ হলো কম্পিউটিংয়ের ক্ষুদ্রতম স্থাপনযোগ্য একক যা আপনি কুবারনেটিসে তৈরি এবং পরিচালনা করতে পারেন। + +একটি পড (তিমি বা মটর শুঁটির একটি পডের মতো) এক বা একাধিক +{{< glossary_tooltip text="কন্টেইনার" term_id="container" >}} এর একটি গ্রুপ , শেয়ার্ড স্টোরেজ এবং নেটওয়ার্ক রিসোর্স গুলির সাথে, এবং কন্টেইনার কীভাবে চালানো যায় তার জন্য একটি স্পেসিফিকেশন। একটি পডের সামগ্রী সর্বদা সহ-অবস্থিত এবং +সহ-নির্ধারিত, এবং একটি শেয়ার্ড প্রসঙ্গে চালে। একটি পড মডেল একটি +অ্যাপ্লিকেশন-নির্দিষ্ট "লজিক্যাল হোস্ট": এটিতে এক বা একাধিক অ্যাপ্লিকেশন রয়েছে +কন্টেইনার যা তুলনামূলকভাবে শক্তভাবে মিলিত হয়। +নন-ক্লাউড প্রেক্ষাপটে, একই ভৌত (ফিজিক্যাল) বা ভার্চুয়াল মেশিনে সঞ্চালিত অ্যাপ্লিকেশনগুলি একই লজিক্যাল হোস্টে নির্বাহিত ক্লাউড অ্যাপ্লিকেশনগুলির সাথে সাদৃশ্যপূর্ণ। + +পাশাপাশি অ্যাপ্লিকেশন কন্টেইনারে, একটি পড থাকতে পারে +{{< glossary_tooltip text="init কন্টেইনার" term_id="init-container" >}} যেটি চলে +পড স্টার্টআপের সময়। আপনি ইনজেকশনও করতে পারেন +{{< glossary_tooltip text="ephemeral কন্টেইনার" term_id="ephemeral-container" >}} +একটি চলমান পড ডিবাগ করার জন্য। + + + +## পড কি ? + +{{< note >}} +ক্লাস্টারের প্রতিটি নোডে আপনাকে একটি [কন্টেইনার রানটাইম](/bn/docs/setup/production-environment/container-runtimes/) ইনস্টল +করতে হবে যাতে পডগুলি সেখানে চলতে পারে। +{{< /note >}} + +একটি পডের শেয়ার্ড প্রসঙ্গ হল লিনাক্স নেমস্পেস(namespaces), cgroups এবং +বিচ্ছিন্নতার সম্ভাব্য অন্যান্য দিক - একই জিনিস যা একটি {{< glossary_tooltip text="কন্টেইনার" term_id="container" >}} বিচ্ছিন্ন করে। একটি পডের প্রেক্ষাপটের মধ্যে, পৃথক অ্যাপ্লিকেশন থাকতে পারে +আরও উপ-বিচ্ছিন্নতা প্রয়োগ করা হয়েছে। + +একটি পড শেয়ার্ড নেমস্পেস এবং শেয়ার্ড ফাইল সিস্টেম ভলিউম সহ কন্টেইনারগুলির সেটের অনুরূপ। + +কুবারনেটিস ক্লাস্টারের পড প্রধানত দুটি উপায়ে ব্যবহৃত হয়: + +* **পড যা একটি একক কন্টেইনার চালায়**" এক-কন্টেইনার-প্রতি-পড" মডেলটি + কুবারনেটিসের সবচেয়ে সাধারণ ব্যবহার; এই ক্ষেত্রে, আপনি একটি একক কন্টেইনারর চারপাশে একটি মোড়ক হিসাবে + একটি পডকে ভাবতে পারেন; কুবারনেটিস সরাসরি কন্টেইনারগুলি পরিচালনা করার পরিবর্তে + পডগুলি পরিচালনা করে। +* **পডগুলি যা একাধিক কন্টেইনার চালায় যা একসাথে কাজ করা দরকার** একটি পড + [একাধিক সহ-অবস্থিত কন্টেইনার](#how-pods-manage-multiple-containers) + দ্বারা গঠিত একটি অ্যাপ্লিকেশনকে এনক্যাপসুলেট(encapsulate) করতে পারে + যেগুলি শক্তভাবে সংযুক্ত এবং রিসোর্স ভাগ করতে হবে৷ এই সহ-অবস্থিত কন্টেইনারগুলি + একটি একক সমন্বিত ইউনিট গঠন করে। + + একটি একক পডে একাধিক সহ-অবস্থিত এবং সহ-পরিচালিত কন্টেইনারে গোষ্ঠীবদ্ধ করা একটি + অপেক্ষাকৃত উন্নত ব্যবহারের ক্ষেত্রে। আপনার এই প্যাটার্নটি কেবলমাত্র নির্দিষ্ট ক্ষেত্রে ব্যবহার করা উচিত + যেখানে আপনার কন্টেইনারে শক্তভাবে সংযুক্ত করা হয়েছে। + + প্রতিলিপি প্রদানের জন্য আপনাকে একাধিক কন্টেইনার চালানোর দরকার নেই (স্থিতিস্থাপকতার জন্য + বা ক্ষমতা); আপনার একাধিক প্রতিলিপি প্রয়োজন হলে, দেখুন + [ওয়ার্কলোড ম্যানেজমেন্ট](/bn/docs/concepts/workloads/controllers/)। + +## পডের ব্যবহার + +নিচে একটি পডের উদাহরণ দেওয়া হল যেটিতে একটি কন্টেইনার রয়েছে যা `nginx:1.14.2` ইমেজটি চালাচ্ছে। + +{{% code_sample file="pods/simple-pod.yaml" %}} + +উপরে দেখানো পড তৈরি করতে, নিম্নলিখিত কমান্ডটি চালান: +```shell +kubectl apply -f https://k8s.io/examples/pods/simple-pod.yaml +``` + +পড সাধারণত সরাসরি তৈরি করা হয় না এবং ওয়ার্কলোড রিসোর্স ব্যবহার করে তৈরি করা হয়। +কিভাবে পডগুলিব্যবহার করা হয় ওয়ার্কলোড রিসোর্স সহ সে সম্পর্কে আরও তথ্যের জন্য +[পডগুলির সাথে কাজ](#working-with-pods) দেখুন। + +### পড পরিচালনার জন্য ওয়ার্কলোডের রিসোর্স + +সাধারণত আপনাকে সরাসরি পড তৈরি করতে হবে না, এমনকি সিঙ্গেলটন পডও। পরিবর্তে, ওয়ার্কলোড রিসোর্সগুলি ব্যবহার করে সেগুলি তৈরি করুন যেমন {{< glossary_tooltip text="ডিপলয়ম্যান্ট" +term_id="deployment" >}} বা {{< glossary_tooltip text="জব" term_id="job" >}}। +আপনার পডের অবস্থা ট্র্যাক করার প্রয়োজন হলে, বিবেচনা করুন +{{< glossary_tooltip text="স্টেটফুলসেট" term_id="statefulset" >}} রিসোর্স। + + +প্রতিটি পড একটি প্রদত্ত অ্যাপ্লিকেশনের একটি একক উদাহরণ চালানোর জন্য বোঝানো হয়। যদি আপনি চান +আপনার অ্যাপ্লিকেশনকে অনুভূমিকভাবে স্কেল করতে (আরো উদাহরণ চালানোর মাধ্যমে আরো সামগ্রিক রিসোর্স +প্রদান করতে), আপনার একাধিক পড ব্যবহার করা উচিত, প্রতিটি উদাহরণের জন্য একটি। +কুবারনেটিসে-এ, এটিকে সাধারণত _প্রতিলিপি_ হিসাবে উল্লেখ করা হয়। +প্রতিলিপিকৃত পডগুলি সাধারণত একটি ওয়ার্কলোড রিসোর্স +{{< glossary_tooltip text="কন্ট্রোলার" term_id="controller" >}} দ্বারা একটি গ্রুপ হিসাবে তৈরি এবং পরিচালিত হয়। + +দেখুন [পড এবং কন্ট্রোলার](#pods-and-controllers) আরও তথ্যের জন্য কিভাবে +কুবারনেটিস অ্যাপ্লিকেশন স্কেলিং এবং অটো-হিলিং বাস্তবায়নের জন্য ওয়ার্কলোড রিসোর্স এবং তাদের কন্ট্রোলার +ব্যবহার করে। + +পডগুলি স্থানীয়ভাবে তাদের উপাদান কন্টেইনারের জন্য দুই ধরণের ভাগ করা রিসোর্স সরবরাহ করে: +[নেটওয়ার্কিং](#pod-networking) এবং [স্টোরেজ](#pod-storage)। + + +## পডগুলি নিয়ে কাজ করা + +আপনি খুবই কম সময় সরাসরি কুবারনেটিস-এ এমনকি সিঙ্গেলটন পডগুলি-তে পৃথক পড তৈরি করবেন। এই +কারণে পডগুলি তুলনামূলকভাবে অল্পক্ষণস্থায়ী, নিষ্পত্তিযোগ্য(disposable) হিসাবে ডিজাইন করা হয়েছে। যখন +একটি পড তৈরি করা হয় (প্রত্যক্ষভাবে আপনার দ্বারা বা পরোক্ষভাবে একটি +{{}}) দ্বারা, নতুন পডটি +আপনার ক্লাস্টারে একটি {{< glossary_tooltip term_id="node" >}} চালানোর জন্য নির্ধারিত হয়। +পডটি সেই নোডে থাকে যতক্ষণ না পড এক্সিকিউশন শেষ করে, পড অবজেক্টটি মুছে ফেলা হয়, +পডটিকে রিসোর্সের অভাবের জন্য *উচ্ছেদ* করা হয়, বা নোড ব্যর্থ হয়। + +{{< note >}} +একটি পডের মধ্যে একটি কন্টেইনার পুনরায় চালু করা সাথে একটি পড পুনরায় চালু করার বিভ্রান্ত হওয়া উচিত নয়। একটি পড +একটি প্রক্রিয়া নয়, কিন্তু কন্টেইনার(গুলি) চালানোর জন্য এটি একটি পরিবেশ। এটি মুছে ফেলা না হওয়া পর্যন্ত +একটি পড টিকে থাকে। +{{< /note >}} + +একটি পডের নাম অবশ্যই একটি বৈধ +[DNS সাবডোমেন](/bn/docs/concepts/overview/working-with-objects/names#dns-subdomain-names) +মান হতে হবে, তবে এটি পড হোস্টনামের জন্য অপ্রত্যাশিত ফলাফল তৈরি করতে পারে। সর্বোত্তম সামঞ্জস্যের জন্য, +নামের আরো সীমাবদ্ধ নিয়ম অনুসরণ করা উচিত +[DNS লেবেল](/bn/docs/concepts/overview/working-with-objects/names#dns-label-names)এর জন্য। + +### পড অপারেটিং সিস্টেম(OS) + +{{< feature-state state="stable" for_k8s_version="v1.25" >}} + +আপনি যে OS-এ পড চালাতে চান তা নির্দেশ করার জন্য আপনাকে `.spec.os.name` যে কোনো একটি ক্ষেত্রে `windows` +বা `linux`-তে সেট করতে হবে। এই দুটিই একমাত্র অপারেটিং সিস্টেম যা এখন +কুবারনেটিস দ্বারা সমর্থিত। ভবিষ্যতে, এই তালিকা প্রসারিত করা হতে পারে। + +কুবারনেটিস v{{< skew currentVersion >}} -এ, এই ক্ষেত্রের জন্য আপনি যে +মান সেট করেছেন তা পডগুলির জন্য {{< glossary_tooltip text="শিডিউলিং" term_id="kube-scheduler" >}} কোনও প্রভাব ফেলবে না ৷ +সেট করা `.spec.os.name` পড অপারেটিং সিস্টেমকে প্রামাণিকভাবে +সনাক্ত করতে সহায়তা করে এবং বৈধতার জন্য ব্যবহৃত হয়। Kubelet একটি পড চালাতে প্রত্যাখ্যান করে যেখানে আপনি একটি পড +এর অপারেটিং সিস্টেম নির্দিষ্ট করেছেন, যদি এটি সেই নোডের অপারেটিং সিস্টেমের মতো না হয় +যেখানে সেই Kubelet চলছে। +[পডের নিরাপত্তা মান](/bn/docs/concepts/security/pod-security-standards/) সেই অপারেটিং সিস্টেমের সাথে প্রাসঙ্গিক নয় +এমন নীতি প্রয়োগ করা এড়াতে এই ক্ষেত্রটিও ব্যবহার করা হয়৷ + +### পড এবং কন্ট্রোলার + +আপনি আপনার জন্য একাধিক পড তৈরি এবং পরিচালনা করতে ওয়ার্কলোড রিসোর্স ব্যবহার করতে পারেন। পড ব্যর্থতার +ক্ষেত্রে রিসোর্স জন্য একটি কন্ট্রোলার প্রতিলিপি এবং রোলআউট এবং স্বয়ংক্রিয় +নিরাময় পরিচালনা করে। উদাহরণস্বরূপ, যদি একটি নোড ব্যর্থ হয়, একটি কন্ট্রোলার লক্ষ্য করে যে +সেই নোডের পডগুলি কাজ করা বন্ধ করে দিয়েছে এবং একটি প্রতিস্থাপন পড তৈরি করে। শিডিউলার একটি সুস্থ নোডে +প্রতিস্থাপন পড স্থাপন করে। + +এখানে ওয়ার্কলোড রিসোর্সগুলির কিছু উদাহরণ রয়েছে যা এক বা একাধিক পডগুলি পরিচালনা করে: + +* {{< glossary_tooltip text="ডিপলয়ম্যান্টস" term_id="deployment" >}} +* {{< glossary_tooltip text="স্টেটফুল সেট" term_id="statefulset" >}} +* {{< glossary_tooltip text="ডেমোনসেট" term_id="daemonset" >}} + +### পড টেমপ্লেট + +রিসোর্সগুলির জন্য {{< glossary_tooltip text="ওয়ার্কলোড" term_id="workload">}} কন্ট্রোলাররা একটি _পড টেমপ্লেট_ থেকে পড তৈরি করে +এবং আপনার পক্ষে সেই পডগুলি পরিচালনা করে৷ + +পড টেমপ্লেটগুলি হল পড তৈরির জন্য স্পেসিফিকেশন, এবং ওয়ার্কলোড রিসোর্সগুলির অন্তর্ভুক্ত যেমন +[ডিপলয়ম্যান্টস](/bn/docs/concepts/workloads/controllers/deployment/), +[জব](/bn/docs/concepts/workloads/controllers/job/), এবং +[ডেমোনসেট](/bn/docs/concepts/workloads/controllers/daemonset/)। + +ওয়ার্কলোড রিসোর্সের প্রতিটি কন্ট্রোলার প্রকৃত পড তৈরি করতে ওয়ার্কলোড অবজেক্টের ভিতরে `পড টেম্পলেট` +ব্যবহার করে। `পড টেম্পলেট` হল আপনার অ্যাপ চালানোর জন্য যে কোনো ওয়ার্কলোড রিসোর্স ব্যবহার +করা সেই কাঙ্ক্ষিত অবস্থার অংশ। + +নিচের নমুনাটি একটি সাধারণ কাজের জন্য একটি `টেমপ্লেট` সহ একটি ম্যানিফেস্ট যা একটি কন্টেইনার শুরু করে। +সেই পডের কন্টেইনারটি একটি বার্তা প্রিন্ট করে তারপর বিরতি দেয়। + +```yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: hello +spec: + template: + # This is the pod template + spec: + containers: + - name: hello + image: busybox:1.28 + command: ['sh', '-c', 'echo "Hello, Kubernetes!" && sleep 3600'] + restartPolicy: OnFailure + # The pod template ends here +``` + +পড টেমপ্লেট পরিবর্তন করা বা একটি নতুন পড টেমপ্লেটে স্যুইচ করা আগে থেকেই বিদ্যমান পডগুলিতে +সরাসরি প্রভাব ফেলে না। আপনি যদি কোনও ওয়ার্কলোড রিসোর্সের জন্য পড টেমপ্লেট পরিবর্তন করেন তবে সেই রিসোর্সটি এর +প্রতিস্থাপন পড তৈরি করতে হবে যা আপডেট করা টেমপ্লেট ব্যবহার করে। + +উদাহরণস্বরূপ, স্টেটফুলসেট কন্ট্রোলার নিশ্চিত করে যে চলমান পডগুলি প্রতিটি স্টেটফুলসেট অবজেক্টের +বর্তমান পড টেমপ্লেটের একই । আপনি যদি স্টেটফুলসেট ইডিট করেন তার পড টেমপ্লেট পরিবর্তন করতে, +স্টেটফুলসেট আপডেট করা টেমপ্লেটের উপর ভিত্তি করে নতুন পড তৈরি করা শুরু করে। +অবশেষে, সমস্ত পুরানো পড নতুন পড দিয়ে প্রতিস্থাপিত হয় এবং আপডেট সম্পূর্ণ হয়। + +প্রতিটি ওয়ার্কলোড রিসোর্স পড টেমপ্লেটের পরিবর্তনগুলি পরিচালনা করার জন্য নিজস্ব নিয়মগুলি প্রয়োগ করে৷ +আপনি যদি বিশেষভাবে স্টেটফুলসেট সম্পর্কে আরও পড়তে চান, স্টেটফুলসেট বেসিক টিউটোরিয়ালটিতে +[আপডেট কৌশল](/bn/docs/tutorials/stateful-application/basic-stateful-set/#updating-statefulsets) পড়ুন। + +নোডগুলিতে, {{< glossary_tooltip term_id="kubelet" text="kubelet">}} +পড টেমপ্লেট এবং আপডেটগুলির আশেপাশে কোনও বিবরণ সরাসরি পর্যবেক্ষণ বা পরিচালনা করে না; +এই বিবরণগুলি দূরে এব্যস্ট্রাক হয় ৷ উদ্বেগের এব্যস্ট্রাকশন এবং বিচ্ছেদ সিস্টেমের +শব্দার্থিকে সরল করে, এবং বিদ্যমান কোড পরিবর্তন না করে ক্লাস্টারের আচরণকে প্রসারিত করা +সম্ভবপর করে তোলে। + +## পড আপডেট এবং প্রতিস্থাপন + +পূর্ববর্তী সেকশনে উল্লিখিত হিসাবে, যখন একটি ওয়ার্কলোড রিসোর্সের জন্য পড +টেমপ্লেট পরিবর্তন করা হয়, তখন কন্ট্রোলার বিদ্যমান পডগুলিকে আপডেট বা প্যাচ করার পরিবর্তে আপডেট করা টেমপ্লেটের +উপর ভিত্তি করে নতুন পড তৈরি করে। + +কুবারনেটিস আপনাকে সরাসরি পড পরিচালনা করতে বাধা দেয় না। এটি একটি +চলমান পডের কিছু ক্ষেত্র আপডেট করা সম্ভব। যাইহোক, পড আপডেটের ক্রিয়াকলাপ +যেমন +[`প্যাচ`](/bn/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#patch-pod-v1-core), এবং +[`প্রতিস্থাপন`](/bn/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#replace-pod-v1-core) +কিছু সীমাবদ্ধতা রয়েছে : + +- একটি পড সম্পর্কে বেশিরভাগ মেটাডেটা অপরিবর্তনীয়। উদাহরণস্বরূপ + আপনি `namespace`, `name`, `uid`, বা `creationTimestamp` ক্ষেত্র + পরিবর্তন করতে পারবেন না; `generation` ক্ষেত্রটি অনন্য। এটি কেবলমাত্র সেই আপডেটগুলি গ্রহণ করে যা ক্ষেত্রের বর্তমান + মান বৃদ্ধি করে। +- যদি `metadata.deletionTimestamp` সেট করা থাকে, তবে `metadata.finalizers` তালিকায় কোনো + নতুন এন্ট্রি যোগ করা যাবে না। +- পড আপডেটগুলি `spec.containers[*].image`, `spec.initContainers[*].image`, `spec.activeDeadlineSeconds` বা + `spec.tolerations` ব্যতীত অন্য কোনো ক্ষেত্র পরিবর্তন করতে পারে না। + `spec.tolerations` এর জন্য, আপনি শুধুমাত্র নতুন এন্ট্রি যোগ করতে পারেন। +- `spec.activeDeadlineSeconds` ক্ষেত্র আপডেট করার সময়, দুই ধরনের আপডেটের + অনুমতি দেওয়া হয়: + + 1. একটি ধনাত্মক সংখ্যায় আনঅ্যাসাইন করা ক্ষেত্র সেট করা; + 2. ক্ষেত্রটিকে একটি ধনাত্মক সংখ্যা থেকে একটি ছোট, অ-ঋণাত্মক সংখ্যায় + আপডেট করা। + +## রিসোর্স ভাগাভাগি এবং যোগাযোগ + +পডগুলি তাদের উপাদান কন্টেইনারর মধ্যে ডেটা ভাগ করে নেওয়া এবং যোগাযোগ করতে +সক্ষম করে। + +### পডগুলিতে স্টোরেজ {#pod-storage} + +একটি পড শেয়ার্ড স্টোরেজ {{< glossary_tooltip text="ভলিউম" term_id="volume" >}} +এর একটি সেট নির্দিষ্ট করতে পারে। পডের সমস্ত +কন্টেইনারে ভাগ করা ভলিউমগুলি অ্যাক্সেস করতে পারে, সেই কন্টেইনারগুলিকে ডেটা +ভাগ করতে দেয় ৷ ভলিউমগুলি একটি পডের মধ্যে স্থায়ী ডেটাকে টিকে থাকার +অনুমতি দেয় যদি এর মধ্যে থাকা একটি কন্টেইনারকে পুনরায় চালু করতে হয় । দেখুন +[স্টোরেজ](/bn/docs/concepts/storage/) কুবারনেটিস কীভাবে শেয়ার্ড স্টোরেজ +প্রয়োগ করে এবং এটি পডের কাছে উপলব্ধ করে সে বিষয়ে আরও তথ্যের জন্য। + +### পড নেটওয়ার্কিং + +প্রতিটি পড প্রতিটি এড্রেস পরিবারের জন্য একটি একক আইপি এড্রেস বরাদ্দ করা হয় । একটি পডের +প্রতিটি কন্টেইনার আইপি এড্রেস এবং নেটওয়ার্ক পোর্ট সহ নেটওয়ার্ক +নেমস্পেস শেয়ার করে । একটি পডের ভিতরে (এবং **শুধুমাত্র** তখন), পডের অন্তর্গত কন্টেইনারগুলি +`লোকালহোস্ট` ব্যবহার করে একে অপরের সাথে যোগাযোগ করতে পারে। যখন একটি পডের কন্টেইনারগুলি *পডের বাইরে* এনটিটির সাথে যোগাযোগ করে, +তখন তাদের অবশ্যই সমন্বয় করতে হবে যে +তারা কীভাবে ভাগ করা নেটওয়ার্ক রিসোর্সগুলি (যেমন পোর্ট) ব্যবহার করে। +একটি পডের মধ্যে, কন্টেইনারগুলি একটি আইপি ঠিকানা এবং পোর্ট স্পেস ভাগ করে এবং +একে অপরকে `লোকালহোস্ট` এর মাধ্যমে খুঁজে পেতে পারে। একটি পডের কন্টেইনারগুলি যেমন SystemV semaphores বা +POSIX শেয়ার্ড মেমরির সাথে স্ট্যান্ডার্ড ইন্টার-প্রসেস ব্যবহার করে +একে অপরের সাথে যোগাযোগ করতে পারে। বিভিন্ন পডের কন্টেইনারগুলির ইউনিক IP এড্রেস থাকে +এবং বিশেষ কনফিগারেশন ছাড়া OS-লেভেলের IPC দ্বারা যোগাযোগ করতে পারে না। +যে কন্টেইনারগুলি একটি ভিন্ন পডে চলমান একটি কন্টেইনারের সাথে ইন্টারঅ্যাক্ট করতে চায় তারা যোগাযোগের জন্য +আইপি নেটওয়ার্কিং ব্যবহার করতে পারে। + +পডের মধ্যে থাকা কন্টেইনারগুলি সিস্টেমের হোস্টনামটিকে পডের জন্য কনফিগার করা +`নাম`-এর মতই দেখতে পায়। এই সেকশনে [networking](/bn/docs/concepts/cluster-administration/networking/) এই বিষয়ে +আরো আছে। + +## কন্টেইনারগুলির জন্য বিশেষাধিকার মোড + +{{< note >}} +আপনার {{< glossary_tooltip text="কন্টেইনার রানটাইম" term_id="container-runtime">}} এই সেটিংটি প্রাসঙ্গিক হওয়ার জন্য একটি বিশেষাধিকারপ্রাপ্ত কন্টেইনারের ধারণাকে সমর্থন করতে হবে৷ +{{< /note >}} + +অপারেটিং সিস্টেমের প্রশাসনিক ক্ষমতা ব্যবহার করার জন্য একটি পডের যেকোনো কন্টেইনার বিশেষ সুবিধাপ্রাপ্ত মোডে চলতে পারে +যা অন্যথায় অ্যাক্সেসযোগ্য হবে না। এটি উইন্ডোজ এবং লিনাক্স উভয়ের জন্যই সহজলভ্য। + +### লিনাক্স বিশেষাধিকার কন্টেইনার + +লিনাক্সে, পডের যেকোনো কনটেইনার স্পেকের +[নিরাপত্তা প্রসঙ্গ](/bn/docs/tasks/configure-pod-container/security-context/) তে `privileged` (লিনাক্স) ফ্লাগ ব্যবহার করে সুবিধাপ্রাপ্ত মোড +সক্রিয় করতে পারে। এটি এমন কন্টেইনারগুলির জন্য দরকারী যেগুলি অপারেটিং সিস্টেমের প্রশাসনিক +ক্ষমতাগুলি ব্যবহার করতে চায় যেমন নেটওয়ার্ক স্ট্যাক নিপূণভাবে ব্যবহার করা বা হার্ডওয়্যার ডিভাইসগুলি অ্যাক্সেস করা। + +### উইন্ডোজ বিশেষাধিকার কন্টেইনার + +{{< feature-state for_k8s_version="v1.26" state="stable" >}} + +উইন্ডোজে, আপনি পড স্পেকের নিরাপত্তা প্রসঙ্গে `windowsOptions.hostProcess` ফ্লাগ সেট করে একটি +[উইন্ডোজে HostProcess পড](/bn/docs/tasks/configure-pod-container/create-hostprocess-pod) তৈরি করতে পারেন। এই পডের সমস্ত কন্টেইনার +অবশ্যই উইন্ডোজ HostProcess কন্টেইনার হিসাবে চালাতে হবে। HostProcess পডগুলি সরাসরি হোস্টে চলে এবং লিনাক্স সুবিধাপ্রাপ্ত +কন্টেইনারগুলির মতো প্রশাসনিক কাজ সম্পাদন করতেও ব্যবহার করা যেতে পারে। + +## স্ট্যাটিক পডগুলি + +_স্ট্যাটিক পডগুলি_ একটি নির্দিষ্ট নোডে kubelet daemon দ্বারা +সরাসরি পরিচালিত হয়, {{< glossary_tooltip text="API সার্ভার"term_id="kube-apiserver" >}} +তাদের পর্যবেক্ষণ করে না। +যেখানে বেশিরভাগ পড নিয়ন্ত্রণ কন্ট্রোল প্লেন দ্বারা পরিচালিত হয় (উদাহরণস্বরূপ, একটি +{{< glossary_tooltip text="ডিপ্লয়মেন্ট" term_id="deployment">}}), +স্ট্যাটিক পডগুলির জন্য, kubelet সরাসরি প্রতিটি স্ট্যাটিক পডের তত্ত্বাবধান করে (এবং এটি ব্যর্থ হলে পুনরায় চালু করে)। + +একটি নির্দিষ্ট নোডে স্ট্যাটিক পডগুলি সবসময় একটি {{< glossary_tooltip term_id="kubelet">}} এর সাথে আবদ্ধ থাকে। +স্ট্যাটিক পডের প্রধান ব্যবহার হল একটি স্ব-হোস্টেড কন্ট্রোল প্লেনে চালানো: অন্য কথায়, +ব্যক্তিগত [কন্ট্রোল প্লেন উপাদান](/bn/docs/concepts/overview/components/#control-plane-components) তত্ত্বাবধানে kubelet ব্যবহার করা। + +kubelet স্বয়ংক্রিয়ভাবে প্রতিটি স্ট্যাটিক পডের জন্য কুবারনেটিস API সার্ভারে একটি +{{< glossary_tooltip text="মিরর পড" term_id="mirror-pod" >}} তৈরির চেষ্টা করে। +এর মানে হল যে একটি নোডে চলমান পডগুলি API সার্ভারে দৃশ্যমান, +তবে সেখান থেকে নিয়ন্ত্রণ করা যায় না। আরও তথ্যের জন্য [স্থির পড তৈরি করুন](/bn/docs/tasks/configure-pod-container/static-pod) গাইডটি দেখুন। + +{{< note >}} +একটি স্ট্যাটিক পডের `spec` অন্যান্য API অবজেক্টের উল্লেখ করতে পারে না +(উদাহরণস্বরূপ, {{< glossary_tooltip text="ServiceAccount" term_id="service-account" >}}, +{{< glossary_tooltip text="ConfigMap" term_id="configmap" >}}, +{{< glossary_tooltip text="Secret" term_id="secret" >}}, ইত্যাদি). +{{< /note >}} + +## একাধিক কন্টেইনার সহ পড {#how-pods-manage-multiple-containers} + +পডগুলি একাধিক সহযোগিতা প্রক্রিয়া (কন্টেইনার হিসাবে) সমর্থন করার জন্য ডিজাইন করা হয়েছে যা পরিষেবার একটি +সমন্বিত একক গঠন করে। একটি পডের কন্টেইনারগুলি ক্লাস্টারের একই ফিজিক্যাল বা ভার্চুয়াল মেশিনে +স্বয়ংক্রিয়ভাবে সহ-অবস্থিত এবং সহ-নির্ধারিত। কন্টেইনারগুলি +রিসোর্স এবং নির্ভরতা ভাগ করে নিতে পারে, একে অপরের সাথে যোগাযোগ করতে পারে এবং কখন এবং কীভাবে সেগুলি +বন্ধ করা হয় তা সমন্বয় করতে পারে। + + +কুবারনেটিস ক্লাস্টারের পড দুটি প্রধান উপায়ে ব্যবহৃত হয়: + +* **পড যা একটি একক কন্টেইনার চালায়**। "এক-কন্টেইনার-প্রতি-পড" মডেলটি কুবারনেটিসের + সবচেয়ে সাধারণ ব্যবহারের ক্ষেত্রে; এই ক্ষেত্রে, আপনি একটি একক কন্টেইনারের + চারপাশে একটি মোড়ক হিসাবে একটি পডকে ভাবতে পারেন; কুবারনেটস সরাসরি কন্টেইনারগুলি পরিচালনা + করার পরিবর্তে পডগুলি পরিচালনা করে। +* **পড যা একাধিক কন্টেইনার চালায় যেগুলি একসাথে কাজ করতে হবে**। একটি পড + একাধিক সহ-অবস্থিত কন্টেইনারে গঠিত একটি অ্যাপ্লিকেশনকে + এনক্যাপসুলেট করতে পারে যা শক্তভাবে সংযুক্ত থাকে এবং + রিসোর্স ভাগ করে নেওয়ার প্রয়োজন হয়। এই সহ-অবস্থিত কন্টেইনারগুলি + পরিষেবার একটি একক সমন্বিত ইউনিট গঠন করে—উদাহরণস্বরূপ, + একটি কন্টেইনার জনসাধারণের কাছে ভাগ করা ভলিউমে ডেটা সংরক্ষণ করে, যখন একটি পৃথক + {{< glossary_tooltip text="সাইডকার কন্টেইনার" term_id="sidecar-container" >}} + সেই ফাইলগুলিকে রিফ্রেশ বা আপডেট করে৷ + পড এই কন্টেইনার, স্টোরেজ রিসোর্স এবং একটি ক্ষণস্থায়ী নেটওয়ার্ক পরিচয়কে একক + ইউনিট হিসাবে একত্রে মোড়ক করে। + +উদাহরণস্বরূপ, আপনার কাছে একটি কন্টেইনার থাকতে পারে যেটি +একটি শেয়ার্ড ভলিউমের ফাইলগুলির জন্য একটি ওয়েব সার্ভার হিসাবে কাজ করে এবং একটি পৃথক +[সাইডকার কন্টেইনার](/bn/docs/concepts/workloads/pods/sidecar-containers/) +যা একটি দূরবর্তী উৎস থেকে সেই ফাইলগুলিকে আপডেট করে, যেমনটি নিম্নলিখিত চিত্রে রয়েছে: + +{{< figure src="/images/docs/pod.svg" alt="পড তৈরির চিত্র" class="diagram-medium" >}} + +কিছু পডের আছে {{< glossary_tooltip text="init কন্টেইনার" term_id="init-container" >}} +পাশাপাশি {{< glossary_tooltip text="অ্যাপ কন্টেইনার" term_id="app-container" >}}। +ডিফল্টরূপে, init কন্টেইনারগুলি অ্যাপ কন্টেইনারগুলি শুরু হওয়ার আগে চলে এবং সম্পূর্ণ হয়। + +আপনার কাছে [সাইডকার কন্টেইনার](/bn/docs/concepts/workloads/pods/sidecar-containers/) থাকতে পারে +যেগুলি প্রধান অ্যাপ্লিকেশন পডকে সহায়ক পরিষেবা প্রদান করে (উদাহরণস্বরূপ: একটি পরিষেবা মেশ)। + +{{< feature-state for_k8s_version="v1.29" state="beta" >}} + +ডিফল্টরূপে সক্রিয় করা হয়েছে, `SidecarContainers` [ফিচার গেট](/bn/docs/reference/command-line-tools-reference/feature-gates/) +init কন্টেইনারগুলির জন্য আপনাকে `restartPolicy: Always` নির্দিষ্ট করতে দেয়। +`Always` পুনঃসূচনা নীতি সেট করা নিশ্চিত করে যে কন্টেইনারগুলি যেখানে আপনি এটি সেট করেছেন +সেগুলিকে _sidecars_ হিসাবে গণ্য করা হয় যেগুলি পডের পুরো জীবনকাল চলা অবস্থায় থাকে। +যে কন্টেইনারগুলিকে আপনি স্পষ্টভাবে সাইডকার কন্টেনার +হিসাবে সংজ্ঞায়িত করেছেন সেগুলি মূল অ্যাপ্লিকেশন পডের আগে শুরু হয় এবং পড বন্ধ না +হওয়া পর্যন্ত চলমান থাকে। + + +## কন্টেইনার probes + +একটি _probe_ একটি ডায়াগনস্টিক যা একটি কন্টেইনার kubelet দ্বারা পর্যায়ক্রমে সম্পাদিত হয়। একটি ডায়গনিস্টিক সঞ্চালনের জন্য, kubelet বিভিন্ন ক্রিয়াকলাপ করতে পারে: + +- `ExecAction` (কন্টেইনারের রানটাইমের সাহায্যে সম্পাদিত হয়েছে) +- `TCPSocketAction` (kubelet দ্বারা সরাসরি চেক করা হয়েছে) +- `HTTPGetAction` (kubelet দ্বারা সরাসরি চেক করা হয়েছে) + +আপনি পডের জীবনচক্র ডকুমেন্টেশনে [probes](/bn/docs/concepts/workloads/pods/pod-lifecycle/#container-probes) +সম্পর্কে আরও পড়তে পারেন। + +## {{% heading "whatsnext" %}} + +* [একটি পডের জীবনচক্র](/bn/docs/concepts/workloads/pods/pod-lifecycle/) সম্পর্কে জানুন। +* [RuntimeClass](/bn/docs/concepts/containers/runtime-class/) সম্পর্কে জানুন এবং আপনি কীভাবে এটি ব্যবহার করতে পারেন + বিভিন্ন কন্টেইনারের রানটাইম কনফিগারেশন সহ বিভিন্ন পড কনফিগার করুন। +* [PodDisruptionBudget](/bn/docs/concepts/workloads/pods/disruptions/) সম্পর্কে পড়ুন এবং প্রতিবন্ধকতার সময় অ্যাপ্লিকেশনের প্রাপ্যতা পরিচালনা করার জন্য আপনি কীভাবে এটি ব্যবহার করতে পারেন। +* Pod হল Kubernetes REST API-এর একটি শীর্ষ-স্তরের রিসোর্স। + {{< api-reference page="workload-resources/pod-v1" >}} + অবজেক্টের সংজ্ঞা বস্তুর বিস্তারিত বর্ণনা করে। +* [ডিস্ট্রিবিউটেড সিস্টেম টুলকিট: কম্পোজিট কন্টেইনারগুলির জন্য প্যাটার্ন](/blog/2015/06/the-distributed-system-toolkit-patterns/) একাধিক কন্টেইনার সহ পডগুলির জন্য সাধারণ লেআউটগুলি ব্যাখ্যা করে। +* [পড টপোলজি স্প্রেড সীমাবদ্ধতা] (/docs/concepts/scheduling-eviction/topology-spread-constraints/) সম্পর্কে পড়ুন। + +কুবারনেটিস কেন অন্যান্য রিসোর্সগুলিতে মোড়ানোর প্রসঙ্গটি বোঝার জন্য একটি সাধারণ পড API (যেমন {{< glossary_tooltip text="স্টেটফুল সেট" term_id="statefulset" >}}) বা {{< glossary_tooltip text="ডিপলয়মেন্ট" term_id="deployment">}}) তে , আপনি পূর্ববর্তী আর্ট সম্পর্কে পড়তে পারেন, যার মধ্যে রয়েছে: + +* [Aurora](https://aurora.apache.org/documentation/latest/reference/configuration/#job-schema) +* [Borg](https://research.google.com/pubs/pub43438.html) +* [Marathon](https://mesosphere.github.io/marathon/docs/rest-api.html) +* [Omega](https://research.google/pubs/pub41684/) +* [Tupperware](https://engineering.fb.com/data-center-engineering/tupperware/)।