DEV Community

Emdadul Islam
Emdadul Islam Subscriber

Posted on

Kubernetes (K8s) কি জিনিস? আড্ডায় শিখে নিই!

Kubernetes (K8s) কি জিনিস? আড্ডায় শিখে নিই!

রাকিব: আরে হাসান ভাই! শুনলাম তুমি এখন কুবারনেটিস নিয়ে কাজ করো। এটা আবার কী জিনিস? নামটাই এত কঠিন!

হাসান: হাহা! কুবারনেটিস বা K8s (কে-আট-এস) শুনতে কঠিন লাগলেও জিনিসটা খুবই মজার। তুই কি কখনো ঢাকার বড় কোনো অ্যাপার্টমেন্ট কমপ্লেক্সে গেছিস? যেমন বসুন্ধরা সিটি বা যমুনা ফিউচার পার্ক?

রাকিব: হ্যাঁ গেছি তো। কিন্তু সেটার সাথে কুবারনেটিসের কী সম্পর্ক?

হাসান: দেখ, একটা বড় অ্যাপার্টমেন্ট কমপ্লেক্স চালানো আর কুবারনেটিস দিয়ে অ্যাপ্লিকেশন চালানো প্রায় একই ব্যাপার! আমি বুঝিয়ে বলি।

Kubernetes কি জিনিস?

হাসান: কুবারনেটিস হলো একটা Container Orchestration Platform। সহজ ভাষায় বললে, এটা অনেকগুলো অ্যাপ্লিকেশনকে একসাথে চালানো আর ম্যানেজ করার সিস্টেম।

রাকিব: Container মানে? আমি তো জানি কন্টেইনার মানে বাক্স!

হাসান: তুই ঠিকই বলেছিস! সফটওয়্যারের Container ও একরকম বাক্সই। যেমন তোর অ্যাপ্লিকেশনকে একটা বাক্সে প্যাক করে রাখা হয়, যাতে সেটা যেকোনো কম্পিউটারে একইভাবে চলে।

এখন ধর, তোর একটা অনলাইন শপের ওয়েবসাইট আছে। সেখানে:

  • ফ্রন্টএন্ড (যেটা ইউজার দেখে)
  • ব্যাকএন্ড (ডাটাবেস আর লজিক)
  • পেমেন্ট সিস্টেম
  • নোটিফিকেশন সিস্টেম

এই সবগুলো আলাদা আলাদা Container এ থাকে।

রাকিব: আচ্ছা, তাহলে কুবারনেটিস এগুলো কী করে?

হাসান: কুবারনেটিস হলো সেই অ্যাপার্টমেন্ট কমপ্লেক্সের ম্যানেজার! যেমন একজন ম্যানেজার:

  • কোন ফ্ল্যাটে কে থাকবে ঠিক করে
  • বিদ্যুৎ-পানি ঠিক রাখে
  • নিরাপত্তা দেখে
  • কিছু সমস্যা হলে ঠিক করে

কুবারনেটিসও তোর অ্যাপ্লিকেশনগুলোর জন্য এই সব কাজ করে।

Kubernetes এর মূল অংশগুলো

১. Pod (পড)

হাসান: Pod হলো কুবারনেটিসের সবচেয়ে ছোট ইউনিট। এটা একটা ফ্ল্যাট বা রুমের মতো।

রাকিব: মানে একটা Pod এ একটা Container থাকে?

হাসান: সাধারণত হ্যাঁ, তবে কখনো কখনো একটা Pod এ ২-৩টা Container ও থাকতে পারে। যেমন একটা ফ্ল্যাটে স্বামী-স্ত্রী থাকে, তেমনি একটা Pod এ কয়েকটা সম্পর্কিত Container থাকে।

Pod = একটা ফ্ল্যাট
├── Main Container (মূল অ্যাপ)
└── Helper Container (সাহায্যকারী)
Enter fullscreen mode Exit fullscreen mode

২. Node (নোড)

হাসান: Node হলো একটা বিল্ডিং। একটা বিল্ডিংয়ে যেমন অনেকগুলো ফ্ল্যাট থাকে, একটা Node এ অনেকগুলো Pod থাকে।

রাকিব: Node মানে কি আলাদা কম্পিউটার?

