Completed localization of k8s working with object file

pull/45418/head
MD TANVIR AHMED 2024-03-02 15:28:53 +00:00
parent 2395b0f19f
commit e080feca7c
1 changed files with 175 additions and 0 deletions

View File

@ -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](/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).
### একটি কুবারনেটিস অবজেক্ট বর্ণনা
যখন আপনি কুবারনেটিসে একটি অবজেক্ট তৈরি করছেন, আপনাকে অবজেক্ট স্পেক উপায়
যা দরকার তার কাঙ্ক্ষিত অবস্থা বর্ণনা করে এবং অবজেক্ট সম্পর্কে
কিছু মৌলিক তথ্য (যেমন নাম) প্রদান করতে হবে। যখন আপনি অবজেক্ট তৈরি
করতে কুবারনেটিস API ব্যবহার করেন (এটা সরাসরি বা `kubectl` এর মাধ্যমে),
তখন ঐ API অনুরোধটি এই তথ্যকে একটি JSON রিকোয়েস্ট বডি হিসেবে অন্তর্ভুক্ত করতে হবে।
সাধারণত, আপনি ম্যানিফেস্ট নামে ফাইলে তথ্য সরবরাহ করেন (আপনি যদি চান তবে আপনি JSON ফরম্যাট
ব্যবহার করতে পারেন এই ম্যানিফেস্টগুলির জন্য নিয়মিত হতে হবে)। `kubectl` এর মতো টুলগুলি
HTTP অনুরোধের সময় ম্যানিফেস্ট থেকে তথ্যকে JSON বা অন্য যে কোনও সমর্থিত সিরিয়ালাইজেশন ফরম্যাটে রূপান্তর করে।
এখানে একটি উদাহরণ ম্যানিফেস্ট দেওয়া হল একটি কুবারনেটিস ডিপ্লয়মেন্টের জন্য প্রয়োজনীয়
ক্ষেত্রগুলি এবং অবজেক্ট স্পেকের জন্যের একটি নমুনা:
{{% code_sample file="application/deployment.yaml" %}}
একটি উপরের মতো ম্যানিফেস্ট ফাইল ব্যবহার করে একটি ডিপ্লয়মেন্ট তৈরি করার একটি উপায় হল
[`kubectl apply`](/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` - অবজেক্টের জন্য আপনি কি অবস্থা চান
অবজেক্ট স্পেকের নির্দিষ্ট বিন্যাস প্রতিটি Kubernetes অবজেক্টের জন্য বিভিন্ন এবং এই বিশিষ্ট
ফিল্ডগুলি সহজ। [Kubernetes API রেফারেন্স](/docs/reference/kubernetes-api/)
এই অবজেক্টের সমস্ত অবজেক্টের জন্য স্পেক ফরম্যাট খুঁজে পাওয়ার সাহায্য করতে পারে।
উদাহরণস্বরূপ, দেখুন [`spec` ফিল্ড](/docs/reference/kubernetes-api/workload-resources/pod-v1/#PodSpec)
Pod API রেফারেন্স এর জন্য।
প্রতিটি Pod এর জন্য, `.spec` ফিল্ড পড় এবং এর অবস্থার জন্য নির্দিষ্ট পড়ে বসে (পরিমাণ এবং
পড়ের মধ্যে কন্টেনার ইমেজের নাম সহ)।
আরও একটি অবজেক্ট স্পেসিফিকেশনের উদাহরণ হল
[`spec` ফিল্ড](/docs/reference/kubernetes-api/workload-resources/stateful-set-v1/#StatefulSetSpec)
StatefulSet API এর জন্য। StatefulSet এর জন্য, `.spec` ফিল্ড নির্দিষ্ট করে এবং সেট করে
এর অবস্থা।
StatefulSet এর `.spec` এর মধ্যে একটি [template](/docs/concepts/workloads/pods/#pod-templates)
পড় অবজেক্ট স্থাপনাকারী পড় প্রদান করে যা
StatefulSet স্পেসিফিকেশন পূরণ করার জন্য অনুমতি দেয়।
অন্যান্য প্রকারের অবজেক্ট গুলির জন্য বিভিন্ন `.status` থাকতে পারে; আবার, API রেফারেন্স পৃষ্ঠাগুলি
এই `.status` ফিল্ডের গঠন এবং এর প্রত্যেক বিভিন্ন প্রকারের অবজেক্টের জন্য তার বিষয়বস্তু বিবরণ করে।
{{< note >}}
[YAML কনফিগারেশনের সেরা প্রথাগুলি](/docs/concepts/configuration/overview/) এক্ষেত্রে অতিরিক্ত
তথ্য দেওয়া আছে।
{{< /note >}}
## সার্ভার সাইড ফিল্ড ভেরিফিকেশন
Kubernetes v1.25 থেকে শুরু করে, API সার্ভার সার্ভার সাইড
[field validation](/docs/reference/using-api/api-concepts/#field-validation)
যা অব্যক্ত বা পুনরায় ফিল্ড অনুমান করে একটি অবজেক্টে। এটি সমস্ত কার্যকারিতা প্রদান করে
`kubectl --validate` এর সার্ভার সাইড এ কর্মক্ষমতা।
`kubectl` টুলটি ব্যবহার করে `--validate` ফ্ল্যাগ ব্যবহার করে ফিল্ড ভেরিফিকেশনের স্তর সেট করে। এটি গ্রহণ করে
মান `ignore`, `warn`, এবং `strict` এবং এটি `true` (যুক্ত অর্থ `strict`)
এবং `false` (যুক্ত অর্থ `ignore`) মান গ্রহণ করে। `kubectl` এর ডিফল্ট ভেরিফিকেশন সেটিং হল `--validate=true`
`Strict`
: সখ্য ফিল্ড ভেরিফিকেশন, ভেরিফিকেশন ব্যর্থ হওয়ায় ত্রুটি করে
`Warn`
: ফিল্ড ভেরিফিকেশন করা হয়, কিন্তু ত্রুটিগুলি একটি বিরোধ হিসেবে উল্লেখ করা হয় অবশ্য নয় অনুরোধ ব্যর্থ হতে
`Ignore`
: কোনো সার্ভার সাইড ফিল্ড ভেরিফিকেশন করা হয় না
যখন `kubectl` এর একটি API সার্ভারে সংযোগ করতে পারে না যে কোন ফিল্ড ভেরিফিকেশন সাপোর্ট করে তখন এটি ফেলে যায়
ক্লায়েন্ট-সাইড ভেরিফিকেশন ব্যবহার করা হয়। কুবারনেটিস 1.27 এবং তারপরের সংস্করণ সবসময় ফিল্ড ভেরিফিকেশন প্রদান করে;
পুরাতন কুবারনেটিস রিলিসেগুলিতে এটি হতে পারে না। যদি আপনার ক্লাস্টার v1.27 এর চেয়ে পুরানো হয় তবে এপনার কুবারনেটিস
সংস্করণের জন্য ডকুমেন্টেশন চেক করুন।
## {{% heading "whatsnext" %}}
যদি আপনি নতুন কুবারনেটিসে এসেছেন, তাহলে নিম্নলিখিত বিষয়গুলি সম্পর্কে আরো পড়ুন:
* [Pods](/docs/concepts/workloads/pods/) যা হলে সবচেয়ে গুরুত্বপূর্ণ মৌলিক কুবারনেটিস অবজেক্ট।
* [Deployment](/docs/concepts/workloads/controllers/deployment/) অবজেক্টগুলি।
* [Controllers](/docs/concepts/architecture/controller/) কুবারনেটিসে।
* [kubectl](/docs/reference/kubectl/) এবং [kubectl কমান্ড](/docs/reference/generated/kubectl/kubectl-commands)।
[Kubernetes Object Management](/docs/concepts/overview/working-with-objects/object-management/)
`kubectl` ব্যবহার করে অবজেক্ট পরিচালনা করার উপায়গুলি বিস্তারিত ভাবে বর্ণনা করে।
আপনার কাছে এটি নেই তাহলে [kubectl ইনস্টল করুন](/docs/tasks/tools/#kubectl) যদি আগে থেকে না থাকে।
কুবারনেটিস API সাধারণভাবে সম্পর্কে জানতে, পড়ুন:
* [Kubernetes API overview](/docs/reference/using-api/)
কুবারনেটিসে অবজেক্টগুলির বিস্তারিত জানতে, এই বিভাগে অন্যান্য পৃষ্ঠাগুলি পড়ুন:
<!-- ডক্সি স্বয়ংক্রিয়ভাবে বিভাগের পৃষ্ঠাগুলির একটি তালিকা অন্তর্ভুক্ত করে -->