Kubernetes nodeSelector কি?
একটি nodeSelector হল Kubernetes-এ একটি সময় নির্ধারণের সীমাবদ্ধতা যা একটি কী আকারে একটি মানচিত্র নির্দিষ্ট করে: মান জোড়া কাস্টম পড নির্বাচক এবং নোড লেবেলগুলি কী, মান জোড়া নির্ধারণ করতে ব্যবহৃত হয়। নোডের উপর লেবেল করা nodeSelector কে কী: মান জোড়ার সাথে মেলে যাতে একটি নির্দিষ্ট পড একটি নির্দিষ্ট নোডে চালানো যায়। পড নির্ধারণ করতে, নোডগুলিতে লেবেল ব্যবহার করা হয় এবং পডগুলিতে নোডনির্বাচক ব্যবহার করা হয়। ওপেনশিফ্ট কন্টেইনার প্ল্যাটফর্ম নোডের পডগুলিকে নোডসেলেক্টর ব্যবহার করে লেবেলগুলির সাথে মেলে।
তদুপরি, লেবেল এবং নোডসেলেক্টর একটি নির্দিষ্ট নোডে কোন পড নির্ধারণ করা হবে তা নিয়ন্ত্রণ করতে ব্যবহৃত হয়। আপনি যখন লেবেল এবং নোড সিলেক্টর ব্যবহার করেন, তখন প্রথমে নোডটিকে লেবেল করুন যাতে পডগুলি নির্ধারিত না হয় এবং তারপরে পডে নোড সিলেক্টর যোগ করুন। একটি নির্দিষ্ট নোডে একটি নির্দিষ্ট পড স্থাপন করার জন্য, নোডসিলেক্টর ব্যবহার করা হয়, যখন ক্লাস্টার-ওয়াইড নোডসিলেক্টর আপনাকে ক্লাস্টারের যে কোনও জায়গায় উপস্থিত একটি নির্দিষ্ট নোডে একটি নতুন পড স্থাপন করতে দেয়। প্রোজেক্ট নোড সিলেক্টরটি প্রোজেক্টের একটি নির্দিষ্ট নোডে নতুন পড বসাতে ব্যবহৃত হয়।
পূর্বশর্ত
Kubernetes nodeSelector ব্যবহার করতে, নিশ্চিত করুন যে আপনার সিস্টেমে নিম্নলিখিত সরঞ্জামগুলি ইনস্টল করা আছে:
- উবুন্টু 20.04 বা অন্য কোন সর্বশেষ সংস্করণ
- ন্যূনতম এক কর্মী নোড সহ Minikube ক্লাস্টার
- Kubectl কমান্ড লাইন টুল
এখন, আমরা পরবর্তী বিভাগে চলে যাচ্ছি যেখানে আমরা প্রদর্শন করব কিভাবে আপনি একটি কুবারনেটস ক্লাস্টারে নোডসেলেক্টর ব্যবহার করতে পারেন।
কুবারনেটসে nodeSelector কনফিগারেশন
একটি পড শুধুমাত্র nodeSelector ব্যবহার করে একটি নির্দিষ্ট নোডে চালানোর জন্য সীমাবদ্ধ করা যেতে পারে। nodeSelector হল একটি নোড নির্বাচনের সীমাবদ্ধতা যা পড স্পেসিফিকেশন PodSpec-এ উল্লেখ করা হয়েছে। সহজ কথায়, nodeSelector হল একটি শিডিউলিং বৈশিষ্ট্য যা আপনাকে একটি নোডে পডের সময় নির্ধারণ করতে পডের উপর নিয়ন্ত্রণ দেয় যাতে ব্যবহারকারীর দ্বারা nodeSelector লেবেলের জন্য একই লেবেল নির্দিষ্ট করা থাকে। কুবারনেটসে নোডসেলেক্টর ব্যবহার বা কনফিগার করতে, আপনার মিনিকুব ক্লাস্টার প্রয়োজন। নীচে দেওয়া কমান্ড দিয়ে মিনিকুব ক্লাস্টার শুরু করুন:
> মিনিকুব শুরু করুন
এখন যেহেতু মিনিকুব ক্লাস্টারটি সফলভাবে শুরু হয়েছে, আমরা কুবারনেটসে নোড সিলেক্টরের কনফিগারেশনের বাস্তবায়ন শুরু করতে পারি। এই নথিতে আমরা আপনাকে দুটি স্থাপনা তৈরি করতে গাইড করব, একটি নোডসিলেক্টর ছাড়াই এবং অন্যটি নোডসিলেক্টরের সাথে।
nodeSelector ছাড়াই স্থাপনা কনফিগার করুন
প্রথমে, আমরা নীচে দেওয়া কমান্ডটি ব্যবহার করে ক্লাস্টারে বর্তমানে সক্রিয় সমস্ত নোডের বিবরণ বের করব:
> kubectl নোড পেতেএই কমান্ডটি নাম, স্থিতি, ভূমিকা, বয়স এবং সংস্করণ পরামিতিগুলির বিশদ বিবরণ সহ ক্লাস্টারে উপস্থিত সমস্ত নোডের তালিকা করবে। নীচে দেওয়া নমুনা আউটপুট দেখুন:
এখন, আমরা পরীক্ষা করব যে ক্লাস্টারের নোডগুলিতে কী কী দাগ সক্রিয় আছে যাতে আমরা সেই অনুযায়ী নোডে পডগুলি স্থাপন করার পরিকল্পনা করতে পারি। নীচে দেওয়া কমান্ডটি নোডে প্রয়োগ করা দাগের বর্ণনা পেতে ব্যবহার করা হবে। নোডের উপর কোন দাগ সক্রিয় থাকা উচিত নয় যাতে পডগুলি সহজেই এটিতে স্থাপন করা যায়। সুতরাং, আসুন নিম্নলিখিত কমান্ডটি কার্যকর করার মাধ্যমে ক্লাস্টারে কী কী ট্যান্ট সক্রিয় রয়েছে তা দেখা যাক:
> kubectl নোড মিনিকুব বর্ণনা করে | আঁকড়ে ধরে কলঙ্ক
উপরে প্রদত্ত আউটপুট থেকে, আমরা দেখতে পাচ্ছি যে নোডে কোন দাগ প্রয়োগ করা হয়নি, ঠিক ঠিক যা আমাদের নোডে পড স্থাপন করতে হবে। এখন, পরবর্তী ধাপে কোনো নোড সিলেক্টর উল্লেখ না করেই একটি স্থাপনা তৈরি করা। এই বিষয়ে, আমরা একটি YAML ফাইল ব্যবহার করব যেখানে আমরা nodeSelector কনফিগারেশন সংরক্ষণ করব। এখানে সংযুক্ত কমান্ডটি YAML ফাইল তৈরির জন্য ব্যবহার করা হবে:
> ন্যানো deplond.yamlএখানে, আমরা ন্যানো কমান্ড দিয়ে deplond.yaml নামে একটি YAML ফাইল তৈরি করার চেষ্টা করছি।
এই কমান্ডটি কার্যকর করার পরে, আমাদের কাছে একটি deplond.yaml ফাইল থাকবে যেখানে আমরা স্থাপনার কনফিগারেশন সংরক্ষণ করব। নীচে দেওয়া স্থাপনার কনফিগারেশন দেখুন:
এখন, আমরা স্থাপনার কনফিগারেশন ফাইল ব্যবহার করে স্থাপনা তৈরি করব। কনফিগারেশন তৈরি করতে deplond.yaml ফাইলটি 'create' কমান্ডের সাথে ব্যবহার করা হবে। নীচে দেওয়া সম্পূর্ণ কমান্ড দেখুন:
> kubectl তৈরি করুন -চ deplond.yaml
উপরে দেখানো হিসাবে, স্থাপনা সফলভাবে তৈরি করা হয়েছে কিন্তু nodeSelector ছাড়াই। এখন, নীচের কমান্ডের সাহায্যে ক্লাস্টারে উপলব্ধ নোডগুলি পরীক্ষা করা যাক:
> kubectl শুঁটি পেতেএটি ক্লাস্টারে উপলব্ধ সমস্ত পডের তালিকা করবে। নিচে দেওয়া আউটপুট দেখুন:
এর পরে, আমাদের প্রতিলিপিগুলির গণনা পরিবর্তন করতে হবে যা deplond.yaml ফাইলটি সম্পাদনা করে করা যেতে পারে। শুধু deplond.yaml ফাইলটি খুলুন এবং প্রতিলিপিগুলির মান সম্পাদনা করুন। এখানে, আমরা replicas: 3 থেকে replicas: 30 এ পরিবর্তন করছি। নীচে দেওয়া স্ন্যাপশটে পরিবর্তনটি দেখুন:
এখন, পরিবর্তনগুলি স্থাপনার সংজ্ঞা ফাইল থেকে স্থাপনায় প্রয়োগ করা দরকার এবং এটি নিম্নলিখিত কমান্ড ব্যবহার করে করা যেতে পারে:
> kubectl প্রয়োগ করুন -চ deplond.yaml
এখন, আসুন -o চওড়া বিকল্পটি ব্যবহার করে পডগুলির আরও বিশদ পরীক্ষা করা যাক:
> kubectl শুঁটি পেতে -দ্য প্রশস্ত
উপরে প্রদত্ত আউটপুট থেকে, আমরা দেখতে পাচ্ছি যে নোডে নতুন নোডগুলি তৈরি এবং নির্ধারিত হচ্ছে যেহেতু আমরা ক্লাস্টার থেকে যে নোডটি ব্যবহার করছি তাতে কোনও কলঙ্ক সক্রিয় নেই। তাই, পডগুলি শুধুমাত্র কাঙ্খিত নোডে নির্ধারিত হয় তা নিশ্চিত করার জন্য আমাদের বিশেষভাবে একটি কলঙ্ক সক্রিয় করতে হবে। এর জন্য, আমাদের মাস্টার নোডে লেবেল তৈরি করতে হবে:
> kubectl লেবেল নোড মাস্টার অন-মাস্টার= সত্যnodeSelector দিয়ে স্থাপনা কনফিগার করুন
একটি নোড সিলেক্টর দিয়ে স্থাপনার কনফিগার করার জন্য, আমরা একই প্রক্রিয়া অনুসরণ করব যা কোনো নোড সিলেক্টর ছাড়াই স্থাপনার কনফিগারেশনের জন্য অনুসরণ করা হয়েছে।
প্রথমে, আমরা 'ন্যানো' কমান্ড দিয়ে একটি YAML ফাইল তৈরি করব যেখানে আমাদের স্থাপনার কনফিগারেশন সংরক্ষণ করতে হবে।
> ন্যানো nd.yamlএখন, ফাইলে স্থাপনার সংজ্ঞা সংরক্ষণ করুন। কনফিগারেশন সংজ্ঞাগুলির মধ্যে পার্থক্য দেখতে আপনি উভয় কনফিগারেশন ফাইলের তুলনা করতে পারেন।
এখন, নিচের কমান্ড দিয়ে nodeSelector এর স্থাপনা তৈরি করুন:
> kubectl তৈরি করুন -চ nd.yaml
-o প্রশস্ত পতাকা ব্যবহার করে পডের বিশদ বিবরণ পান:
> kubectl শুঁটি পেতে -দ্য প্রশস্ত
উপরে দেওয়া আউটপুট থেকে, আমরা লক্ষ্য করতে পারি যে পডগুলি মিনিকুব নোডে স্থাপন করা হচ্ছে। ক্লাস্টারে নতুন পডগুলি কোথায় স্থাপন করা হবে তা পরীক্ষা করতে আসুন প্রতিলিপিগুলির গণনা পরিবর্তন করি।
নিম্নলিখিত কমান্ড ব্যবহার করে স্থাপনার উপর নতুন পরিবর্তনগুলি প্রয়োগ করুন:
> kubectl প্রয়োগ করুন -চ nd.yaml
উপসংহার
এই নিবন্ধে, আমরা কুবারনেটসে নোডসিলেক্টর কনফিগারেশন সীমাবদ্ধতার একটি ওভারভিউ পেয়েছি। আমরা Kubernetes-এ নোডসিলেক্টর কী তা শিখেছি এবং একটি সাধারণ দৃশ্যের সাহায্যে আমরা শিখেছি কীভাবে নোডসিলেক্টর কনফিগারেশন সীমাবদ্ধতা সহ এবং ছাড়াই একটি স্থাপনা তৈরি করতে হয়। আপনি এই নিবন্ধটি উল্লেখ করতে পারেন যদি আপনি nodeSelector ধারণায় নতুন হন এবং সমস্ত প্রাসঙ্গিক তথ্য খুঁজে পান।