হাসান: একদম ঠিক! প্রতিটা Node হলো একটা আলাদা সার্ভার বা কম্পিউটার। যেমন:

Cluster (পুরো কমপ্লেক্স)
├── Node-1 (বিল্ডিং A)
│   ├── Pod-1 (ফ্ল্যাট ১০১)
│   ├── Pod-2 (ফ্ল্যাট ১০২)
│   └── Pod-3 (ফ্ল্যাট ১০৩)
├── Node-2 (বিল্ডিং B)
│   ├── Pod-4 (ফ্ল্যাট ২০১)
│   └── Pod-5 (ফ্ল্যাট ২০২)
Enter fullscreen mode Exit fullscreen mode

৩. Deployment (ডিপ্লয়মেন্ট)

হাসান: Deployment হলো ভাড়াটে নিয়োগের নিয়ম। যেমন অ্যাপার্টমেন্ট ম্যানেজার বলে: "আমার ৫টা ২-বেডরুমের ফ্ল্যাট চাই, যেগুলোতে ফ্যামিলি থাকবে।"

রাকিব: মানে Deployment বলে দেয় কতগুলো Pod চাই?

হাসান: হ্যাঁ! Deployment বলে:

  • আমার ৩টা Frontend Pod চাই
  • ২টা Backend Pod চাই
  • ১টা Database Pod চাই

আর কোনো Pod বন্ধ হয়ে গেলে, Deployment নতুন Pod তৈরি করে। যেমন কোনো ভাড়াটিয়া চলে গেলে নতুন ভাড়াটে খোঁজা হয়।

৪. Service (সার্ভিস)

হাসান: Service হলো অ্যাপার্টমেন্ট কমপ্লেক্সের ফ্যাসিলিটি। যেমন:

  • লিফট সার্ভিস
  • নিরাপত্তা সার্ভিস
  • পার্কিং সার্ভিস

রাকিব: কুবারনেটিসে Service মানে?

হাসান: কুবারনেটিসে Service হলো Pod গুলোর মধ্যে যোগাযোগের মাধ্যম। যেমন:

Frontend Pod → Backend Service → Backend Pods
                  ↓
               Database Service → Database Pod
Enter fullscreen mode Exit fullscreen mode

যেমন তুই লিফটম্যানকে বলিস "৫ম তলায় নিয়ে যাও", তোর জানার দরকার নেই কোন লিফট দিয়ে যাবে। Service ও তেমনি সঠিক Pod এ রিকুয়েস্ট পৌঁছে দেয়।

৫. Ingress (ইনগ্রেস)

হাসান: Ingress হলো অ্যাপার্টমেন্ট কমপ্লেক্সের মেইন গেট আর রিসেপশন

রাকিব: মানে বাইরের লোকজন আসলে প্রথমে এখানেই আসে?

হাসান: একদম! ইন্টারনেট থেকে যে রিকুয়েস্ট আসে, সেটা প্রথমে Ingress এ আসে। তারপর Ingress ঠিক করে কোন Service এ পাঠাবে।

User → Ingress → Frontend Service → Frontend Pods
              ↘️ Backend Service → Backend Pods
Enter fullscreen mode Exit fullscreen mode

যেমন তুই অ্যাপার্টমেন্টে এসে রিসেপশনে বলিস "আমি ১০৫ নম্বর ফ্ল্যাটে যাব", রিসেপশনিস্ট তোকে সঠিক দিকে পাঠিয়ে দেয়।

৬. ConfigMap এবং Secret

হাসান: ConfigMap আর Secret হলো অ্যাপার্টমেন্টের নিয়মকানুন আর সিকিউরিটি কোড

রাকিব: এগুলো কী কাজে লাগে?

হাসান:

  • ConfigMap: সাধারণ নিয়মকানুন যেমন "পার্কিং ফি ৫০০ টাকা", "রক্ষণাবেক্ষণ ফি ১০০০ টাকা"
  • Secret: গোপনীয় তথ্য যেমন "ওয়াইফাই পাসওয়ার্ড", "সিকিউরিটি কোড"
ConfigMap: 
  database_host: "db.example.com"
  max_connections: "100"

Secret:
  database_password: "secret123"
  api_key: "xyz789"
Enter fullscreen mode Exit fullscreen mode

৭. Namespace (নেমস্পেস)

