কুবারনেটিস কী: কন্টেইনার অর্কেস্ট্রেশন, আর্কিটেকচার ও শুরু করার পূর্ণাঙ্গ গাইড

কুবারনেটিস কী: কন্টেইনার অর্কেস্ট্রেশন, আর্কিটেকচার ও শুরু করার পূর্ণাঙ্গ গাইড

"আমার অ্যাপটা তো ডকারে ঠিকঠাক চলছে, কুবারনেটিস শিখে কী লাভ?" — বাংলাদেশের বেশির ভাগ ডেভেলপারের মনে এই প্রশ্নটা একবার না একবার ঘুরেছে। সত্যি বলতে, এক-দুইটা সার্ভারে চলা অ্যাপের জন্য কুবারনেটিসের দরকার নেই। কিন্তু অ্যাপ যখন বড় হয়, ব্যবহারকারী হাজার-লাখে পৌঁছায়, তখন একের পর এক সার্ভার, কন্টেইনার আর ডিপ্লয়মেন্ট সামলানো মানুষের পক্ষে অসম্ভব হয়ে ওঠে। ঠিক সেই জায়গাতেই কুবারনেটিস (Kubernetes, সংক্ষেপে K8s) এসে দাঁড়ায় — সার্ভারের পুরো ব্যবস্থাপনার দায়িত্ব নিয়ে।

এই গাইডে কুবারনেটিস কী, এটি কেন এত জনপ্রিয়, এর ভেতরে কীভাবে কাজ চলে, Docker-এর সাথে এর পার্থক্য কোথায়, আর সবচেয়ে গুরুত্বপূর্ণ — একজন বাংলাদেশি ডেভেলপার বা ফ্রিল্যান্সার হিসেবে আপনি কীভাবে শুরু করবেন, তা সহজ বাংলায় ধাপে ধাপে বুঝিয়ে বলব।

কুইক অ্যানসার: কুবারনেটিস আসলে কী?

কুবারনেটিস হলো একটি ওপেন সোর্স প্ল্যাটফর্ম, যা কন্টেইনার চালানো, স্কেল করা এবং সার্ভারে ম্যানেজ করার কাজ স্বয়ংক্রিয়ভাবে করে। ধরুন আপনার কাছে একশটা কন্টেইনার আছে, কয়েক ডজন সার্ভারে ছড়ানো। কোন সার্ভারে কোন কন্টেইনার চলবে, কেউ মারা গেলে কে তার জায়গা নেবে, চাপ বাড়লে কোথা থেকে নতুন কন্টেইনার আসবে — এই সব সিদ্ধান্ত কুবারনেটিস নিজে থেকেই নেয়। আপনি শুধু বলে দেন "এই অ্যাপের ৫টা কপি সবসময় চলতে থাকবে" — বাকি ব্যবস্থাপনা কুবারনেটিসের দায়িত্ব।

অফিসিয়াল ডকুমেন্টেশনের ভাষায় বললে: কুবারনেটিস হলো কন্টেইনারাইজড ওয়ার্কলোড ও সার্ভিস পরিচালনার জন্য একটি পোর্টেবল, এক্সটেন্সিবল, ওপেন সোর্স প্ল্যাটফর্ম, যা ডিক্লারেটিভ কনফিগারেশন ও অটোমেশন দুটোই সমর্থন করে। অর্থাৎ আপনি চাইলে কনফিগারেশনে বলে দিতে পারেন "এমন অবস্থা চাই" — বাকি কাজ সিস্টেম করে দেবে।

শব্দটা এলো কোথা থেকে? Kubernetes একটি গ্রিক শব্দ, যার মানে "হেলমসম্যান" বা জাহাজের কাণ্ডারি। আর K8s নামটা আসে K এবং s-এর মাঝখানে ৮টা অক্ষর থাকা থেকে: K-u-b-e-r-n-e-t-e-s। জাহাজের কাণ্ডারির মতোই এটি কন্টেইনারদের দিকনির্দেশনা দেয় — তাই নামটা বেশ মানানসই।

কেন কুবারনেটিস দরকার? আসল সমস্যাটা কোথায়

