# কুবারনেটিস প্রসারিত করা

> আপনার কুবারনেটিস ক্লাস্টারের আচরণ পরিবর্তন করার বিভিন্ন উপায়।

---

LLMS index: [llms.txt](/llms.txt)

---

<!-- overview -->

কুবারনেটিস খুবই কনফিগারযোগ্য এবং সম্প্রসারণযোগ্য। ফলস্বরূপ, কুবারনেটিস প্রজেক্ট কোডে ফর্ক(fork) 
বা প্যাচ জমা দেওয়ার খুব কমই প্রয়োজন হয়।

এই নির্দেশিকাটি একটি কুবারনেটিস ক্লাস্টার কাস্টমাইজ করার উপায়গুলো বর্ণনা করে ৷  এই নির্দেশিকাটি 
<a class='glossary-tooltip' title='A person who configures, controls, and monitors clusters.' data-bs-toggle='tooltip' data-bs-placement='top' href='/bn/docs/reference/glossary/?all=true#term-cluster-operator' target='_blank' aria-label='ক্লাস্টার অপারেটরদের'>ক্লাস্টার অপারেটরদের</a> লক্ষ্য করে বানানো যারা তাদের কুবারনেটিস ক্লাস্টারকে 
তাদের কাজের পরিবেশের প্রয়োজনের সাথে কীভাবে মানিয়ে নিতে হয় তা বুঝতে চায়। 
ডেভেলপাররা যারা সম্ভাব্য <a class='glossary-tooltip' title='A person who customizes the Kubernetes platform to fit the needs of their project.' data-bs-toggle='tooltip' data-bs-placement='top' href='/bn/docs/reference/glossary/?all=true#term-platform-developer' target='_blank' aria-label='প্ল্যাটফর্ম ডেভেলপকারী'>প্ল্যাটফর্ম ডেভেলপকারী</a> 
বা কুবারনেটিস প্রজেক্ট <a class='glossary-tooltip' title='Someone who donates code, documentation, or their time to help the Kubernetes project or community.' data-bs-toggle='tooltip' data-bs-placement='top' href='/bn/docs/reference/glossary/?all=true#term-contributor' target='_blank' aria-label='কন্ট্রিবিউটরা'>কন্ট্রিবিউটরা</a> , 
এক্সটেনশন পয়েন্ট (extension points) কি এবং প্যাটার্ন বিদ্যমান এর পরিচিতি হিসাবে এবং 
তাদের ট্রেড-অফ আর সীমাবদ্ধতা জানার জন্য  এই নির্দেশিকাটিকে দরকারী হিসেবে পাবে।