হাসান: Namespace হলো অ্যাপার্টমেন্ট কমপ্লেক্সের আলাদা ব্লক বা সেকশন

রাকিব: মানে?

হাসান: যেমন বসুন্ধরা সিটিতে:

  • A Block: অফিস
  • B Block: শপিং মল
  • C Block: রেসিডেনশিয়াল

কুবারনেটিসেও:

  • production: লাইভ ওয়েবসাইট
  • staging: টেস্টিং এনভায়রনমেন্ট
  • development: ডেভেলপমেন্ট এনভায়রনমেন্ট

একটা সহজ উদাহরণ

হাসান: ধর তুই একটা অনলাইন ফুড ডেলিভারি অ্যাপ বানাচ্ছিস।

তোর অ্যাপ্লিকেশন:
├── Frontend (React App) → Pod-1, Pod-2
├── Backend API (Node.js) → Pod-3, Pod-4, Pod-5  
├── Database (MongoDB) → Pod-6
└── Redis Cache → Pod-7
Enter fullscreen mode Exit fullscreen mode

রাকিব: এগুলো কিভাবে একসাথে কাজ করে?

হাসান: দেখ:

  1. User ব্রাউজারে তোর সাইট খোলে
  2. Ingress রিকুয়েস্ট রিসিভ করে
  3. Frontend Service দিয়ে Frontend Pod এ পাঠায়
  4. Frontend যদি ডাটা লাগে, Backend Service এ রিকুয়েস্ট করে
  5. Backend Database Service থেকে ডাটা নেয়
  6. সব তথ্য ইউজারের কাছে ফিরে যায়

Kubernetes এর সুবিধা

১. Auto-Scaling (অটো-স্কেলিং)

হাসান: ধর তোর অ্যাপে হঠাৎ অনেক ট্রাফিক এলো (যেমন ঈদের সময় দারাজে)। কুবারনেটিস দেখবে যে CPU/Memory বেশি ব্যবহার হচ্ছে, আর নিজে নিজেই আরো Pod তৈরি করবে।

রাকিব: আবার ট্রাফিক কমলে?

হাসান: তখন আবার অতিরিক্ত Pod বন্ধ করে দেবে। একদম যেমন অ্যাপার্টমেন্ট কমপ্লেক্সে চাহিদা অনুযায়ী নতুন ফ্ল্যাট খোলা বা বন্ধ করা হয়।

২. Self-Healing (নিজে নিজে ঠিক হওয়া)

হাসান: কোনো Pod ক্র্যাশ করলে বা বন্ধ হয়ে গেলে, কুবারনেটিস নিজে নিজেই নতুন Pod তৈরি করে।

রাকিব: এটা কিভাবে সম্ভব?

হাসান: যেমন অ্যাপার্টমেন্টে কোনো ভাড়াটে চলে গেলে ম্যানেজার নতুন ভাড়াটে খোঁজে, কুবারনেটিসও তেমনি কাজ করে।

৩. Load Distribution (লোড বন্টন)

হাসান: কুবারনেটিস বুঝে নেয় কোন Node এ কম কাজ আছে, আর সেখানে নতুন Pod বসায়। যেমন ভাল ম্যানেজার জানে কোন বিল্ডিংয়ে জায়গা খালি আছে।

৪. Rolling Updates (ধীরে ধীরে আপডেট)

হাসান: তোর অ্যাপে নতুন ফিচার যোগ করতে চাস? কুবারনেটিস একটা একটা করে Pod আপডেট করবে। পুরো সিস্টেম বন্ধ করার দরকার নেই।

রাকিব: মানে ইউজাররা কোনো সমস্যাই টের পাবে না?

হাসান: একদম! যেমন অ্যাপার্টমেন্ট কমপ্লেক্সে একটা একটা করে ফ্ল্যাট রিনোভেশন করা হয়, পুরো বিল্ডিং বন্ধ করে না।

Kubernetes কোথায় ব্যবহার হয়?

রাকিব: কোন কোন কোম্পানি ব্যবহার করে?

হাসান: প্রায় সব বড় টেক কোম্পানি! যেমন:

১. Google

সব Google সার্ভিস (YouTube, Gmail, Search) কুবারনেটিসে চলে

২. Netflix