কুবারনেটিসের প্রয়োজন বোঝার আগে সমস্যাটা বুঝতে হবে। ধরা যাক, আপনার একটা ই-কমার্স ওয়েবসাইট আছে। শুরুতে একটা সার্ভারে সব চলত, ব্যবস্থাপনাও সহজ ছিল। এখন ব্যবহারকারী বাড়ছে — অফিসের রাশি, বিজ্ঞাপন ক্যাম্পেইন, ঈদ-সেলের আগে ট্রাফিক চূড়ায়। তখন:

  • একটা সার্ভারে অ্যাপটি আর সামলানো যায় না, লাগবে আরও সার্ভার
  • কোন সার্ভার কত লোড নেবে, তা ঠিক করতে হয় হাতেকলমে
  • কোনো সার্ভার ক্র্যাশ করলে ব্যবহারকারী দেখে "সাইট ডাউন"
  • নতুন ভার্সন বের করলে সব সার্ভারে ম্যানুয়ালি ডিপ্লয় করতে হয়
  • এক সার্ভারে অ্যাপ আপডেট করার সময় আরেক সার্ভারে পুরোনো ভার্সন চলছে

একটা জিনিস খেয়াল করুন — এই সব সমস্যার মধ্যে অ্যাপ নিজে ঠিকই আছে। সমস্যা হচ্ছে অ্যাপকে ঘিরে থাকা ব্যবস্থাপনা। কুবারনেটিস এই ব্যবস্থাপনাটাই নিয়ে নেয়। একটা চমৎকার উপমা দিয়ে ব্যাপারটা বোঝানো যায়: একটি অর্কেস্ট্রার কথা ভাবুন। প্রত্যেক বাদক আলাদা, কিন্তু তাদের সুর মেলাতে দরকার একজন কন্ডাক্টর — কে কখন বাজাবে, কত জোরে বাজাবে, সব নির্দেশনা দেয় কন্ডাক্টর। কুবারনেটিস হলো সেই কন্ডাক্টর, আর প্রত্যেক কন্টেইনার হলো অর্কেস্ট্রার বাদক।

গুগল ২০১৪ সালে কুবারনেটিস প্রজেক্টটি ওপেন সোর্স করে। এর আগে গুগলের অভ্যন্তরীণ সিস্টেমে বহু বছর ধরে একই ধরনের কন্টেইনার-ম্যানেজমেন্ট প্রযুক্তি ব্যবহার হচ্ছিল — লাখ লাখ কন্টেইনার চালানোর সেই অভিজ্ঞতা থেকেই কুবারনেটিসের ভিত্তি তৈরি। কুবারনেটিসের অফিসিয়াল ডকুমেন্টেশন নিজেই বলে, এতে গুগলের ১৫ বছরের বেশি প্রোডাকশন-অভিজ্ঞতা ঢুকিয়ে দেওয়া হয়েছে। ২০১৫ সালে এটি ক্লাউড নেটিভ কম্পিউটিং ফাউন্ডেশন (CNCF)-কে দেওয়া হয় এবং বর্তমানে এটি CNCF-এর সবচেয়ে বড় গ্র্যাজুয়েটেড প্রজেক্টগুলোর একটি।

Docker আর কুবারনেটিস: একই জিনিস নাকি আলাদা?

বাংলাদেশের ডেভেলপারদের মধ্যে সবচেয়ে প্রচলিত ধারণা হলো "কুবারনেটিস মানে তো ডকারের বড় ভার্সন" — ব্যাপারটা কিন্তু তা নয়। Docker আর Kubernetes সমস্যা সমাধান করে, তবে ভিন্ন স্তরে।

Docker হলো কন্টেইনার তৈরি ও চালানোর টুল। একটা কন্টেইনার মানে হলো আপনার অ্যাপ, তার নির্ভরতা, লাইব্রেরি — সব এক প্যাকেজে বাঁধা। কোনো মেশিনে Docker থাকলে সেই কন্টেইনার যেকোনো জায়গায় চলবে, কারণ ভেতরে সবকিছু আগে থেকে প্যাকেজ করা।

Kubernetes হলো সেই কন্টেইনারগুলোকে অর্কেস্ট্রেট করার টুল — অর্থাৎ অনেকগুলো কন্টেইনার, অনেকগুলো মেশিনজুড়ে সমন্বয় করে চালানোর ব্যবস্থা। Docker আছে বলেই কুবারনেটিস কাজ করতে পারে, আবার Docker দিয়ে আপনি চাইলেই এক মেশিনে একটা কন্টেইনার চালাতে পারেন — কুবারনেটিস ছাড়াই।

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

সহজভাবে মনে রাখুন: Docker কন্টেইনার বানায়, Kubernetes কন্টেইনার চালায়। দুটো একসাথে কাজ করে, কিন্তু একটার কাজ আরেকটা করতে পারে না।

কুবারনেটিসের আর্কিটেকচার: ভেতরে কী কী থাকে

কুবারনেটিস ভালোভাবে বোঝার জন্য এর মূল উপাদানগুলো জানা জরুরি। পুরো সিস্টেমটা দুটি স্তরে ভাগ করা যায়: কন্ট্রোল প্লেন (মস্তিষ্ক) আর নোড (শরীরের কাজ করা অংশ)।

