Skip to content

Docker Compose to Kubernetes (কম্পোজ থেকে কুবারনেটিস)

আপনি যদি দীর্ঘ সময় ধরে 'Docker Compose' ব্যবহার করে অভ্যস্ত হন এবং এখন আপনার অ্যাপ্লিকেশনটি কুবারনেটিস (Kubernetes) ক্লাস্টারে নিতে চান, তবে শুরুতেই সব YAML ফাইল নতুন করে লেখা বেশ কঠিন হতে পারে। এই কাজটিকে সহজ করার জন্য একটি চমৎকার টুল হলো Kompose

১. Kompose টুল কি?

Kompose (Kubernetes + Compose) হলো একটি কনভারশন টুল যা আপনার docker-compose.yml ফাইলকে কুবারনেটিস অবজেক্টে (যেমন: Deployment, Service, PersistentVolumeClaim) রূপান্তর করে।


২. কম্পোজ ফাইল কনভার্ট করা (Converting)

ধরা যাক আপনার কাছে একটি docker-compose.yml ফাইল আছে। সেটিকে কুবারনেটিস ফাইলে রূপান্তর করতে নিচের কমান্ডটি দিন:

bash
kompose convert -f docker-compose.yml

এই কমান্ডটি আপনার প্রতিটি ডকার সার্ভিসের জন্য আলাদা আলাদা কুবারনেটিস YAML ফাইল তৈরি করবে।

সরাসরি ক্লাস্টারে ডিপ্লয় করা:

যদি আপনি ফাইল তৈরি না করে সরাসরি ক্লাস্টারে চালাতে চান:

bash
kompose up

৩. লিমিটেশন বা সীমাবদ্ধতা (Limitations)

Kompose খুব শক্তিশালী হলেও এটি সব কিছু নিখুঁতভাবে করতে পারে না। কিছু বিষয় আপনাকে মাথায় রাখতে হবে:

  • Build Instruction: কুবারনেটিস ইমেজ বিল্ড করতে পারে না। তাই আপনার কম্পোজ ফাইলে যদি build: . থাকে, তবে আপনাকে আগে ইমেজ বিল্ড করে ডকার হাবে পুশ করতে হবে এবং ইমেজের নাম কুবারনেটিসকে জানাতে হবে।
  • Networks: ডকার কম্পোজের নেটওয়ার্কিং এবং কুবারনেটিস নেটওয়ার্কিং (Services/Ingress) সম্পূর্ণ আলাদা।
  • Volumes: বাইন্ড মাউন্ট (Bind Mounts) কুবারনেটিসে প্র্যাকটিক্যালি কাজ করে না (মিনিউকিউব ছাড়া)। এজন্য আপনাকে PersistentVolumeClaim ব্যবহার করতে হবে।

৪. ম্যানুয়াল অ্যাডজাস্টমেন্ট (Manual Adjustments)

Kompose দিয়ে কনভার্ট করার পর আপনাকে কিছু হাতে কলমে পরিবর্তন করতে হতে পারে:

  • Image Names: নিশ্চিত করুন প্রতিটি সার্ভিসের ইমেজে একটি ট্যাগ (যেমন: :latest) এবং সঠিক রেজিস্ট্রি পাথ আছে।
  • Environment Variables: সেনসিটিভ ডেটা থাকলে সেগুলোকে ConfigMap বা Secrets-এ মুভ করুন।
  • Ingress: বাইরের ট্রাফিক হ্যান্ডেল করার জন্য আপনাকে ম্যানুয়ালি একটি Ingress কন্ট্রোলার কনফিগার করতে হতে পারে।

৫. Helm Charts (বিকল্প পদ্ধতি)

যদি আপনার অ্যাপ্লিকেশনটি অনেক বড় হয়, তবে শুধুমাত্র Kompose দিয়ে কাজ চালানো কঠিন। এক্ষেত্রে Helm ব্যবহার করা বুদ্ধিমানের কাজ।

  • Helm হলো কুবারনেটিসের জন্য প্যাকেজ ম্যানেজার।
  • এটি আপনাকে টেমপ্লেট ব্যবহার করে জটিল ডিপ্লয়মেন্ট ম্যানেজ করতে সাহায্য করে।

সারাংশ

Kompose হলো সোয়ার্ম বা কম্পোজ থেকে কুবারনেটিসে মাইগ্রেশনের প্রথম ধাপ। এটি আপনাকে দ্রুত একটি বেসলাইন YAML তৈরি করে দেয়, যা পরবর্তীতে আপনি আপনার প্রয়োজন অনুযায়ী অপ্টিমাইজ করতে পারেন।

Released under the MIT License.