Docker Swarm Stack Deployment (ডকর সোয়ার্ম স্ট্যাক ডিপ্লয়মেন্ট)
ডকার কম্পোজ ব্যবহার করে আমরা যেমন সিঙ্গেল হোস্টের জন্য মাল্টি-কন্টেইনার অ্যাপ তৈরি করি, সোয়ার্ম ক্লাস্টারের জন্য ঠিক একইভাবে 'Stack' ব্যবহার করা হয়। একটি স্ট্যাক হলো কতগুলো সার্ভিসের সমন্বয় যা একটি অ্যাপ্লিকেশনের অংশ।
১. স্ট্যাক ফাইল তৈরিকরণ (Stack File)
সোয়ার্ম স্ট্যাকের জন্য আমরা স্ট্যান্ডার্ড docker-compose.yml ফাইল ব্যবহার করি, তবে এতে কিছু বাড়তি 'deploy' কি-ওয়ার্ড যুক্ত করা হয়।
yaml
# docker-stack.yml
version: "3.8"
services:
web:
image: nginx:alpine
ports:
- "80:80"
deploy:
replicas: 3
update_config:
parallelism: 2
delay: 10s
restart_policy:
condition: on-failure
networks:
- webnet
networks:
webnet:
driver: overlayপ্রধান কনফিগারেশনসমূহ:
- deploy: এই সেকশনটি শুধুমাত্র সোয়ার্ম মোডে কাজ করে।
- replicas: কয়টি কন্টেইনার চলবে তা নির্ধারণ করে।
- update_config: রোলিং আপডেটের নিয়ম নির্ধারণ করে।
- networks: এখানে ওভারলে নেটওয়ার্ক ড্রাইভার ব্যবহার করা হয়েছে।
২. স্ট্যাক ডিপ্লয় করা (Deploy Stack)
স্ট্যাক ফাইল ব্যবহার করে ক্লাস্টারে অ্যাপ্লিকেশন চালু করতে:
bash
docker stack deploy -c docker-stack.yml mystack-c: কম্পোজ বা স্ট্যাক ফাইলের পাথ।mystack: আপনার স্ট্যাকের নাম (এটি দিয়ে সার্ভিসের নামগুলো প্রিফিক্স হবে, যেমন:mystack_web)।
৩. স্ট্যাক ম্যানেজমেন্ট (Stack Management)
ডিপ্লয় করার পর স্ট্যাকটি ম্যানেজ করার জন্য নিচের কমান্ডগুলো ব্যবহৃত হয়:
স্ট্যাকের তালিকা দেখা
bash
docker stack lsস্ট্যাকের সার্ভিসগুলো দেখা
bash
docker stack services mystackসার্ভিসের কন্টেইনারগুলোর অবস্থা
bash
docker stack ps mystack৪. স্ট্যাক আপডেট এবং রিমুভ (Update & Remove)
আপডেট করা:
যদি আপনি স্ট্যাক ফাইলে কোনো পরিবর্তন করেন (যেমন: ইমেজ ভার্সন বা রেপ্লিকা সংখ্যা), তবে আবার একই ডিপ্লয় কমান্ড দিলেই সোয়ার্ম শুধুমাত্র পরিবর্তনগুলো আপডেট করবে:
bash
docker stack deploy -c docker-stack.yml mystackমুছে ফেলা:
সম্পূর্ণ অ্যাপ্লিকেশন বা স্ট্যাক মুছে ফেলতে:
bash
docker stack rm mystack৫. সোয়ার্ম স্ট্যাকের সুবিধা
- Consistency: ডকার কম্পোজের পরিচিত সিনট্যাক্স ব্যবহার করে ক্লাস্টার ম্যানেজমেন্ট করা যায়।
- Deployment Control: রোলিং আপডেট এবং রিস্টার্ট পলিসি সরাসরি ফাইলে লেখা থাকে।
- Automation: ডিক্লেয়ারেটিভ উপায়ে প্রোডাকশন ইনফ্রাস্ট্রাকচার ম্যানেজ করা সহজ হয়।