কুবারনেটসে কীভাবে একটি রাউন্ড রবিন লোড ব্যালেন্সার তৈরি করবেন

Kubaranetase Kibhabe Ekati Ra Unda Rabina Loda Byalensara Tairi Karabena



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

একটি লোড ব্যালেন্সার কি?

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







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



Kubernetes-এ, পরিষেবা কনফিগারেশন ফাইল নিম্নলিখিত মত কিছু দেখায়:







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

লোড ব্যালেন্সারের কাজের নীতি

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



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

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

রাউন্ড রবিন লোড ব্যালেন্সার তৈরি

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

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

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

ধাপ 1: ধরুন আপনি একটি রাউন্ড-রবিন অ্যালগরিদমে পাঁচটি পড কনফিগার করেছেন। লোড ব্যালেন্সার একটি নির্দিষ্ট ক্রমানুসারে প্রতিটি পডে অনুরোধ পাঠাবে। প্রাথমিক পড প্রথম অনুরোধ গ্রহণ করে। দ্বিতীয় পড দ্বিতীয় অনুরোধ গ্রহণ করে।

ধাপ ২: একইভাবে, একটি তৃতীয় অনুরোধ তৃতীয় পডে পাঠানো হয়, এবং তাই। কিন্তু ক্রম পরিবর্তন হয় না। একটি গুরুত্বপূর্ণ বিষয় হল যে একটি রাউন্ড-রবিন অ্যালগরিদম কখনই একটি সার্ভারে বর্তমান লোডের মতো ভেরিয়েবলের সাথে ডিল করে না। তার মানে এটা স্থির। এই কারণে এটি উত্পাদন ট্র্যাফিক পছন্দ করা হয় না.

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

উপসংহার

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