কন্ট্রোল প্লেন: সিস্টেমের মস্তিষ্ক

কন্ট্রোল প্লেন পুরো ক্লাস্টারের সিদ্ধান্ত নেয়। প্রোডাকশনে কন্ট্রোল প্লেন সাধারণত একাধিক মেশিনে চলে, যেন একটি মেশিন বিকল হলেও সিস্টেম চলতে থাকে (হাই অ্যাভেইলেবিলিটি)। এর মূল উপাদানগুলো:

kube-apiserver — কন্ট্রোল প্লেনের সামনের দরজা। সব অভ্যন্তরীণ ও বাহ্যিক রিকোয়েস্ট এই সার্ভারের মাধ্যমে যায়। আপনি যখন `kubectl` কমান্ড চালান, তখন এই API সার্ভারই কাজ করে।

etcd — ক্লাস্টারের সব ডেটা জমা থাকে এখানে। এটি একটি কনসিস্টেন্ট, হাই-অ্যাভেইলেবল কী-ভ্যালু স্টোর। ক্লাস্টারে কী চলছে, কী হওয়ার কথা — সব তথ্যের নির্ভরযোগ্য ভান্ডার।

kube-scheduler — নতুন পড (Pod) আসলে কোন নোডে বসবে, তা ঠিক করে। প্রতিটি নোডের কত CPU, কত মেমোরি খালি আছে, দেখে সবচেয়ে উপযুক্ত নোডে পড পাঠায়।

kube-controller-manager — কন্ট্রোলার নামের ছোট ছোট প্রোগ্রাম চালায়, যারা ক্লাস্টারের অবস্থা দেখে "যা চাওয়া হয়েছে" আর "যা আছে" — এই দুইয়ের মিল রাখে। যেমন, একটা ডিপ্লয়মেন্টে ৩টা পড চাওয়া হয়েছে কিন্তু ২টা চলছে — কন্ট্রোলার ম্যানেজার তৃতীয়টা চালু করবে। প্রোডাকশন-লেভেলের ক্লাস্টারে এই কম্পোনেন্টগুলো একাধিক মেশিনে ছড়িয়ে রাখা হয়, যাতে যেকোনো একটি মেশিন বিকল হলেও ক্লাস্টারের মস্তিষ্ক অক্ষত থাকে।

নোড: কাজের মানুষগুলো

প্রতিটি নোড একটি মেশিন — ভার্চুয়াল বা ফিজিক্যাল। প্রতিটি নোডে থাকে:

kubelet — নোডের অভিভাবক এজেন্ট। কন্ট্রোল প্লেনের সাথে যোগাযোগ করে, আর নিশ্চিত করে নোডের পডগুলো ঠিকমতো চলছে কিনা। একটা সহজ চিত্র: কন্ট্রোল প্লেন হলো "মাদারশিপ", আর kubelet হলো প্রতিটি নোড থেকে মাদারশিপের সাথে কথা বলার রেডিও।

kube-proxy — নোডের নেটওয়ার্ক নিয়ম পরিচালনা করে, যাতে সার্ভিসগুলোর ট্রাফিক সঠিক পডে পৌঁছায়।

কন্টেইনার রানটাইম — আসল কন্টেইনার চালানোর সফটওয়্যার। কুবারনেটিস নিজে কন্টেইনার চালায় না — এটি containerd, CRI-O-এর মতো রানটাইম ব্যবহার করে। Dockerও একটি রানটাইম হিসেবে কাজ করতে পারে।

পড: সবচেয়ে ছোট ইউনিট

কুবারনেটিসে কন্টেইনার সরাসরি চলে না — চলে পড-এর ভেতরে। পড হলো কুবারনেটিসের সবচেয়ে ছোট ডিপ্লয়েবল ইউনিট। একটা পডের ভেতরে এক বা একাধিক কন্টেইনার থাকতে পারে, যারা স্টোরেজ ও নেটওয়ার্ক শেয়ার করে। অফিসিয়াল ডকুমেন্টেশন মজার একটা ব্যাখ্যা দেয়: পড (pod) মানে তিমির দল বা মটরশুঁটির শুঁটি — এক জায়গায় একসাথে থাকা দল। সাধারণত একটি পডে একটি কন্টেইনারই থাকে, তবে ঘনিষ্ঠভাবে জড়িত কাজের জন্য (যেমন একটি অ্যাপ আর তার লগ-কালেক্টর) একই পডে একাধিক কন্টেইনার রাখা যায়।

রেপ্লিকাসেট আর ডিপ্লয়মেন্ট