লাখো মানুষ একসাথে মুভি দেখে - কুবারনেটিসেই সামলায়

৩. Uber

লাখো রাইড একসাথে ট্র্যাক করা

৪. Airbnb

কোটি কোটি বুকিং ম্যানেজ করা

৫. বাংলাদেশে

  • Pathao
  • Foodpanda
  • bKash
  • Grameenphone

Kubernetes শেখার জন্য কি প্রয়োজন?

রাকিব: আমি শিখতে চাই। কি কি জানতে হবে?

হাসান:

১. Prerequisites

  • Linux Commands: কারণ সব সার্ভার Linux এ চলে
  • Docker: Container বানানো শিখতে হবে
  • YAML: কুবারনেটিসের কনফিগ ফাইল YAML এ লেখা হয়
  • Basic Networking: TCP/IP, HTTP বুঝতে হবে

২. Programming

যেকোনো একটা ভাষা (Python, Java, Go, Node.js) জানলেই চলবে

৩. Cloud Platforms

  • AWS: EKS
  • Google Cloud: GKE
  • Azure: AKS
  • DigitalOcean: DOKS

এগুলোর যেকোনো একটা

হাতে-কলমে শেখার পথ

হাসান:

১. Local Setup

প্রথমে নিজের কম্পিউটারে Minikube বা Kind দিয়ে শুরু করো

২. Simple Apps

একটা সিম্পল "Hello World" অ্যাপ Deploy করো

ৃ৩. Project Based Learning

  • Personal Blog
  • Todo App
  • Chat Application
  • E-commerce Site

৪. Production Skills

  • Monitoring (Prometheus, Grafana)
  • Logging (ELK Stack)
  • CI/CD (Jenkins, GitLab)
  • Security (RBAC, Network Policies)

সাধারণ ভুলভ্রান্তি

রাকিব: নতুনরা কি কি ভুল করে?

হাসান:

১. Resource Limits না দেওয়া

Container এ Memory/CPU লিমিট না দিলে পুরো Node ক্র্যাশ হতে পারে

২. Health Checks না করা

Pod কাজ করছে কিনা চেক না করা

৩. Security Ignore করা

Root user দিয়ে Container চালানো

৪. State সামলানো

Database এর ডাটা Pod রিস্টার্ট হলে হারিয়ে যায় - Persistent Volume ব্যবহার করতে হয়

ভবিষ্যৎ ক্যারিয়ার

রাকিব: কুবারনেটিস শিখলে কি ধরনের জব পাবো?

হাসান: অনেক রকম!

১. DevOps Engineer

২. Site Reliability Engineer (SRE)

৩. Cloud Architect

৪. Platform Engineer

শেষ কথা

হাসান: কুবারনেটিস শেখা মানে ভবিষ্যতের জন্য নিজেকে প্রস্তুত করা। এটা এখন সফটওয়্যার ইন্ডাস্ট্রির মেরুদণ্ড।

রাকিব: শোনো ভাই, তোমার বোঝানোর পর মনে হচ্ছে এটা খুব একটা কঠিন না!

হাসান: কঠিন আবার কী? শুধু ধৈর্য আর প্র্যাকটিস লাগে। তুই যদি অ্যাপার্টমেন্ট কমপ্লেক্স ম্যানেজ করতে পারিস, তাহলে কুবারনেটিসও পারবি!

রাকিব: আজ থেকেই শুরু করি! Docker দিয়ে শুরু করব, তারপর কুবারনেটিস।

হাসান: পারফেক্ট! মনে রাখিস, প্রতিদিন একটু একটু করে শিখলে ৬ মাসেই তুই কুবারনেটিস এক্সপার্ট হয়ে যাবি। আর কোনো সমস্যা হলে যোগাযোগ করিস!

রাকিব: অনেক ধন্যবাদ ভাই! এত সহজভাবে বুঝানোর জন্য।

হাসান: আরে কোনো ব্যাপার না! শেয়ার করিস বন্ধুদের সাথে। সবাই মিলে শিখি, দেশের টেক ইন্ডাস্ট্রি এগিয়ে নিয়ে যাই!


আশা করি এই ব্লগ পোস্টটি কুবারনেটিস বুঝতে সাহায্য করেছে। কোনো প্রশ্ন থাকলে কমেন্টে জানাও!

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.