ক্লাস্টার নেটওয়ার্কিং
নেটওয়ার্কিং কুবারনেটিসের একটি কেন্দ্রীয় অংশ, কিন্তু এটি কীভাবে কাজ করে তা বোঝা চ্যালেঞ্জিং হতে পারে। মোট ৪টি আলাদা নেটওয়ার্কিং সমস্যা রয়েছে যা সমাধান করতে হয়:
- অত্যন্ত ঘনিষ্ঠভাবে সংযুক্ত কন্টেইনার-টু-কন্টেইনার যোগাযোগ: এটি পড এবং
localhost
যোগাযোগের মাধ্যমে সমাধান করা হয়। - পড-টু-পড যোগাযোগ: এটি এই ডকুমেন্টের প্রধান আলোচ্য বিষয়।
- পড-টু-সার্ভিস যোগাযোগ: এটি সার্ভিস দ্বারা আলোচিত হয়েছে।
- বাহ্যিক-টু-সার্ভিস যোগাযোগ: এটিও সার্ভিস দ্বারা আলোচিত হয়েছে।
কুবারনেটিস মূলত অ্যাপ্লিকেশনগুলির মধ্যে মেশিন ভাগ করে নেওয়ার বিষয়ে। সাধারণত, মেশিন ভাগ করে নেওয়ার জন্য নিশ্চিত করতে হয় যে দুটি অ্যাপ্লিকেশন একই পোর্ট ব্যবহার করার চেষ্টা না করে। বড় আকারের সিস্টেমে বিভিন্ন ডেভেলপারদের মধ্যে পোর্ট সমন্বয় করা খুব কঠিন এবং ব্যবহারকারীদের নিয়ন্ত্রণের বাইরে ক্লাস্টার-লেভেলের সমস্যাগুলি প্রকাশ করে।
ডাইনামিক পোর্ট বরাদ্দ সিস্টেমে অনেক জটিলতা আনে - প্রতিটি অ্যাপ্লিকেশনকে পোর্টগুলি ফ্ল্যাগ হিসাবে নিতে হয়, API সার্ভারগুলিকে কনফিগারেশন ব্লকগুলিতে ডাইনামিক পোর্ট নম্বর কীভাবে ঢোকাতে হয় তা জানতে হয়, সার্ভিসগুলিকে একে অপরকে কীভাবে খুঁজে পেতে হয় তা জানতে হয়, ইত্যাদি। এই সমস্যাগুলি সমাধান করার পরিবর্তে, কুবারনেটিস একটি ভিন্ন পদ্ধতি গ্রহণ করে।
কুবারনেটিস নেটওয়ার্কিং মডেল সম্পর্কে জানতে, এখানে দেখুন।
কুবারনেটিস IP অ্যাড্রেস রেঞ্জ
কুবারনেটিস ক্লাস্টারগুলির জন্য পড, সার্ভিস এবং নোডের জন্য নন-ওভারল্যাপিং IP অ্যাড্রেস বরাদ্দ করতে হয়, নিম্নলিখিত উপাদানগুলিতে কনফিগার করা উপলব্ধ অ্যাড্রেস রেঞ্জ থেকে:
- নেটওয়ার্ক প্লাগইনটি পডগুলিকে IP অ্যাড্রেস বরাদ্দ করার জন্য কনফিগার করা হয়।
- kube-apiserver সার্ভিসগুলিকে IP অ্যাড্রেস বরাদ্দ করার জন্য কনফিগার করা হয়।
- kubelet বা cloud-controller-manager নোডগুলিকে IP অ্যাড্রেস বরাদ্দ করার জন্য কনফিগার করা হয়।
ক্লাস্টার নেটওয়ার্কিং প্রকার
কুবারনেটিস ক্লাস্টারগুলি, কনফিগার করা IP ফ্যামিলিগুলির উপর ভিত্তি করে, এই প্রকারগুলিতে বিভক্ত করা যেতে পারে:
- শুধুমাত্র IPv4: নেটওয়ার্ক প্লাগইন, kube-apiserver এবং kubelet/cloud-controller-manager শুধুমাত্র IPv4 অ্যাড্রেস বরাদ্দ করার জন্য কনফিগার করা আছে।
- শুধুমাত্র IPv6: নেটওয়ার্ক প্লাগইন, kube-apiserver এবং kubelet/cloud-controller-manager শুধুমাত্র IPv6 অ্যাড্রেস বরাদ্দ করার জন্য কনফিগার করা আছে।
- IPv4/IPv6 বা IPv6/IPv4 ডুয়াল-স্ট্যাক:
- নেটওয়ার্ক প্লাগইন IPv4 এবং IPv6 অ্যাড্রেস বরাদ্দ করার জন্য কনফিগার করা আছে।
- kube-apiserver IPv4 এবং IPv6 অ্যাড্রেস বরাদ্দ করার জন্য কনফিগার করা আছে।
- kubelet বা cloud-controller-manager IPv4 এবং IPv6 অ্যাড্রেস বরাদ্দ করার জন্য কনফিগার করা আছে।
- সমস্ত উপাদানগুলি কনফিগার করা প্রাথমিক IP ফ্যামিলির সাথে সম্মত হতে হবে।
কুবারনেটিস ক্লাস্টারগুলি শুধুমাত্র পড, সার্ভিস এবং নোড অবজেক্টগুলিতে উপস্থিত IP ফ্যামিলিগুলি বিবেচনা করে,
প্রতিনিধিত্ব করা অবজেক্টগুলির বিদ্যমান IP গুলি থেকে স্বাধীনভাবে। উদাহরণস্বরূপ, একটি সার্ভার বা একটি পডের
ইন্টারফেসগুলিতে একাধিক IP অ্যাড্রেস থাকতে পারে, কিন্তু শুধুমাত্র node.status.addresses
বা pod.status.ips
এ থাকা IP অ্যাড্রেসগুলিই কুবারনেটিস নেটওয়ার্ক মডেল বাস্তবায়ন এবং ক্লাস্টারের প্রকার নির্ধারণের জন্য বিবেচনা করা হয়।
কীভাবে কুবারনেটিস নেটওয়ার্ক মডেল বাস্তবায়ন করা যায়
নেটওয়ার্ক মডেলটি প্রতিটি নোডে কন্টেইনার রানটাইম দ্বারা বাস্তবায়িত হয়। সবচেয়ে সাধারণ কন্টেইনার রানটাইমগুলি তাদের নেটওয়ার্ক এবং সুরক্ষা ক্ষমতা পরিচালনা করার জন্য কন্টেইনার নেটওয়ার্ক ইন্টারফেস (CNI) প্লাগইন ব্যবহার করে। বিভিন্ন বিক্রেতাদের থেকে অনেক ভিন্ন CNI প্লাগইন রয়েছে। এদের মধ্যে কিছু শুধুমাত্র নেটওয়ার্ক ইন্টারফেস যোগ করা এবং সরানোর মৌলিক বৈশিষ্ট্য প্রদান করে, অন্যদিকে অন্যান্যরা আরও জটিল সমাধান প্রদান করে, যেমন অন্যান্য কন্টেইনার অর্কেস্ট্রেশন সিস্টেমের সাথে ইন্টিগ্রেশন, একাধিক CNI প্লাগইন চালানো, উন্নত IPAM বৈশিষ্ট্য ইত্যাদি।
কুবারনেটিস দ্বারা সমর্থিত নেটওয়ার্কিং অ্যাডঅন এর একটি অসম্পূর্ণ তালিকার জন্য এই পৃষ্ঠা দেখুন।
এর পরের কি
নেটওয়ার্কিং মডেলের প্রাথমিক ডিজাইন এবং এর যৌক্তিকতা নেটওয়ার্কিং ডিজাইন ডকুমেন্ট এ আরও বিস্তারিতভাবে বর্ণনা করা হয়েছে। কুবারনেটিস নেটওয়ার্কিং উন্নত করার লক্ষ্যে ভবিষ্যত পরিকল্পনা এবং কিছু চলমান প্রচেষ্টার জন্য, অনুগ্রহ করে SIG-Network KEPs দেখুন।