কুবারনেটিসে আপনি YAML ফাইলে লেখেন ক্লাস্টারটি কেমন হওয়া উচিত (desired state)। যেমন, একটি ডিপ্লয়মেন্ট (Deployment) ফাইলে বলা যায়: "nginx-এর এই ইমেজটির ৩টা কপি সর্বদা চলমান থাকবে।" কুবারনেটিস তখন সেই অবস্থা তৈরি ও বজায় রাখে। রেপ্লিকাসেট (ReplicaSet) নিশ্চিত করে নির্দিষ্ট সংখ্যক পড সবসময় প্রস্তুত থাকে — কেউ মারা গেলে সঙ্গে সঙ্গে নতুন করে চালু করে। এই ডিক্লারেটিভ পদ্ধতিই কুবারনেটিসের সবচেয়ে বড় শক্তি: আপনি বলেন কী চান, কীভাবে করবে তা সিস্টেমের দায়িত্ব।

একটা ছোট উদাহরণ দেখলে ব্যাপারটা পরিষ্কার হবে। নিচের YAML ফাইলটি একটি ডিপ্লয়মেন্ট ঘোষণা করে:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app
          image: nginx:latest
          ports:
            - containerPort: 80

এখানে `replicas: 3` বলছে ৩টা কপি সবসময় চলবে, `image: nginx:latest` বলছে কোন কন্টেইনার ইমেজ ব্যবহার হবে, আর `containerPort: 80` বলছে অ্যাপটি কোন পোর্টে শুনবে। এই ফাইলটা `kubectl apply -f deployment.yaml` দিয়ে চালালেই কুবারনেটিস বাকি সব নিজে করে দেবে — পড বানানো, স্কেডিউল করা, স্বাস্থ্য পরীক্ষা — সবকিছু। এই একটাই ফাইল আপনার কাছে ডিপ্লয়মেন্টের "চুক্তিপত্র", আর কুবারনেটিস সেই চুক্তি রক্ষা করার দায়িত্ব নেয়।

kubectl: আপনার প্রধান অস্ত্র

কুবারনেটিসের সাথে সব কাজ হয় kubectl কমান্ড-লাইন টুল দিয়ে। শুরুতে যেসব কমান্ড সবচেয়ে বেশি লাগবে:

কমান্ড কাজ
`kubectl get nodes` ক্লাস্টারের সব নোডের তালিকা ও অবস্থা দেখে
`kubectl get pods` চলমান সব পডের তালিকা দেখে
`kubectl get deployments` সব ডিপ্লয়মেন্টের অবস্থা দেখে
`kubectl apply -f file.yaml` YAML ফাইলের কনফিগারেশন প্রয়োগ করে
`kubectl describe pod <নাম>` একটি পডের বিস্তারিত তথ্য ও সমস্যা দেখে
`kubectl logs <পড-নাম>` পডের লগ দেখে (ডিবাগিংয়ের জন্য অপরিহার্য)
`kubectl scale deployment my-app –replicas=5` ডিপ্লয়মেন্টের কপি সংখ্যা বাড়ায়/কমায়
`kubectl rollout status deployment/my-app` ডিপ্লয়মেন্টের আপডেটের অগ্রগতি দেখে
`kubectl delete pod <নাম>` একটি পড মুছে দেয় (কুবারনেটিস নতুন করে বানিয়ে দেবে)

এই কমান্ডগুলো মুখস্থ করার দরকার নেই — কাজ করতে করতে আয়ত্ত হয়ে যাবে। `kubectl –help` আর অফিসিয়াল kubectl চিটশিট সবসময় হাতের কাছে থাকে।

বাস্তব জগতে কুবারনেটিস: কারা কারা ব্যবহার করছে

কুবারনেটিস যে শুধু স্টার্টআপ বা টেক-জায়ান্টের খেলনা নয়, তা বোঝার জন্য এর অফিসিয়াল কেস-স্টাডিজই যথেষ্ট। কুবারনেটিস ওয়েবসাইটে প্রকাশিত গল্পগুলো থেকে দেখা যায়:

  • Booking.com — বিশ্বের অন্যতম বড় ট্রাভেল প্ল্যাটফর্মটি নিজস্ব কুবারনেটিস প্ল্যাটফর্মই বানিয়ে ফেলেছে, কারণ তাদের ব্যবসার গতি নির্ভর করে দ্রুত ডিপ্লয়মেন্টের ওপর
  • Babylon — স্বাস্থ্যসেবা প্রযুক্তি প্রতিষ্ঠানটি মেশিন লার্নিং ওয়ার্কলোডের জন্য কুবারনেটিস ব্যবহার করে, কারণ এতে স্কেলিং ও শিডিউলিং সুবিধা রেডিমেড পাওয়া যায়
  • Booz Allen Hamilton — বড় পরিসরের সরকারি ও ব্যবসায়িক প্রকল্পে কুবারনেটিস দিয়ে ক্লায়েন্টের চাহিদা অনুযায়ী দ্রুত পরিবর্তন আনছে
  • AppDirect — ক্লাউড-ভিত্তিক মার্কেটপ্লেস কোম্পানিটি কুবারনেটিসকে "নতুন ক্লাউড প্ল্যাটফর্ম" হিসেবে দেখছে

