Merge pull request #45418 from cloudwithtanvir/cloudwithtanvir-dev-1.24-bn.1-architecture
[bn] Localize /docs/concepts/overview/working-with-objectspull/45752/head
commit
2f3a87d0f9
|
@ -0,0 +1,175 @@
|
|||
---
|
||||
title: কুবারনেটিসে অবজেক্ট
|
||||
content_type: concept
|
||||
weight: 10
|
||||
description: >
|
||||
কুবারনেটিস অবজেক্ট হল কুবারনেটিস সিস্টেমে স্থায়ী সত্তা।
|
||||
কুবারনেটিস আপনার ক্লাস্টারের অবস্থার প্রতিনিধিত্ব করতে এই সত্তাগুলি ব্যবহার করে।
|
||||
কুবারনেটিস অবজেক্ট মডেল এবং এই বস্তুর সাথে কিভাবে কাজ করতে হয় সে সম্পর্কে জানুন।
|
||||
simple_list: true
|
||||
card:
|
||||
name: concepts
|
||||
weight: 40
|
||||
---
|
||||
|
||||
<!-- overview -->
|
||||
|
||||
এই পৃষ্ঠাটি ব্যাখ্যা করে কুবারনেটিস API-তে কুবারনেটিস অবজেক্টগুলি কীভাবে প্রতিনিধিত্ব করা হয় এবং
|
||||
আপনি কিভাবে তা `.yaml` ফরম্যাটে প্রকাশ করতে পারেন।
|
||||
|
||||
<!-- body -->
|
||||
|
||||
## কুবারনেটিস অবজেক্ট বোঝা {#kubernetes-objects}
|
||||
|
||||
*কুবারনেটিস অবজেক্ট* হল কুবারনেটিস সিস্টেমের সত্তা সংরক্ষিত এন্টিটিগুলি। কুবারনেটিস এই
|
||||
এন্টিটিগুলি ব্যবহার করে আপনার ক্লাস্টারের অবস্থা প্রকাশ করতে। বিশেষভাবে, তারা বর্ণনা করতে পারে:
|
||||
|
||||
- কোন কন্টেনার অ্যাপ্লিকেশন কি রান করছে (এবং কোন নোডগুলিতে)
|
||||
- ঐ অ্যাপ্লিকেশনগুলির জন্য রিসোর্স
|
||||
- ঐ অ্যাপ্লিকেশনগুলির কিভাবে ব্যবহার করতে হবে, উদাহরণস্বরূপ রিস্টার্ট নীতি, আপগ্রেড, এবং ফল্ট-টলারেন্স
|
||||
|
||||
একটি কুবারনেটিস অবজেক্ট হল একটি "উদ্দেশ্যের রেকর্ড" - একবার আপনি অবজেক্ট তৈরি করে দিলে,
|
||||
কুবারনেটিস সিস্টেম সরাসরি এই অবজেক্টটি থাকার নিশ্চয়তার জন্য কাজ করবে। অবজেক্ট তৈরি করে
|
||||
আপনি সাধারণত কুবারনেটিস সিস্টেমকে বলে দিচ্ছেন যে আপনার ক্লাস্টারের ওয়ার্কলোড কি হবে; এটা
|
||||
হল আপনার ক্লাস্টারের *কাঙ্ক্ষিত অবস্থা*।
|
||||
|
||||
কুবারনেটিস অবজেক্টগুলির সাথে কাজ করতে - তা তৈরি, পরিবর্তন করতে বা মুছতে - আপনার
|
||||
[কুবারনেটিস API](/bn/docs/concepts/overview/kubernetes-api/) ব্যবহার করতে হবে। উদাহরণস্বরূপ,
|
||||
যখন আপনি `kubectl` কমান্ড-লাইন ইন্টারফেস ব্যবহার করেন, তখন CLI আপনার জন্য প্রয়োজনীয়
|
||||
কুবারনেটিস API কল করে। আপনি একটি
|
||||
[Client Libraries](/docs/reference/using-api/client-libraries/) ব্যবহার করে নিজের প্রোগ্রামে কুবারনেটিস API সরাসরি ব্যবহার করতে পারেন।
|
||||
|
||||
### অবজেক্ট স্পেক এবং স্ট্যাটাস
|
||||
|
||||
প্রায় সব কুবারনেটিস অবজেক্টের একটি `spec` এবং একটি `status` নেস্টেড অবজেক্ট ফিল্ড রয়েছে
|
||||
যা অবজেক্টের কনফিগারেশন নিয়ন্ত্রণ করে: অবজেক্টের _`spec`_ এবং _`status`_।
|
||||
যে অবজেক্টগুলির `spec` থাকে, আপনার অবজেক্ট তৈরি করতে এটা নির্ধারণ করতে হবে
|
||||
যখন অবজেক্ট তৈরি করবেন,
|
||||
যে রিসোর্সের বৈশিষ্ট্য বর্ণনা প্রদান করবেন: এর _কাঙ্ক্ষিত অবস্থা_।
|
||||
|
||||
`status` অবজেক্টের _বর্তমান অবস্থা_ বর্ণনা করে, যা কুবারনেটিস সিস্টেম এবং এর উপাদানগুলি
|
||||
প্রদান এবং আপডেট করে। কুবারনেটিস
|
||||
{{< glossary_tooltip text="control plane" term_id="control-plane" >}}
|
||||
সরাসরি এবং সক্রিয়ভাবে প্রতিটি অবজেক্টের
|
||||
বর্তমান অবস্থা পরিচালনা করে যাতে আপনার প্রদত্ত অবস্থা মিলে।
|
||||
|
||||
উদাহরণস্বরূপ: কুবারনেটিসে, একটি ডিপ্লয়মেন্ট একটি অবজেক্ট যা আপনার ক্লাস্টারে চলমান একটি
|
||||
অ্যাপ্লিকেশন প্রতিনিধিত্ব করতে পারে। ডিপ্লয়মেন্ট তৈরি করতে যখন আপনি
|
||||
ডিপ্লয়মেন্ট তৈরি করেন, আপনি ডিপ্লয়মেন্ট `spec` সেট করতে পারেন যে
|
||||
আপনি চাইছেন অ্যাপ্লিকেশনের তিনটি রিপ্লিকা চলমান থাকুক।
|
||||
কুবারনেটিস সিস্টেম ডিপ্লয়মেন্ট স্পেক পড়ে এবং আপনার প্রদত্ত ডিপ্লয়মেন্ট
|
||||
এর তিনটি ইনস্ট্যান্স চালু করে, এই স্ট্যাটাস আপনার স্পেক অনুসারে আপডেট করে।
|
||||
যদি সেই ইনস্ট্যান্সগুলোর মধ্যে কোনওটি ব্যর্থ হয় (একটি স্ট্যাটাস পরিবর্তন),
|
||||
কুবারনেটিস সিস্টেম স্পেক এবং স্ট্যাটাস মধ্যে পার্থক্যের প্রতিক্রিয়া দিয়ে একটি
|
||||
সংশোধন করে এই ক্ষেত্রে, একটি প্রতিস্থাপন ইনস্ট্যান্স চালু করে।
|
||||
|
||||
বিস্তারিত তথ্যের জন্য অবজেক্ট স্পেক, স্ট্যাটাস এবং মেটাডেটা দেখুন,
|
||||
[Kubernetes API Conventions](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md).
|
||||
|
||||
### একটি কুবারনেটিস অবজেক্ট বর্ণনা
|
||||
|
||||
যখন আপনি কুবারনেটিসে একটি অবজেক্ট তৈরি করবেন, আপনাকে অবজেক্ট spec প্রদান করতে হবে
|
||||
যা দরকার তার কাঙ্ক্ষিত অবস্থা বর্ণনা করে এবং অবজেক্ট সম্পর্কে
|
||||
কিছু মৌলিক তথ্য (যেমন নাম) প্রদান করতে হবে। যখন আপনি অবজেক্ট তৈরি
|
||||
করতে কুবারনেটিস API ব্যবহার করেন (এটা সরাসরি বা `kubectl` এর মাধ্যমে),
|
||||
তখন ঐ API অনুরোধটি এই তথ্যকে একটি JSON রিকোয়েস্ট বডি হিসেবে অন্তর্ভুক্ত করতে হবে।
|
||||
সাধারণত, আপনি একটি manifest নামে পরিচিত ফাইলে kubectl কে তথ্য প্রদান করেন। নিয়ম অনুসারে, ম্যানিফেস্ট হল YAML (আপনি JSON
|
||||
ফরম্যাটও ব্যবহার করতে পারেন)। HTTP-এর মাধ্যমে API অনুরোধ করার সময় টুল যেমন kubectl একটি ম্যানিফেস্ট থেকে তথ্যকে JSON বা অন্য
|
||||
সমর্থিত সিরিয়ালাইজেশন ফরম্যাটে রূপান্তর করে।
|
||||
|
||||
এখানে একটি উদাহরণ ম্যানিফেস্ট দেওয়া হল একটি কুবারনেটিস ডিপ্লয়মেন্টের জন্য প্রয়োজনীয়
|
||||
ক্ষেত্রগুলি এবং অবজেক্ট স্পেকের জন্যের একটি নমুনা:
|
||||
|
||||
{{% code_sample file="application/deployment.yaml" %}}
|
||||
|
||||
একটি উপরের মতো ম্যানিফেস্ট ফাইল ব্যবহার করে একটি ডিপ্লয়মেন্ট তৈরি করার একটি উপায় হল
|
||||
[`kubectl apply`](/bn/docs/reference/generated/kubectl/kubectl-commands#apply) কমান্ড ব্যবহার
|
||||
করা, `kubectl` এর কমান্ড-লাইন ইন্টারফেসে `yaml` ফাইলটি আর্গুমেন্ট হিসেবে পাঠানো। একটি উদাহরণ:
|
||||
|
||||
```shell
|
||||
kubectl apply -f https://k8s.io/examples/application/deployment.yaml
|
||||
```
|
||||
|
||||
আউটপুট এর অনুরূপ:
|
||||
|
||||
```
|
||||
deployment.apps/nginx-deployment created
|
||||
```
|
||||
|
||||
|
||||
### প্রয়োজনীয় ক্ষেত্র
|
||||
|
||||
আপনার কুবারনেটিস অবজেক্ট এর জন্য ম্যানিফেস্ট (YAML বা JSON ফাইল) এ নিম্নলিখিত ক্ষেত্রগুলির জন্য মান নির্ধারণ করতে হবে:
|
||||
|
||||
* `apiVersion` - আপনি কোন ভার্সনের কুবারনেটিস API ব্যবহার করছেন তা উল্লেখ করতে হবে
|
||||
* `kind` - আপনি কোন ধরনের অবজেক্ট তৈরি করতে চান তা উল্লেখ করতে হবে
|
||||
* `metadata` - অবজেক্ট যে সাহায্য করে অনন্যভাবে সনাক্ত করা যায়, যেমন `name` স্ট্রিং, `UID`, এবং ঐচ্ছিক `namespace`
|
||||
* `spec` - অবজেক্টের জন্য আপনি কি অবস্থা চান
|
||||
|
||||
অবজেক্ট spec সুনির্দিষ্ট ফরম্যাট প্রতিটি কুবারনেটিস অবজেক্টের জন্য আলাদা, এবং
|
||||
সেই বস্তুর জন্য নির্দিষ্ট নেস্টেড ক্ষেত্র রয়েছে। [Kubernetes API রেফারেন্স](/bn/docs/reference/kubernetes-api/)
|
||||
ব্যবহার করে আপনি যে সমস্ত অবজেক্ট তৈরি করতে পারেন তার জন্য নির্দিষ্ট ফরম্যাট খুঁজে পেতে সাহায্য করতে পারে।
|
||||
|
||||
উদাহরণস্বরূপ, দেখুন [`spec` ফিল্ড](/bn/docs/reference/kubernetes-api/workload-resources/pod-v1/#PodSpec)
|
||||
Pod API রেফারেন্স এর জন্য।
|
||||
প্রতিটি Pod এর জন্য, `.spec` ক্ষেত্রটি পড এবং তার কাঙ্ক্ষিত অবস্থা (যেমন সেই পডের মধ্যে প্রতিটি কন্টেইনারের জন্য কন্টেইনার ইমেজের নাম)
|
||||
নির্দিষ্ট করে৷
|
||||
আরও একটি অবজেক্ট স্পেসিফিকেশনের উদাহরণ হল
|
||||
[`spec` ফিল্ড](/bn/docs/reference/kubernetes-api/workload-resources/stateful-set-v1/#StatefulSetSpec)
|
||||
StatefulSet API এর জন্য। StatefulSet এর জন্য, `.spec` ফিল্ড নির্দিষ্ট করে এবং সেট করে
|
||||
এর অবস্থা।
|
||||
StatefulSet এর `.spec` এর মধ্যে একটি [টেমপ্লেট](/bn/docs/concepts/workloads/pods/#pod-templates)
|
||||
পড অবজেক্টের জন্য । সেই টেমপ্লেটটি Pods বর্ণনা করে যা
|
||||
StatefulSet কন্ট্রোলার স্টেটফুলসেট স্পেসিফিকেশন সন্তুষ্ট করার জন্য তৈরি করবে।
|
||||
অন্যান্য প্রকারের অবজেক্ট গুলির জন্য বিভিন্ন `.status` থাকতে পারে; আবার, API রেফারেন্স পৃষ্ঠাগুলি
|
||||
এই `.status` ফিল্ডের গঠন এবং এর প্রত্যেক বিভিন্ন প্রকারের অবজেক্টের জন্য তার বিষয়বস্তু বিবরণ করে।
|
||||
|
||||
{{< note >}}
|
||||
YAML কনফিগারেশন ফাইল লেখার অতিরিক্ত তথ্যের জন্য
|
||||
[কনফিগারেশন সেরা অনুশীলন](/bn/docs/concepts/configuration/overview/) দেখুন।
|
||||
{{< /note >}}
|
||||
|
||||
## সার্ভার সাইড ফিল্ড ভেরিফিকেশন
|
||||
|
||||
কুবারনেটিস v1.25 থেকে শুরু করে, API সার্ভার সার্ভার সাইড
|
||||
[field validation](/bn/docs/reference/using-api/api-concepts/#field-validation)
|
||||
যা অব্যক্ত বা পুনরায় ফিল্ড অনুমান করে একটি অবজেক্টে। এটি সমস্ত কার্যকারিতা প্রদান করে
|
||||
`kubectl --validate` এর সার্ভার সাইড এ কর্মক্ষমতা।
|
||||
|
||||
`kubectl` টুলটি ব্যবহার করে `--validate` ফ্ল্যাগ ব্যবহার করে ফিল্ড ভেরিফিকেশনের স্তর সেট করে। এটি গ্রহণ করে
|
||||
মান `ignore`, `warn`, এবং `strict` এবং এটি `true` (`strict` এর সমান)
|
||||
এবং `false` ( `ignore` এর সমান) মান গ্রহণ করে। `kubectl` এর ডিফল্ট ভেরিফিকেশন সেটিং হল `--validate=true`।
|
||||
|
||||
`Strict`
|
||||
: Strict ফিল্ড ভেরিফিকেশন, ভেরিফিকেশন ব্যর্থ হওয়ায় errors দেখায়
|
||||
|
||||
`Warn`
|
||||
: ফিল্ড ভেরিফিকেশন করা হয়, কিন্তু errors গুলি অনুরোধ ব্যর্থ হওয়ার পরিবর্তে সতর্কতা হিসাবে প্রকাশ করা হয়
|
||||
|
||||
`Ignore`
|
||||
: কোনো সার্ভার সাইড ফিল্ড ভেরিফিকেশন করা হয় না
|
||||
|
||||
যখন `kubectl` এর একটি API সার্ভারে সংযোগ করতে পারে না যে কোন ফিল্ড ভেরিফিকেশন সাপোর্ট করে তখন এটি ফেলে যায়
|
||||
ক্লায়েন্ট-সাইড ভেরিফিকেশন ব্যবহার করা হয়। কুবারনেটিস 1.27 এবং তারপরের সংস্করণ সবসময় ফিল্ড ভেরিফিকেশন প্রদান করে;
|
||||
পুরাতন কুবারনেটিস রিলিসেগুলিতে এটি হতে পারে না। যদি আপনার ক্লাস্টার v1.27 এর চেয়ে পুরানো হয় তবে এপনার কুবারনেটিস
|
||||
সংস্করণের জন্য ডকুমেন্টেশন চেক করুন।
|
||||
|
||||
## {{% heading "whatsnext" %}}
|
||||
|
||||
যদি আপনি নতুন কুবারনেটিসে এসেছেন, তাহলে নিম্নলিখিত বিষয়গুলি সম্পর্কে আরো পড়ুন:
|
||||
|
||||
* [Pods](/bn/docs/concepts/workloads/pods/) যা হলে সবচেয়ে গুরুত্বপূর্ণ মৌলিক কুবারনেটিস অবজেক্ট।
|
||||
* [Deployment](/bn/docs/concepts/workloads/controllers/deployment/) অবজেক্টগুলি।
|
||||
* [Controllers](/bn/docs/concepts/architecture/controller/) কুবারনেটিসে।
|
||||
* [kubectl](/bn/docs/reference/kubectl/) এবং [kubectl কমান্ড](/bn/docs/reference/generated/kubectl/kubectl-commands)।
|
||||
|
||||
[কুবারনেটিস অবজেক্ট ম্যানেজমেন্ট](/bn/docs/concepts/overview/working-with-objects/object-management/)
|
||||
`kubectl` ব্যবহার করে অবজেক্ট পরিচালনা করার উপায়গুলি বিস্তারিত ভাবে বর্ণনা করে।
|
||||
আপনার কাছে যদি আগে থেকে না থাকে তাহলে [kubectl ইনস্টল করুন](/bn/docs/tasks/tools/#kubectl)।
|
||||
|
||||
কুবারনেটিস API সাধারণভাবে সম্পর্কে জানতে, পড়ুন:
|
||||
|
||||
* [Kubernetes API overview](/bn/docs/reference/using-api/)
|
||||
|
||||
কুবারনেটিসে অবজেক্টগুলির বিস্তারিত জানতে, এই বিভাগে অন্যান্য পৃষ্ঠাগুলি পড়ুন:
|
||||
<!-- Docsy automatically includes a list of pages in the section -->
|
Loading…
Reference in New Issue