কাস্টমাইজেশন পন্থাগুলিকে বিস্তৃতভাবে [কনফিগারেশনে](#কনফিগারেশন) বিভক্ত করা যেতে পারে,
যার মধ্যে শুধুমাত্র কমান্ড লাইন আর্গুমেন্ট, লোকাল কনফিগারেশন ফাইল বা API রিসোর্স পরিবর্তন করা জড়িত;
এবং [এক্সটেনশন](#এক্সটেনশন), যার মধ্যে অতিরিক্ত প্রোগ্রাম চালানো, অতিরিক্ত নেটওয়ার্ক সার্ভিস বা উভয়ই জড়িত।
এই ডকুমেন্টটি মূলত _এক্সটেনশন_ সম্পর্কে।

<!-- body -->

## কনফিগারেশন

*কনফিগারেশন ফাইল* এবং *কমান্ড আর্গুমেন্ট* অনলাইন ডকুমেন্টেশনের [রেফারেন্স](/bn/docs/reference/) বিভাগে ডকুমেন্টেড করা হয়েছে, 
প্রতিটি বাইনারির জন্য একটি পৃষ্ঠা রয়েছে :

* [`kube-apiserver`](/bn/docs/reference/command-line-tools-reference/kube-apiserver/)
* [`kube-controller-manager`](/bn/docs/reference/command-line-tools-reference/kube-controller-manager/)
* [`kube-scheduler`](/bn/docs/reference/command-line-tools-reference/kube-scheduler/)
* [`kubelet`](/bn/docs/reference/command-line-tools-reference/kubelet/)
* [`kube-proxy`](/bn/docs/reference/command-line-tools-reference/kube-proxy/)

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

বিল্ট-ইন *পলিসি API* গুলো, যেমন [ResourceQuota](/bn/docs/concepts/policy/resource-quotas/), 
[NetworkPolicy](/bn/docs/concepts/services-networking/network-policies/) এবং Role-based Access Control 
([RBAC](/bn/docs/reference/access-authn-authz/rbac/)), হলো বিল্ট-ইন কুবারনেটিস API যা ঘোষণামূলকভাবে কনফিগার করা পলিসি সেটিংস প্রদান করে।
API গুলো সাধারণত হোস্ট করা কুবারনেটিস সার্ভিস এবং পরিচালিত কুবারনেটিস ইনস্টলেশনগুলোর সাথে ব্যবহারযোগ্য।
বিল্ট-ইন পলিসি API গুলো অন্যান্য কুবারনেটিস রিসোর্স যেমন পডের মতো একই নিয়ম অনুসরণ করে।
আপনি যখন [স্থিতিশীল](/bn/docs/reference/using-api/#api-versioning) একটি পলিসি API ব্যবহার করেন, 
তখন আপনি অন্যান্য কুবারনেটিস API-এর মতো একটি [সংজ্ঞায়িত সাপোর্ট পলিসি](/bn/docs/reference/using-api/deprecation-policy/) থেকে উপকৃত হন।
এই কারণে, পলিসি  API গুলো *কনফিগারেশন ফাইল* এবং *কমান্ড আর্গুমেন্ট* এর বদলে যেখানে উপযুক্ত সেখানে সুপারিশ করা হয় ।

## এক্সটেনশন

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

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

### এক্সটেনশন প্যাটার্ন

কুবারনেটিস ডিজাইন করা হয়েছে ক্লায়েন্ট প্রোগ্রাম লিখার মাধ্যমে স্বয়ংক্রিয় হতে ।
কুবারনেটিস API-তে পড়া এবং/অথবা লেখা যে কোনো প্রোগ্রাম দরকারী অটোমেশন প্রদান করতে পারে।
*অটোমেশন* ক্লাস্টারে চলতে পারে বা এটি বন্ধ করতে পারে।
এই ডকুমেন্টের নির্দেশিকা অনুসরণ করে আপনি অত্যন্ত উপলব্ধ এবং শক্তিশালী অটোমেশন লিখতে পারেন।
অটোমেশন সাধারণত হোস্ট করা ক্লাস্টার এবং পরিচালিত ইনস্টলেশন সহ যেকোন কুবারনেটিস 
ক্লাস্টারের সাথে কাজ করে।

ক্লায়েন্ট প্রোগ্রাম লেখার জন্য একটি নির্দিষ্ট প্যাটার্ন রয়েছে যা কুবারনেটিসের
সাথে ভালভাবে কাজ করে যাকে <a class='glossary-tooltip' title='A control loop that watches the shared state of the cluster through the apiserver and makes changes attempting to move the current state towards the desired state.' data-bs-toggle='tooltip' data-bs-placement='top' href='/bn/docs/concepts/architecture/controller/' target='_blank' aria-label='কন্ট্রোলার'>কন্ট্রোলার</a> 
প্যাটার্ন বলা হয়। কন্ট্রোলাররা সাধারণত একটি অবজেক্টের `.spec` পড়ে, সম্ভবত জিনিসগুলি করে এবং 
তারপর অবজেক্টের `.status` আপডেট করে ৷

একটি কন্ট্রোলার হল কুবারনেটিস API-এর ক্লায়েন্ট। যখন কুবারনেটিস ক্লায়েন্ট হয় এবং 
একটি রিমোট সার্ভিসে কল করে, কুবারনেটিস এটিকে একটি *webhook* বলে। রিমোট সার্ভিসকে 
*webhook backend* বলা হয়। কাস্টম কন্ট্রোলারের মতো, webhook গুলো ব্যর্থতার একটি পয়েন্ট যোগ করে।


<div class="alert alert-info" role="note"><h4 class="alert-heading">বিঃদ্রঃ:</h4>কুবারনেটিসের বাইরে, “webhook” শব্দটি সাধারণত অ্যাসিঙ্ক্রোনাস(asynchronous) বিজ্ঞপ্তিগুলির জন্য একটি প্রক্রিয়াকে বোঝায়,
যেখানে webhook কল অন্য সিস্টেম বা উপাদানের জন্য একমুখী বিজ্ঞপ্তি হিসাবে কাজ করে।
কুবারনেটিস ইকোসিস্টেমে, এমনকি সিঙ্ক্রোনাস(synchronous) HTTP কলআউটগুলোকে প্রায়ই
“webhooks” হিসাবে বর্ণনা করা হয়।</div>


webhook মডেলে, কুবারনেটিস একটি রিমোট সার্ভিসে একটি নেটওয়ার্ক অনুরোধ করে।
বিকল্প *binary Plugin* মডেলের সাথে, কুবারনেটস একটি বাইনারি (প্রোগ্রাম) চালায়।
বাইনারি প্লাগইনগুলো kubelet দ্বারা ব্যবহৃত হয় (উদাহরণস্বরূপ, [CSI storage plugins](https://kubernetes-csi.github.io/docs/) এবং 
[CNI network plugins](/bn/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/)), এবং 
kubectl দ্বারা ([প্লাগইনগুলোর সাথে প্রসারিত kubectl](/bn/docs/tasks/extend-kubectl/kubectl-plugins/) দেখুন)।

### এক্সটেনশন পয়েন্ট

এই ডায়াগ্রামটি একটি কুবারনেটিস ক্লাস্টারের এক্সটেনশন পয়েন্ট এবং এটি 
অ্যাক্সেসকারী ক্লায়েন্টদের দেখায়।

<!-- image source: https://docs.google.com/drawings/d/1nZtQmJpqsOnhNagfWOMWX9DEsJyOHyvDIgTNQ9dOyC0/view -->



<figure class="diagram-large ">
    <img src="/bn/docs/concepts/extend-kubernetes/extension-points.png"
         alt="কুবারনেটিসের জন্য সাতটি সংখ্যাযুক্ত এক্সটেনশন পয়েন্টের প্রতীকী উপস্থাপনা"/> <figcaption>
            <p>কুবারনেটিস এক্সটেনশন পয়েন্ট</p>
        </figcaption>
</figure>

#### চিত্রের চাবিকাঠি

1. ব্যবহারকারীরা প্রায়ই `kubectl` ব্যবহার করে কুবারনেটিস API এর সাথে যোগাযোগ করে। [প্লাগইন](#ক্লায়েন্ট-এক্সটেনশন)
   ক্লায়েন্টদের আচরণ কাস্টমাইজ করে। জেনেরিক এক্সটেনশন রয়েছে যা বিভিন্ন ক্লায়েন্টের জন্য প্রযোজ্য হতে পারে, সেইসাথে`kubectl`
   প্রসারিত করার নির্দিষ্ট উপায়ও ।

1. API সার্ভার সমস্ত অনুরোধ পরিচালনা করে। API সার্ভারে বিভিন্ন ধরণের এক্সটেনশন পয়েন্টগুলো তাদের কনটেন্টের উপর
   ভিত্তি করে অনুরোধগুলো অথেন্টিকেটিং(authenticating), বা তাদের ব্লক করার অনুমতি দেয়, বিষয়বস্তু পরিবর্তন করে এবং 
   মুছে ফেলার ব্যবস্থা করে। এগুলো [API অ্যাক্সেস এক্সটেনশন](#API-অ্যাক্সেস-এক্সটেনশন) বিভাগে বর্ণিত হয়েছে।

1. এপিআই সার্ভার বিভিন্ন ধরণের *রিসোর্স* সরবরাহ করে। *বিল্ট-ইন রিসোর্স ধরনের*, যেমন
   `pods`, কুবারনেটিস প্রজেক্ট দ্বারা সংজ্ঞায়িত করা হয় এবং পরিবর্তন করা যায় না।
   কুবারনেটিস API প্রসারিত করার বিষয়ে জানতে [API এক্সটেনশন](#API-এক্সটেনশন) পড়ুন।

1. কুবারনেটিস শিডিউলার কোন নোডগুলোতে পড স্থাপন করবে তা
   [নির্ধারণ](/bn/docs/concepts/scheduling-eviction/assign-pod-node/) করে। শিডিউলিং প্রসারিত করার
   বিভিন্ন উপায় রয়েছে, যা [শিডিউলিং এক্সটেনশন](#শিডিউলিং-এক্সটেনশন) বিভাগে বর্ণিত করা হয়েছে।

1. কুবারনেটিসের বেশিরভাগ আচরণ <a class='glossary-tooltip' title='A control loop that watches the shared state of the cluster through the apiserver and makes changes attempting to move the current state towards the desired state.' data-bs-toggle='tooltip' data-bs-placement='top' href='/bn/docs/concepts/architecture/controller/' target='_blank' aria-label='কন্ট্রোলার'>কন্ট্রোলার</a>
   নামক প্রোগ্রাম দ্বারা বাস্তবায়িত হয়, যেগুলো API সার্ভারের ক্লায়েন্ট।
   কন্ট্রোলারগুলো প্রায়ই কাস্টম রিসোর্সগুলোর সাথে একত্রে ব্যবহৃত হয়।
   আরও জানতে [অটোমেশনের সাথে নতুন API-এর সমন্বয়](#অটোমেশনের-সাথে-নতুন-API-এর-সমন্বয়) এবং
   [বিল্ট-ইন রিসোর্স পরিবর্তন](#বিল্ট-ইন-রিসোর্স-পরিবর্তন) পড়ুন।

1. kubelet সার্ভারে (নোড) চলে এবং ক্লাস্টার নেটওয়ার্কে তাদের নিজস্ব আইপি সহ ভার্চুয়াল সার্ভারের মতো পডগুলোকে 
   দেখাতে সহায়তা করে। [নেটওয়ার্ক প্লাগইনগুলো](#নেটওয়ার্ক-প্লাগইন) পড নেটওয়ার্কিং এর বিভিন্ন বাস্তবায়নের 
   অনুমতি দেয়।

1. আপনি কাস্টম হার্ডওয়্যার বা অন্যান্য বিশেষ নোড-লোকাল সুবিধাগুলো একীভূত  করতে [ডিভাইস প্লাগইনগুলো](#ডিভাইস-প্লাগইন)
   ব্যবহার করতে পারেন এবং আপনার ক্লাস্টারে চলমান পডগুলোতে এগুলো উপলব্ধ করতে পারেন৷ 
   kubelet ডিভাইস প্লাগইনগুলোর সাথে কাজ করার জন্য সাপোর্ট অন্তর্ভুক্ত করে।

   kubelet পড এবং তাদের কন্টেইনারের জন্য
   <a class='glossary-tooltip' title='ডাটা ধারণকারী একটি ডিরেক্টরি, একটি পডের কন্টেইনারে অ্যাক্সেসযোগ্য।' data-bs-toggle='tooltip' data-bs-placement='top' href='/bn/docs/concepts/storage/volumes/' target='_blank' aria-label='ভলিউম'>ভলিউম</a> মাউন্ট এবং আনমাউন্ট করে।
   আপনি নতুন ধরনের স্টোরেজ এবং অন্যান্য ভলিউম টাইপের জন্য সাপোর্ট যোগ করতে
   [স্টোরেজ প্লাগইন](#স্টোরেজ-প্লাগইন) ব্যবহার করতে পারেন।


#### এক্সটেনশন পয়েন্ট চয়েস ফ্লোচার্ট {#এক্সটেনশন-ফ্লোচার্ট}

আপনি কোথা থেকে শুরু করবেন তা নিশ্চিত না হলে, এই ফ্লোচার্টটি সাহায্য করতে পারবে৷ 
মনে রাখবেন কিছু সমাধানে বিভিন্ন ধরনের এক্সটেনশন জড়িত থাকতে পারে।

<!-- image source for flowchart: https://docs.google.com/drawings/d/1sdviU6lDz4BpnzJNHfNpQrqI9F19QZ07KnhnxVrp2yg/edit -->



<figure class="diagram-large ">
    <img src="/bn/docs/concepts/extend-kubernetes/flowchart.svg"
         alt="প্রয়োগকারীদের জন্য ব্যবহারের ক্ষেত্র এবং নির্দেশিকা সম্পর্কে প্রশ্ন সহ ফ্লোচার্ট। সবুজ বৃত্ত হ্যাঁ নির্দেশ করে; লাল বৃত্ত না নির্দেশ করে।"/> <figcaption>
            <p>একটি এক্সটেনশন পদ্ধতি নির্বাচন করতে ফ্লোচার্ট গাইড</p>
        </figcaption>
</figure>

---

## ক্লায়েন্ট এক্সটেনশন

kubectl-এর জন্য প্লাগইন হলো পৃথক বাইনারি যা নির্দিষ্ট সাবকমান্ডের আচরণ যোগ বা প্রতিস্থাপন করে।
`kubectl` টুলটি [ক্রেডেনশিয়াল(credential) প্লাগইনগুলোর](/bn/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins) সাথেও একীভূত করতে পারে।
এই এক্সটেনশনগুলো শুধুমাত্র একটি একক ব্যবহারকারীর লোকাল পরিবেশকে প্রভাবিত করে, এবং তাই সাইট-ব্যাপী  পলিসিগুলো প্রয়োগ করতে পারে না।

আপনি যদি `kubectl` টুল প্রসারিত করতে চান, তাহলে [প্লাগইন সহ kubectl প্রসারিত করা](/bn/docs/tasks/extend-kubectl/kubectl-plugins/) পড়ুন।

## API এক্সটেনশন

### কাস্টম রিসোর্স সংজ্ঞা

আপনি যদি নতুন কন্ট্রোলার, অ্যাপ্লিকেশন কনফিগারেশন অবজেক্ট বা অন্যান্য ডিক্লারেটিভ 
API সংজ্ঞায়িত করতে চান এবং কুবারনেটিস টুলস যেমন `kubectl` ব্যবহার করে সেগুলো 
পরিচালনা করতে চান তাহলে কুবারনেটিসে একটি কাস্টম রিসোর্স যোগ করার কথা বিবেচনা করুন।

কাস্টম রিসোর্স সম্পর্কে আরও জানতে, 
[কাস্টম রিসোর্স](/bn/docs/concepts/extend-kubernetes/api-extension/custom-resources/) কনসেপ্ট গাইড দেখুন।

### API এগ্রিগেশন লেয়ার(aggregation layer)

আপনি কুবারনেটিস [API এগ্রিগেশন লেয়ার](/bn/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/) ব্যবহার করতে পারেন 
কুবারনেটিস API-কে [মেট্রিক্সের](/bn/docs/tasks/debug/debug-cluster/resource-metrics-pipeline/) মতো অতিরিক্ত সার্ভিসের সাথে একীভূত করতে।

### অটোমেশনের সাথে নতুন API-এর সমন্বয়

একটি কাস্টম রিসোর্স API এবং একটি কন্ট্রোল লুপের সংমিশ্রণকে 
<a class='glossary-tooltip' title='A control loop that watches the shared state of the cluster through the apiserver and makes changes attempting to move the current state towards the desired state.' data-bs-toggle='tooltip' data-bs-placement='top' href='/bn/docs/concepts/architecture/controller/' target='_blank' aria-label='কন্ট্রোলার'>কন্ট্রোলার</a> প্যাটার্ন বলা হয়। যদি আপনার 
কন্ট্রোলার একটি কাঙ্ক্ষিত অবস্থার উপর ভিত্তি করে অবকাঠামো স্থাপনকারী মানব অপারেটরের স্থান নেয়, 
তাহলে কন্ট্রোলারও <a class='glossary-tooltip' title='A specialized controller used to manage a custom resource' data-bs-toggle='tooltip' data-bs-placement='top' href='/bn/docs/concepts/extend-kubernetes/operator/' target='_blank' aria-label='অপারেটর প্যাটার্ন'>অপারেটর প্যাটার্ন</a> অনুসরণ করতে পারে।
অপারেটর প্যাটার্ন নির্দিষ্ট অ্যাপ্লিকেশন পরিচালনা করতে ব্যবহৃত হয়; সাধারণত, এগুলো হলো এমন অ্যাপ্লিকেশন 
যা অবস্থা বজায় রাখে এবং সেগুলোকে কীভাবে পরিচালনা করা হয় তার যত্নের প্রয়োজন হয়৷

আপনি আপনার নিজস্ব কাস্টম API এবং কন্ট্রোল লুপগুলোও তৈরি করতে পারেন যা অন্যান্য রিসোর্সগুলো পরিচালনা করতে পারে, 
যেমন স্টোরেজ, বা পলিসিগুলো সংজ্ঞায়িত করতে (যেমন একটি অ্যাক্সেস কন্ট্রোল রেস্ট্রিকশন)।

### বিল্ট-ইন রিসোর্স পরিবর্তন

আপনি যখন কাস্টম রিসোর্স যোগ করে কুবারনেটিস API প্রসারিত করেন, তখন যোগ করা রিসোর্স সবসময় 
একটি নতুন API গ্রুপে পড়ে। আপনি বিদ্যমান API গ্রুপগুলোকে প্রতিস্থাপন বা পরিবর্তন করতে পারবেন না ৷
একটি API যোগ করলে আপনাকে বিদ্যমান API-এর আচরণকে সরাসরি প্রভাবিত করতে দেওয়া না (যেমন পড), 
যেখানে _API অ্যাক্সেস এক্সটেনশানগুলো_ করে।

## API অ্যাক্সেস এক্সটেনশন

যখন একটি অনুরোধ কুবারনেটিস API সার্ভারে পৌঁছায়, এটি প্রথমে _অথেন্টিকেটেড(authenticated)_ করা হয়, 
তারপর _অনুমোদিত(authorized)_ হয় এবং তারপরে আসে বিভিন্ন ধরণের _অ্যাডমিশন কন্ট্রোলের(admission control)_ 
বিষয় (কিছু অনুরোধ প্রকৃতপক্ষে অথেন্টিকেটেড(authenticated) নয়, এবং স্পেশাল ট্রিটমেন্ট পান)।
এই প্রবাহ সম্পর্কে আরও জানতে 
[কুবারনেটিস API-এ অ্যাক্সেস কন্ট্রোল করা](/bn/docs/concepts/security/controlling-access/) দেখুন।

কুবারনেটিস অথেন্টিকেশন/অথোরাইজেশন প্রবাহের প্রতিটি ধাপ এক্সটেনশন পয়েন্ট অফার করে।

### অথেন্টিকেশন(Authentication)

ক্লায়েন্ট অনুরোধ করার জন্য একটি ব্যবহারকারীর নামের সমস্ত অনুরোধে 
[অথেন্টিকেশন](/bn/docs/reference/access-authn-authz/authentication/)  শিরোনাম বা সার্টিফিকেট যুক্ত করে।

কুবারনেটিস এর বেশ কয়েকটি বিল্ট-ইন অথেন্টিকেশন পদ্ধতি রয়েছে যা এটি সাপোর্ট করে। 
এটি একটি অথেন্টিকেটিং প্রক্সির পিছনেও বসতে পারে এবং এটি একটি `অথোরাইজেশন(Authorization)` টোকেন পাঠাতে পারে যাচাইয়ের জন্য: 
শিরোনাম থেকে  একটি রিমোট সার্ভিসে (একটি [অথেন্টিকেশন webhook](/bn/docs/reference/access-authn-authz/authentication/#webhook-token-authentication)) 
যদি সেগুলো আপনার প্রয়োজনগুলো পূরণ না করে৷

### অথোরাইজেশন(Authorization)

[অথোরাইজেশন](/bn/docs/reference/access-authn-authz/authorization/) নির্ধারণ করে যে নির্দিষ্ট ব্যবহারকারীরা API রিসোর্সগুলোতে 
পড়তে, লিখতে এবং অন্যান্য ক্রিয়াকলাপ করতে পারে কিনা। এটি সম্পূর্ণ রিসোর্সের লেভেলে কাজ করে -- এটি ইচ্ছামত 
অবজেক্টের ফিল্ডের উপর ভিত্তি করে বৈষম্য করে না।

যদি বিল্ট-ইন অথোরাইজেশনের উপায়গুলো আপনার চাহিদা পূরণ না করে, 
তাহলে একটি [অথোরাইজেশন webhook](/bn/docs/reference/access-authn-authz/webhook/) 
কাস্টম কোডে কল করার অনুমতি দেয় যা একটি অথোরাইজেশনের সিদ্ধান্ত নেয়।

### ডাইনামিক অ্যাডমিশন কন্ট্রোল

একটি অনুরোধ অনুমোদিত হওয়ার পরে, যদি এটি একটি লিখিত অপারেশন হয়, তবে এটি 
[অ্যাডমিশন কন্ট্রোলের](/bn/docs/reference/access-authn-authz/admission-controllers/) পদক্ষেপগুলোর
মধ্য দিয়ে যায়। বিল্ট-ইন পদক্ষেপগুলো ছাড়াও, বেশ কয়েকটি এক্সটেনশন রয়েছে:

* [ইমেজ পলিসি webhook](/bn/docs/reference/access-authn-authz/admission-controllers/#imagepolicywebhook)
  কন্টেইনারে কোন ইমেজ চালানো যাবে তা সীমাবদ্ধ করে।
* ইচ্ছামত অ্যাডমিশন কন্ট্রোলের সিদ্ধান্ত নিতে, একটি সাধারণ
  [অ্যাডমিশন webhook](/bn/docs/reference/access-authn-authz/extensible-admission-controllers/#admission-webhooks)
  ব্যবহার করা যেতে পারে। অ্যাডমিশন webhook সৃষ্টি বা আপডেট প্রত্যাখ্যান করতে পারে।
  কিছু অ্যাডমিশন webhook ইনকামিং রিকোয়েস্ট ডেটা পরিবর্তন করে কুবারনেটিস দ্বারা আরও পরিচালনা করার আগে।

## অবকাঠামো এক্সটেনশন

### ডিভাইস প্লাগইন

_ডিভাইস প্লাগইনগুলো_ একটি [ডিভাইস প্লাগইনের](/bn/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/) 
মাধ্যমে একটি নোডকে নতুন নোড রিসোর্সগুলো (CPU এবং মেমরির মতো বিল্টইনগুলো ছাড়াও) 
আবিষ্কার করতে দেয় ।

### স্টোরেজ প্লাগইন

<a class='glossary-tooltip' title='The Container Storage Interface (CSI) defines a standard interface to expose storage systems to containers.' data-bs-toggle='tooltip' data-bs-placement='top' href='/bn/docs/concepts/storage/volumes/#csi' target='_blank' aria-label='কন্টেইনার স্টোরেজ ইন্টারফেস(Container Storage Interface)'>কন্টেইনার স্টোরেজ ইন্টারফেস(Container Storage Interface)</a> (CSI) 
প্লাগইনগুলো নতুন ধরনের ভলিউমের জন্য সাপোর্ট সহ কুবারনেটিস প্রসারিত করার একটি উপায় প্রদান করে।
ভলিউমগুলো টেকসই এক্সটার্নাল স্টোরেজ দ্বারা সাহায্যপ্রাপ্ত করা যেতে পারে, বা ক্ষণস্থায়ী স্টোরেজ(ephemeral storage) প্রদান করতে পারে, 
অথবা তারা একটি ফাইল সিস্টেম প্যারাডাইম ব্যবহার করে তথ্যের জন্য একটি রিড-অনলি ইন্টারফেস দিতে পারে ।

কুবারনেটিস এছাড়াও [FlexVolume](/bn/docs/concepts/storage/volumes/#flexvolume) প্লাগইনগুলোর জন্য সাপোর্ট অন্তর্ভুক্ত করে, 
যা কুবারনেটিস v1.23 (CSI-এর পক্ষে) থেকে অবমূল্যায়িত(deprecated) করা হয়েছে ।

FlexVolume প্লাগইনগুলো ব্যবহারকারীদের ভলিউম প্রকারগুলো মাউন্ট করার অনুমতি দেয় যা সাধারণত কুবারনেটিস দ্বারা সাপোর্টেড নয়।
আপনি যখন FlexVolume স্টোরেজের উপর নির্ভর করে এমন একটি পড চালান, তখন kubelet ভলিউম মাউন্ট করার জন্য একটি বাইনারি প্লাগইন কল করে।
আর্কাইভ করা [FlexVolume](https://git.k8s.io/design-proposals-archive/storage/flexvolume-deployment.md) 
ডিজাইন প্রস্তাবে এই পদ্ধতির আরও বিশদ বিবরণ রয়েছে।

[The Kubernetes Volume Plugin FAQ for Storage Vendors](https://github.com/kubernetes/community/blob/master/sig-storage/volume-plugin-faq.md#kubernetes-volume-plugin-faq-for-storage-vendors) তে
স্টোরেজ প্লাগইনগুলোর সাধারণ তথ্য অন্তর্ভুক্ত রয়েছে ।

### নেটওয়ার্ক প্লাগইন

আপনার কুবারনেটিস ক্লাস্টারের একটি _নেটওয়ার্ক প্লাগইন_ প্রয়োজন যাতে একটি কার্যকরী পড নেটওয়ার্ক থাকে 
এবং কুবারনেটিস নেটওয়ার্ক মডেলের অন্যান্য দিকগুলোকে সাপোর্ট করতে পারে৷

[নেটওয়ার্ক প্লাগইনগুলো](/bn/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/) 
কুবারনেটিসকে বিভিন্ন নেটওয়ার্কিং টপোলজি এবং প্রযুক্তির সাথে কাজ করার অনুমতি দেয়।

### Kubelet ইমেজ ক্রেডেনশিয়াল প্রোভাইডার প্লাগইন (Kubelet image credential provider plugins)








  <div class="feature-state-notice feature-stable">
      <span class="feature-state-name">ফিচার স্টেট:</span>
      <code>কুবারনেটিস v1.26 [stable]</code>
    </div>
  


Kubelet ইমেজ ক্রেডেনশিয়াল প্রোভাইডাররা হলো Kubelet এর জন্য প্লাগইন যা ডাইনামিকভাবে ইমেজ 
রেজিস্ট্রি ক্রেডেনশিয়ালগুলো পুনরুদ্ধার করতে পারে। কন্টেইনার ইমেজ রেজিস্ট্রি থেকে ইমেজ তোলার সময় 
ক্রেডেনশিয়ালগুলো ব্যবহার করা হয় যা কনফিগারেশনের সাথে মেলে।

প্লাগইনগুলো বহিরাগত সার্ভিসগুলোর সাথে যোগাযোগ করতে পারে বা ক্রেডেনশিয়ালগুলো পেতে লোকাল ফাইলগুলো ব্যবহার করতে পারে ৷ 
এইভাবে, kubelet এর প্রতিটি রেজিস্ট্রির জন্য স্ট্যাটিক ক্রেডেনশিয়ালের প্রয়োজন নেই এবং বিভিন্ন অথেন্টিকেশন পদ্ধতি এবং 
প্রোটোকল সাপোর্ট করতে পারে ।

প্লাগইন কনফিগারেশনের বিশদ বিবরণের জন্য,
[একটি Kubelet ইমেজ ক্রেডেনশিয়াল প্রোভাইডার কনফিগার ](/bn/docs/tasks/administer-cluster/kubelet-credential-provider/) দেখুন। 

## শিডিউলিং এক্সটেনশন

শিডিউলার হলো একটি বিশেষ ধরনের কন্ট্রোলার যা পডগুলো দেখে এবং 
নোডগুলোতে পড বরাদ্দ করে। 
অন্যান্য কুবারনেটিস উপাদানগুলো ব্যবহার করা চালিয়ে যাওয়ার সময় ডিফল্ট শিডিউলার 
সম্পূর্ণরূপে প্রতিস্থাপন করা যেতে পারে, অথবা 
[একাধিক শিডিউলার](/bn/docs/tasks/extend-kubernetes/configure-multiple-schedulers/) একই সময়ে চলতে পারে।

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

আপনি কোন [শিডিউলার প্লাগইনগুলো](/bn/docs/reference/scheduling/config/#scheduling-plugins) সক্রিয় তা নিয়ন্ত্রণ করতে পারেন বা 
বিভিন্ন নামযুক্ত [শিডিউলার প্রোফাইলের](/bn/docs/reference/scheduling/config/#multiple-profiles) সাথে প্লাগইনগুলোর সেটগুলোকে সংযুক্ত করতে পারেন ৷
আপনি আপনার নিজস্ব প্লাগইনও লিখতে পারেন যা এক বা একাধিক kube-scheduler এর 
[এক্সটেনশন পয়েন্টের](/bn/docs/concepts/scheduling-eviction/scheduling-framework/#extension-points) সাথে একত্রিত হয় ।

অবশেষে, বিল্ট-ইন `kube-scheduler` উপাদানটি একটি 
[webhook](https://git.k8s.io/design-proposals-archive/scheduling/scheduler_extender.md)কে 
সাপোর্ট করে যা একটি রিমোট HTTP ব্যাকএন্ড (শিডিউলার এক্সটেনশন) ফিল্টার এবং/অথবা 
নোডগুলোকে অগ্রাধিকার দেওয়ার অনুমতি দেয় যা kube-scheduler একটি পডের জন্য বেছে নেয়।


<div class="alert alert-info" role="note"><h4 class="alert-heading">বিঃদ্রঃ:</h4>আপনি শুধুমাত্র একটি শিডিউলার এক্সটেন্ডার webhook এর মাধ্যমে নোড ফিল্টারিং
এবং নোড অগ্রাধিকারকে প্রভাবিত করতে পারেন;
webhook ইন্টিগ্রেশনের মাধ্যমে অন্যান্য এক্সটেনশন পয়েন্ট পাওয়া যায় না।</div>


## এর পরের কি

* অবকাঠামো এক্সটেনশন সম্পর্কে আরও জানুন
  * [ডিভাইস প্লাগইন](/bn/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/)
  * [নেটওয়ার্ক প্লাগইন](/bn/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/)
  * CSI [স্টোরেজ প্লাগইন](https://kubernetes-csi.github.io/docs/)
* [kubectl প্লাগইন](/bn/docs/tasks/extend-kubectl/kubectl-plugins/) সম্পর্কে জানুন
* [কাস্টম রিসোর্স](/bn/docs/concepts/extend-kubernetes/api-extension/custom-resources/) সম্পর্কে আরও জানুন
* [এক্সটেনশন API সার্ভার](/bn/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/) সম্পর্কে আরও জানুন
* [ডাইনামিক অ্যাডমিশন কন্ট্রোল](/bn/docs/reference/access-authn-authz/extensible-admission-controllers/) সম্পর্কে জানুন
* [অপারেটর প্যাটার্ন](/bn/docs/concepts/extend-kubernetes/operator/) সম্পর্কে জানুন

---

Section pages:

- [কম্পিউট, স্টোরেজ, এবং নেটওয়ার্কিং এক্সটেনশন](/bn/docs/concepts/extend-kubernetes/compute-storage-net/)
- [কুবারনেটিস API প্রসারিত করা](/bn/docs/concepts/extend-kubernetes/api-extension/)