এছাড়া অফিসিয়াল কেস-স্টাডিজ সংগ্রহে আরও কয়েক ডজন প্রতিষ্ঠানের গল্প আছে — ব্যাংকিং, স্বাস্থ্যসেবা, খুচরা, গেমিং — সব শিল্পে ছড়িয়ে। ব্যাপারটা এতটাই ছড়িয়ে গেছে যে বর্তমানে কুবারনেটিসের রিলিজ সাইকেল নিয়মিত — অফিসিয়াল রিলিজ-পেজ অনুযায়ী সর্বশেষ সংস্করণ v1.36 (২০২৬-এর মাঝামাঝি প্রকাশিত), আর প্রতিটি রিলিজ প্রায় এক বছর প্যাচ-সাপোর্ট পায়। অর্থাৎ এই প্রযুক্তিটা পরীক্ষামূলক কোনো জিনিস নয় — শিল্পের মানদণ্ড হয়ে গেছে।

কুবারনেটিসের মূল ফিচারগুলো

অফিসিয়াল ডকুমেন্টেশন অনুযায়ী, কুবারনেটিস যে কাজগুলো সহজ করে দেয়:

১. সার্ভিস ডিসকভারি ও লোড ব্যালেন্সিং — কন্টেইনারকে DNS নাম বা নিজস্ব IP দিয়ে খুঁজে পাওয়া যায়। ট্রাফিক বেড়ে গেলে কুবারনেটিস স্বয়ংক্রিয়ভাবে একাধিক কপির মধ্যে ট্রাফিক ভাগ করে দেয়।

২. স্টোরেজ অর্কেস্ট্রেশন — লোকাল স্টোরেজ, ক্লাউড প্রোভাইডারের স্টোরেজ — যেটা চান, কুবারনেটিস স্বয়ংক্রিয়ভাবে মাউন্ট করে দেয়।

৩. অটোমেটেড রোলআউট ও রোলব্যাক — নতুন ভার্সন ডিপ্লয় করলে ধাপে ধাপে বদলায়, সব কন্টেইনার একসাথে বদলায় না। সমস্যা হলে এক কমান্ডে আগের ভার্সনে ফিরে যাওয়া যায়।

৪. অটোমেটিক বিন প্যাকিং — আপনি বলুন প্রতিটি কন্টেইনারের কত CPU ও RAM দরকার; কুবারনেটিস কন্টেইনারগুলোকে নোডগুলোর মধ্যে এমনভাবে সাজায় যেন সম্পদ সবচেয়ে ভালোভাবে কাজে লাগে।

৫. সেলফ-হিলিং — কোনো কন্টেইনার ক্র্যাশ করলে বা হেলথ-চেকে ব্যর্থ হলে কুবারনেটিস তাকে রিস্টার্ট করে, বদলে দেয়, আর প্রস্তুত না হওয়া পর্যন্ত ট্রাফিক পাঠায় না।

৬. সিক্রেট ও কনফিগারেশন ম্যানেজমেন্ট — পাসওয়ার্ড, API-কি, SSH-কি — এগুলো আলাদাভাবে সংরক্ষণ করা যায়, কন্টেইনার ইমেজ নতুন করে বানানোর দরকার হয় না।

কবে কুবারনেটিস দরকার, কবে নয়?

সৎ পরামর্শটা এখানেই: কুবারনেটিস সবার জন্য নয়। ছোট প্রজেক্ট, এক-দুইটা সার্ভার, কয়েক হাজার ব্যবহারকারী — এখানে কুবারনেটিস জটিলতা বাড়ায়, সমস্যা কমায় না। কুবারনেটিস তখনই মূল্যবান যখন:

  • অ্যাপটি একাধিক সার্ভারে চলছে বা চলবে
  • ট্রাফিকের চাপ অপ্রত্যাশিতভাবে বাড়ে-কমে (স্কেলিং দরকার)
  • দলের একাধিক ডেভেলপার নিয়মিত ডিপ্লয়মেন্ট করে
  • অ্যাপের একাধিক মাইক্রোসার্ভিস আছে যাদের একসাথে ম্যানেজ করতে হয়
  • অ্যাপটি সত্যিই "মিশন-ক্রিটিকাল" — ডাউন হলে ব্যবসার ক্ষতি হয়

