Docker Swarm Networks (ডকার সোয়ার্ম নেটওয়ার্কিং)
ডকার সোয়ার্মের নেটওয়ার্কিং সিঙ্গেল-হোস্ট ডকারের চেয়ে অনেক বেশি শক্তিশালী এবং জটিল। এটি একাধিক ফিজিক্যাল সার্ভারের মধ্যে কন্টেইনারগুলোর মধ্যে যোগাযোগ এবং 외부 ট্রাফিক ম্যানেজমেন্ট সহজ করে তোলে।
১. ওভারলে নেটওয়ার্ক (Overlay Network)
ওভারলে নেটওয়ার্ক হলো সোয়ার্মের সবচেয়ে গুরুত্বপূর্ণ নেটওয়ার্কিং ফিচার। এটি বিভিন্ন ডকার হোস্টের (Nodes) মধ্যে একটি ভার্চুয়াল নেটওয়ার্ক তৈরি করে।
- কাজ: যখন একটি কন্টেইনার অন্য হোস্টে থাকা কন্টেইনারের সাথে যোগাযোগ করতে চায়, তখন ওভারলে নেটওয়ার্ক সেটি সম্ভব করে।
- তৈরি করার নিয়ম:bash
docker network create --driver overlay my-overlay-net - ব্যবহার: কন্টেইনার বা সার্ভিস তৈরির সময়
--network my-overlay-netফ্ল্যাগ ব্যবহার করতে হয়।
২. ইনগ্রেস নেটওয়ার্ক (Ingress Network)
এটি একটি বিশেষ ওভারলে নেটওয়ার্ক যা সোয়ার্মের ইনকামিং ট্রাফিক হ্যান্ডেল করে।
- যখন আপনি কোনো সার্ভিস পোর্ট এক্সপোজ করেন (যেমন:
-p 80:80), তখন সোয়ার্ম স্বয়ংক্রিয়ভাবে সেটি ইনগ্রেস নেটওয়ার্কের সাথে যুক্ত করে। - Routing Mesh: এটি ইনগ্রেস নেটওয়ার্কের একটি অংশ। এর ফলে ক্লাস্টারের যেকোনো নোডের দেওয়া পোর্টে হিট করলে সোয়ার্ম ট্রাফিকটিকে ইন্টারনালি সঠিক কন্টেইনারের কাছে পৌঁছে দেয়, এমনকি সেই কন্টেইনারটি যদি অন্য কোনো হোস্টে থাকে তবুও।
৩. সার্ভিস ডিসকভারি (Service Discovery)
সোয়ার্মে প্রতিটি সার্ভিসের একটি ইন্টারনাল DNS নেম থাকে।
- আপনি যদি
webনামে একটি সার্ভিস তৈরি করেন, তবে ক্লাস্টারের অন্য যেকোনো কন্টেইনার শুধুwebনাম ব্যবহার করেই তার সাথে যোগাযোগ করতে পারবে। - সোয়ার্মের ইন্টারনাল DNS সার্ভার স্বয়ংক্রিয়ভাবে সার্ভিসের নামকে তার ভার্চুয়াল IP (VIP) তে রেজলভ করে।
৪. লোড ব্যালান্সিং (Load Balancing)
সোয়ার্মে দুই লেভেলে লোড ব্যালান্সিং হয়: ১. External Load Balancing: ইনগ্রেস রাউটিং মেশ ব্যবহার করে বাইরের ট্রাফিক বিতরণ। ২. Internal Load Balancing: সার্ভিসের মধ্যে ট্রাফিক বিতরণ। এর দুটি মোড আছে:
VIP vs DNS Round-Robin
| বৈশিষ্ট্য | Virtual IP (VIP) - Default | DNS Round-Robin (DNS RR) |
|---|---|---|
| কিভাবে কাজ করে | সার্ভিসকে একটি ভার্চুয়াল IP দেওয়া হয়। | DNS কোয়েরি করলে সব কন্টেইনারের IP লিস্ট পাওয়া যায়। |
| ব্যালান্সিং | ডকার ইঞ্জিন ইন্টারনালি লোড ব্যালান্স করে। | ক্লায়েন্ট অ্যাপ্লিকেশনকে নিজে থেকে ব্যালান্স করতে হয়। |
| সুবিধা | খুব নির্ভরযোগ্য এবং সেটআপ সহজ। | কোনো অতিরিক্ত লেয়ার নেই, কাস্টম লজিক ব্যবহার করা যায়। |
মডিফাই করার নিয়ম:
bash
docker service create --name my-app --endpoint-mode dnsrr my-image৫. সোয়ার্ম নেটওয়ার্কিংয়ের সুবিধা
- Security: ওভারলে নেটওয়ার্কের ট্রাফিক ডিফল্টভাবে এনক্রিপ্টেড করা যায় (
--opt encrypted). - Scalability: নোড সংখ্যা বাড়লেও নেটওয়ার্কিং কনফিগারেশনে হাত দিতে হয় না।
- High Availability: রাউটিং মেশ নিশ্চিত করে যে যেকোনো নোডে হিট করলে ইউজার সার্ভিসটি পাবে।