আর ছোট ক্ষেত্রে কুবারনেটিস এড়িয়ে যাওয়াই বুদ্ধিমানের কাজ — অনেক বড় কোম্পানিও ছোট প্রজেক্টে কুবারনেটিস ব্যবহার করে না। Docker Compose দিয়ে এক মেশিনে একাধিক কন্টেইনার চালানো ছোট প্রজেক্টের জন্য যথেষ্ট।

কুবারনেটিস শেখা শুরু করবেন যেভাবে: বাংলাদেশি ডেভেলপারদের জন্য রোডম্যাপ

বাংলাদেশের ফ্রিল্যান্সিং ও রিমোট-জব মার্কেটে ক্লাউড ও ডেভঅপস স্কিলের চাহিদা দিন দিন বাড়ছে। আন্তর্জাতিক মার্কেটে DevOps-সম্পর্কিত কাজের জন্য কুবারনেটিস জ্ঞান এখন প্রায় বাধ্যতামূলক। শেখার পথটা কিন্তু ভয়ের কিছু না — ধাপে ধাপে গেলেই হয়:

ধাপ ১: Linux ও কমান্ড-লাইন শুরুতেই শিখুন। কুবারনেটিসের সব কাজ কমান্ড দিয়ে হয়। Linux, SSH, বেসিক নেটওয়ার্কিং না জানলে পরে আটকে যাবেন। প্রোগ্রামিং-ভিত্তি দুর্বল লাগলে আগে প্রোগ্রামিং শেখার রোডম্যাপ গাইডটা দেখে নিতে পারেন — সেখানে ভাষা নির্বাচন থেকে জুনিয়র ডেভেলপার হওয়ার পথ পর্যন্ত ধাপে ধাপে বলা আছে।

ধাপ ২: Docker ভালোভাবে আয়ত্ত করুন। আগে কন্টেইনার বানানো, ইমেজ তৈরি, ডকার-কম্পোজে একাধিক সার্ভিস চালানো শিখুন। কুবারনেটিসের আগে কন্টেইনার বোঝা আবশ্যক।

ধাপ ৩: kubectl-এর সাথে পরিচিত হোন। এটি কুবারনেটিসের প্রধান কমান্ড-লাইন টুল। `kubectl get pods`, `kubectl describe` — এই কমান্ডগুলো দিয়ে ক্লাস্টারের সবকিছু দেখা ও নিয়ন্ত্রণ করা যায়।

ধাপ ৪: লোকাল ক্লাস্টার দিয়ে অনুশীলন শুরু করুন। এক মেশিনেই ছোট ক্লাস্টার চালানো যায় — Minikube বা kind (Kubernetes in Docker) দিয়ে। ফ্রি-তে শুরু করার জন্য কিলার-কোডা (Killercoda)-র মতো অনলাইন প্লেগ্রাউন্ডও আছে, যেখানে ব্রাউজারেই ক্লাস্টার হাতে পেয়ে যাবেন।

ধাপ ৫: YAML লিখতে শিখুন। ডিপ্লয়মেন্ট, সার্ভিস, কনফিগম্যাপ — সবই YAML ফাইলে লেখা হয়। ইন্ডেন্টেশন নিয়ে সতর্ক থাকুন; ছোট ভুলেই কনফিগারেশন ব্যর্থ হবে। শুরুতেই অফিসিয়াল ডকুমেন্টেশনের উদাহরণগুলো কপি করে নিজের মতো বদলান।

ধাপ ৬: কনসেপ্টগুলো গভীরে বুঝুন। পড, সার্ভিস, ডিপ্লয়মেন্ট, স্টেটফুলসেট, কনফিগম্যাপ, সিক্রেট, ইনগ্রেস — প্রতিটা কনসেপ্টের কাজ কী, কখন কোনটা দরকার, এটা বুঝলে রাস্তা অনেক মসৃণ। শুধু কমান্ড মুখস্থ নয়, কনসেপ্টই আসল দক্ষতা।

ধাপ ৭: হাতে-কলমে প্রজেক্ট করুন। একটা সাধারণ ওয়েব অ্যাপ বানিয়ে ৩টা রেপ্লিকা দিয়ে ডিপ্লয় করুন, লোড-টেস্ট করে দেখুন অটো-স্কেলিং কীভাবে কাজ করে, এক নোড বন্ধ করে দেখুন সেলফ-হিলিং। এই অনুশীলনই ইন্টারভিউতে আলাদা করে দেখায়।

ধাপ ৮: ক্লাউড-ম্যানেজড সার্ভিসে হাত দিন। Minikube-তে আত্মবিশ্বাস এলে AKS (Azure), EKS (AWS), GKE (Google)-এর মতো ম্যানেজড কুবারনেটিস সার্ভিস ট্রাই করুন। ম্যানেজড সার্ভিসে কন্ট্রোল প্লেনের ঝামেলা প্রোভাইডারই নেয় — শুরুতে এগুলো সহজ।

বাংলাদেশের ডেভেলপারদের জন্য কুবারনেটিস কেন গুরুত্বপূর্ণ

কুবারনেটিস শেখার সিদ্ধান্তটা শুধু "ট্রেন্ড অনুসরণ" নয় — বাংলাদেশের ডেভেলপারদের জন্য এর বাস্তব মূল্য আছে কয়েকটা কারণে:

১. ফ্রিল্যান্সিং মার্কেটে সরাসরি চাহিদা। আন্তর্জাতিক ফ্রিল্যান্স প্ল্যাটফর্মগুলোতে DevOps, ক্লাউড ইঞ্জিনিয়ারিং আর কুবারনেটিস-সম্পর্কিত কাজের ঘোষণা নিয়মিত দেখা যায়। যারা ইতিমধ্যে ওয়েব ডেভেলপমেন্ট বা সফটওয়্যার ডেভেলপমেন্টে কাজ করছেন, তাদের জন্য কুবারনেটিস হলো এমন একটি স্কিল, যা সাধারণ ডেভেলপার আর সিনিয়র ডেভেলপারের মধ্যে পার্থক্য তৈরি করে — এবং রেটও বাড়িয়ে দেয়।

২. রিমোট-জবের সুযোগ। অনেক আন্তর্জাতিক কোম্পানি রিমোট ডেভঅপস ইঞ্জিনিয়ার খোঁজে। কুবারনেটিস জানা থাকলে সিনিয়র-লেভেলের রিমোট চাকরির জন্য আবেদনের সুযোগ তৈরি হয়, যা শুধু লোকাল মার্কেটে সীমাবদ্ধ থাকলে পেতেন না।

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

৪. ইংরেজি কনটেন্টের প্রাচুর্য, বাংলায় সহায়তা। কুবারনেটিস শেখার সেরা রিসোর্সগুলো ইংরেজিতে, আর এই গাইডসহ বাংলা কনটেন্ট ধীরে ধীরে বাড়ছে। শেখার পথে দুটোই ব্যবহার করলে সুবিধা দ্বিগুণ।

তবে একটা সৎ সতর্কতা: কুবারনেটিস শেখা মানেই চাকরি পেয়ে যাওয়া নয়। এটা এমন একটি দক্ষতা, যা আপনার মৌলিক ডেভেলপমেন্ট বা সিস্টেম-অ্যাডমিনিস্ট্রেশন জ্ঞানের উপরে বসে। প্রথমে প্রোগ্রামিং, Linux, নেটওয়ার্কিং — এই ভিত্তিটা মজবুত থাকতে হবে, তারপর কুবারনেটিস সেটাকে পরিপূর্ণতা দেবে।

কুবারনেটিস সম্পর্কে প্রচলিত ভুল ধারণা

"কুবারনেটিস শিখলে আর ডকার লাগবে না।" — ভুল। কুবারনেটিস কন্টেইনার চালায়, কন্টেইনার বানায় না। কন্টেইনার ইমেজ বানানোর জন্য Docker বা সমতুল্য টুল আগে থেকেই দরকার। দুটো পরস্পরের পরিপূরক, প্রতিদ্বন্দ্বী নয়।

"কুবারনেটিস মানে মাইক্রোসার্ভিস, আর মাইক্রোসার্ভিস মানেই কুবারনেটিস।" — একদম ঠিক নয়। কুবারনেটিসে মনোলিথিক অ্যাপও চলতে পারে, আবার মাইক্রোসার্ভিস চালাতে কুবারনেটিস ছাড়াও অন্যান্য উপায় আছে। দুটো আলাদা সিদ্ধান্ত।

"সব কন্টেইনারকে পড-এ রাখতে হবে।" — প্র্যাকটিসে বেশির ভাগ পডে একটাই কন্টেইনার থাকে। একাধিক কন্টেইনার শুধু তখনই রাখুন, যখন তাদের একসাথে থাকাটা সত্যিই জরুরি।

"কুবারনেটিস সেটআপ করলেই সব সমস্যার সমাধান।" — কুবারনেটিস সিস্টেম চালু রাখে, কিন্তু সিস্টেমের ডিজাইন, নেটওয়ার্ক পলিসি, সিকিউরিটি, ব্যাকআপ — এই দায়িত্বগুলো কিন্তু আপনারই। কুবারনেটিস ঝামেলা কমায়, শূন্য করে না।

কুবারনেটিসে নিরাপত্তা: অবহেলা করবেন না

কুবারনেটিস যত শক্তিশালী, সেটআপ ভুল হলে ততটাই ঝুঁকিপূর্ণ। খেয়াল রাখতে হবে:

  • API সার্ভার যেন কখনো ইন্টারনেটে সরাসরি খোলা না থাকে
  • সিক্রেট-গুলো যেন প্লেইন-টেক্সটে কোডে না থাকে
  • ডিফল্ট নেমস্পেসে সবকিছু চালানো থেকে বিরত থাকুন
  • RBAC (রোল-ভিত্তিক অ্যাক্সেস নিয়ন্ত্রণ) সক্রিয় রাখুন
  • ইমেজ-গুলো বিশ্বস্ত সোর্স থেকে নিন
  • কনটেইনারে রুট (root) ইউজার হিসেবে চলা এড়িয়ে চলুন

কুবারনেটিসের অফিসিয়াল ডকুমেন্টেশনে সিকিউরিটি চেকলিস্ট দেওয়া আছে — প্রোডাকশনে যাওয়ার আগে সেটা পড়ে নেওয়া ভালো অভ্যাস।

FAQ

প্রশ্ন: কুবারনেটিস শেখা কি কঠিন?

শুরুর ধাপগুলো কঠিন নয়, তবে পূর্ণাঙ্গ দক্ষতা হতে সময় লাগে। Docker আর Linux জানা থাকলে বেসিক কনসেপ্ট ২-৩ সপ্তাহের মধ্যে আয়ত্ত করা সম্ভব। প্রতিদিন ১-২ ঘণ্টা চর্চায় ২-৩ মাসে কাজ করার মতো আত্মবিশ্বাস আসে।

প্রশ্ন: কুবারনেটিস শিখে কি বাংলাদেশে চাকরি বা ফ্রিল্যান্স কাজ পাওয়া যায়?

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

প্রশ্ন: Docker আর Kubernetes-এর মধ্যে কোনটা আগে শিখব?

আগে Docker, তারপর Kubernetes। কন্টেইনার বুঝতে না পারলে অর্কেস্ট্রেশন বোঝা সম্ভব নয়। ক্রমটা ভাঙলে ভিত্তিটা দুর্বল থাকবে।

প্রশ্ন: কুবারনেটিস শিখতে কি দামি হার্ডওয়্যার দরকার?

না। একটি সাধারণ ল্যাপটপেই Minikube বা kind চলে। আর ক্লাউডের ফ্রি টিয়ার (যেমন Oracle Cloud-এর Always Free, AWS-এর ফ্রি টিয়ার) দিয়ে বাস্তব ক্লাস্টার অনুশীলন করা যায়।

প্রশ্ন: Minikube আর k3s-এর মধ্যে পার্থক্য কী?

Minikube হলো শেখার ও ডেভেলপমেন্টের জন্য জনপ্রিয় লোকাল কুবারনেটিস, যা এক মেশিনে পুরো ক্লাস্টার সিমুলেট করে। k3s হলো হালকা (lightweight) কুবারনেটিস, যা ছোট ডিভাইস বা এজ-কম্পিউটিং-এর জন্য তৈরি — রিসোর্স কম খায়।

প্রশ্ন: কুবারনেটিস কি ফ্রি?

কুবারনেটিস নিজে সম্পূর্ণ ওপেন সোর্স ও ফ্রি। খরচ হয় তখনই, যখন আপনি ক্লাউড-ম্যানেজড সার্ভিস (EKS, AKS, GKE) বা আলাদা সার্ভার ভাড়া নেন। লোকাল অনুশীলনে এক টাকাও খরচ হয় না।

উপসংহার

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

শুরুটা ছোট করে করুন: Linux-এ হাত পাকান, Docker-এ স্বাচ্ছন্দ্য আনুন, তারপর Minikube-তে নিজের প্রথম ক্লাস্টার বানিয়ে একটা অ্যাপ ডিপ্লয় করুন। প্রথম পডটা চালু হওয়ার মুহূর্তটাই আপনাকে বোঝাবে কেন পুরো বিশ্ব এই প্রযুক্তিটাকে এত গুরুত্ব দেয়। আর যখন সে দিন আসবে, তখন এই গাইডের প্রতিটা কনসেপ্ট আপনার কাজে লাগবে — কন্ট্রোল প্লেন থেকে পড, রেপ্লিকাসেট থেকে সেলফ-হিলিং।

সোর্স: কুবারনেটিস অফিসিয়াল ডকুমেন্টেশন (কনসেপ্টস: ওভারভিউ, কম্পোনেন্টস, পডস, রিলিজেস) এবং CNCF প্রজেক্ট পেজ।

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top