Kubernetes Concepts · Part 0909

Minikube SetupUbuntu, Windows ও macOS-এ Complete Installation

kubectl install থেকে শুরু করে virtualization check, VirtualBox বা Docker driver, Minikube install এবং cluster start ও verify করা পর্যন্ত step-by-step demo।

Minikube setup flow: install kubectl, pick the VirtualBox or Docker driver, install Minikube, then minikube start and kubectl get nodes showing a Ready node
FIG. 09 kubectl → driver (VirtualBox বা Docker) → Minikube → minikube start → Ready node।

এই Tutorial-এ আমরা দেখব কীভাবে নিজের Computer-এ Minikube ব্যবহার করে একটি Basic Kubernetes Cluster তৈরি করতে হয়।

আমরা kubectl install করা থেকে শুরু করে Virtualization Check, Docker বা VirtualBox Driver Configure, Minikube Install, Cluster Start এবং একটি Real Application Deploy করা পর্যন্ত পুরো Process দেখব।

এই Beginner Course-এ Minikube ব্যবহার করা হচ্ছে, কারণ এটি সহজ এবং Kubernetes-এর Basic Practice করার জন্য যথেষ্ট।

Minikube আমাদের নিজের Computer-এ একটি ছোট Local Kubernetes Cluster তৈরি করার সুবিধা দেয়।

আরও Advanced Multi-Node Kubernetes Cluster Setup করার জন্য পরবর্তী Advanced Courses-এ kubeadm-এর মতো Tools ব্যবহার করা হয়।

1. এই Tutorial-এর মূল উদ্দেশ্য

এই Demo-এর মূল লক্ষ্য হলো Minikube ব্যবহার করে একটি Working Kubernetes Cluster তৈরি করা এবং সেই Cluster-এর মধ্যে একটি Application Deploy করে Test করা।

আমরা শিখব:

  1. kubectl কীভাবে Install করতে হয়।
  2. Virtualization Support কীভাবে Check করতে হয়।
  3. VirtualBox অথবা Docker Driver কীভাবে ব্যবহার করতে হয়।
  4. Minikube কীভাবে Install করতে হয়।
  5. Minikube Cluster কীভাবে Start করতে হয়।
  6. Kubernetes Cluster-এর Status কীভাবে Check করতে হয়।
  7. একটি Test Application কীভাবে Deploy করতে হয়।
  8. Application-কে Service হিসেবে কীভাবে Expose করতে হয়।
  9. Browser থেকে Application কীভাবে Access করতে হয়।
  10. Testing শেষ হলে Resources কীভাবে Delete করতে হয়।

আমাদের সম্পূর্ণ Workflow হবে:

Install kubectl
       |
       ▼
Check Driver Requirements
       |
       ▼
Install Docker or VirtualBox
       |
       ▼
Install Minikube
       |
       ▼
Start Kubernetes Cluster
       |
       ▼
Verify Cluster
       |
       ▼
Deploy Application
       |
       ▼
Create Service
       |
       ▼
Access Application
       |
       ▼
Clean Up

2. Minikube Install করার আগে কী কী প্রয়োজন?

Minikube ব্যবহার করার আগে চারটি গুরুত্বপূর্ণ বিষয় বুঝতে হবে:

  1. kubectl
  2. Virtualization Support
  3. Hypervisor অথবা Driver
  4. Minikube

এই Tutorial-এ মূলত Linux Ubuntu Environment ব্যবহার করা হচ্ছে।

তবে Windows এবং macOS-এর জন্যও Installation Commands দেখানো হবে।

Componentকাজ
kubectlKubernetes Cluster Manage করার CLI
VirtualizationVirtual Machine চালানোর জন্য Hardware Support
Hypervisor / DriverKubernetes Environment Run করার Platform
MinikubeLocal Kubernetes Cluster Create এবং Manage করা

Important: Docker Driver ব্যবহার করলে Linux-এ সাধারণত hardware virtualization support দরকার হয় না। কিন্তু VirtualBox বা অন্য VM-based Driver ব্যবহার করতে চাইলে Virtualization Support প্রয়োজন।

3. প্রথমে kubectl Install করা

kubectl হলো Kubernetes-এর Command-Line Tool।

Terminal থেকে Kubernetes Cluster-এর সঙ্গে Communicate করার জন্য আমরা kubectl ব্যবহার করি।

এর মাধ্যমে Manage করতে পারি:

  • Kubernetes Cluster
  • Applications
  • Deployments
  • Services
  • Nodes
  • Pods

সহজভাবে বলতে গেলে:

kubectl হলো এমন একটি Command-Line Tool, যার মাধ্যমে আমরা Kubernetes-এর সঙ্গে কথা বলি এবং বিভিন্ন Resources Manage করি।

Minikube Install করার আগে kubectl Install করা ভালো, কারণ Minikube Cluster Create করার পর kubectl-এর Configuration Automatically Update করতে পারে।

তবে kubectl আলাদাভাবে Install করা বাধ্যতামূলক নয়। Minikube-এর Bundled kubectl ব্যবহার করার সুবিধাও রয়েছে।

3.1 Ubuntu / Linux-এ kubectl Installation

Step 1: CPU Architecture Check করা

প্রথমে Terminal Open করো।

uname -m

Possible Output:

x86_64  → Intel / AMD 64-bit
aarch64 → ARM64

CPU Architecture অনুযায়ী Correct kubectl Binary Download করতে হবে।

Step 2: kubectl Download করা

Ubuntu/Linux AMD64-এর জন্য:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

ARM64-এর জন্য:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl"

এই Command Kubernetes-এর Stable Release-এর kubectl Binary Download করবে।

Step 3: Download Verify করা

Security-এর জন্য Download করা Binary-এর Checksum Verify করা ভালো।

AMD64-এর ক্ষেত্রে:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"

ARM64 ব্যবহার করলে URL-এ amd64-এর পরিবর্তে arm64 ব্যবহার করতে হবে।

তারপর:

echo "$(cat kubectl.sha256)  kubectl" | sha256sum --check

Expected Output:

kubectl: OK

Binary এবং Checksum একই Release-এর হতে হবে।

Step 4: kubectl Install করা

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

এই Command Download করা kubectl Binary System-এর Executable Directory-তে Install করবে।

Step 5: Installation Verify করা

kubectl version --client

Expected Example:

Client Version: v1.x.x

এখন Ubuntu/Linux-এ kubectl Successfully Installed।

3.2 Windows-এ kubectl Installation

Windows-এ winget ব্যবহার করে kubectl Install করা যায়।

Step 1: PowerShell Open করা

PowerShell Open করে নিচের Command Execute করো:

winget install -e --id Kubernetes.kubectl

Installation Complete হলে নতুন PowerShell Window Open করো।

Step 2: Version Check করা

kubectl version --client

Expected:

Client Version: v1.x.x

Alternative: Chocolatey

Chocolatey আগে থেকেই Installed থাকলে:

choco install kubernetes-cli

Note: Docker Desktop-এর সঙ্গে kubectl already available থাকতে পারে। তাই আলাদা Installation করার আগে Check করতে পারো:

kubectl version --client

3.3 macOS-এ kubectl Installation

macOS-এ Homebrew ব্যবহার করে kubectl Install করা যায়।

Terminal Open করো।

brew install kubectl

Installation Complete হলে:

kubectl version --client

Expected:

Client Version: v1.x.x

এখন macOS-এ kubectl Ready।

3.4 kubectl Configuration কেন গুরুত্বপূর্ণ?

kubectl একাধিক Kubernetes Cluster-এর সঙ্গে কাজ করতে পারে।

উদাহরণস্বরূপ:

kubectl → Local Minikube Cluster
kubectl → Cloud Kubernetes Cluster
kubectl → Company Production Cluster

এখন প্রশ্ন হলো, kubectl কীভাবে বুঝবে কোন Cluster-এর সঙ্গে Communicate করতে হবে?

এর জন্য kubectl একটি Configuration File ব্যবহার করে, যার নাম kubeconfig।

Default Location:

~/.kube/config

Minikube যখন একটি Kubernetes Cluster Create করে, তখন এটি kubeconfig Update করতে পারে, যাতে kubectl নতুন Cluster-এর সঙ্গে Connect করতে পারে।

Available Contexts Check করা

kubectl config get-contexts

Current Context Check করা

kubectl config current-context

Minikube Context Select করা

kubectl config use-context minikube

Important: kubectl ব্যবহার করার সময় Current Context Check করা ভালো, বিশেষ করে যখন Local এবং Production Clusters একই Computer থেকে Manage করা হয়।

4. Virtualization Support Check করা

Minikube সাধারণত একটি Virtual Machine অথবা অন্য Isolated Environment-এর মধ্যে Kubernetes Run করে।

VirtualBox Driver ব্যবহার করলে Computer-এ Virtualization Support থাকা জরুরি।

Linux-এ CPU Virtualization Flags Check করা যায়।

Common Flags:

  • vmx → Intel Virtualization
  • svm → AMD Virtualization

Command:

grep -E --color 'vmx|svm' /proc/cpuinfo

যদি Output পাওয়া যায়, তাহলে CPU Virtualization Features Expose করছে।

যদি Output না আসে, তাহলে BIOS/UEFI Settings থেকে Virtualization Enable করার প্রয়োজন হতে পারে।

তবে শুধুমাত্র CPU Flags পাওয়া গেলেই Hypervisor সম্পূর্ণ Ready — এমন নয়। BIOS/UEFI, Host Configuration এবং VM Environment-ও সঠিক হতে হবে।

Docker Driver ব্যবহার করলে: Linux-এ সাধারণত এই Virtualization Check প্রয়োজন হয় না। তবে macOS ও Windows-এ Docker Desktop-এর নিজস্ব Virtualization বা WSL 2 Requirements থাকতে পারে।

5. Hypervisor অথবা Driver Install করা

Hypervisor হলো এমন একটি Software, যার মাধ্যমে Computer-এর মধ্যে Virtual Machines Run করা যায়।

এই Tutorial-এ VirtualBox ব্যবহার করা হয়েছে।

তবে Minikube-এর জন্য আরও কিছু Hypervisor অথবা Driver ব্যবহার করা যায়।

Operating SystemExample Driver Options
LinuxVirtualBox, KVM, Docker
WindowsVirtualBox, Hyper-V, Docker
macOSDocker, Supported VM Drivers

Minikube Docker-কেও Driver হিসেবে ব্যবহার করতে পারে।

তাই এই Tutorial-এ আমরা দুটি Setup Method দেখব:

Method A: VirtualBox Driver দিয়ে Kubernetes Cluster Start করা।

Method B: Docker Driver দিয়ে Kubernetes Cluster Start করা।

Virtual Machine কেন ব্যবহার করা হয়?

VM-based Setup-এর কিছু সুবিধা:

  • Virtual Machine সহজে Delete এবং Recreate করা যায়।
  • Host System থেকে তুলনামূলক ভালো Isolation পাওয়া যায়।
  • Virtual Machine Snapshots ব্যবহার করা যেতে পারে।
  • Kubernetes Environment আলাদাভাবে Manage করা যায়।

Docker Driver-এরও সুবিধা রয়েছে।

যদি Docker আগে থেকেই Install করা থাকে, তাহলে আলাদা Hypervisor Install না করেও Minikube Run করা যায়।

6. Minikube Install করা

kubectl এবং একটি Compatible Driver প্রস্তুত করার পর আমাদের Minikube Command-Line Tool Install করতে হবে।

Minikube হলো এমন একটি Tool, যার মাধ্যমে Local Kubernetes Cluster Create এবং Manage করা যায়।

6.1 Ubuntu / Linux-এ Minikube Install করা

প্রথমে CPU Architecture Check করো:

uname -m

AMD64-এর জন্য:

curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64

Install করো:

sudo install minikube-linux-amd64 /usr/local/bin/minikube

ARM64-এর জন্য:

curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-arm64

তারপর:

sudo install minikube-linux-arm64 /usr/local/bin/minikube

Version Check:

minikube version

6.2 Windows-এ Minikube Install করা

PowerShell Open করো।

winget install -e --id Kubernetes.minikube

Installation Complete হলে PowerShell Restart করো।

Check:

minikube version

6.3 macOS-এ Minikube Install করা

Homebrew ব্যবহার করে:

brew install minikube

তারপর:

minikube version

Expected Example:

minikube version: v1.x.x

এখন Minikube Installed।

Minikube-এর Basic Commands

minikube start
minikube status
minikube stop

এখানে:

  • minikube start → Kubernetes Cluster Start করে।
  • minikube status → Cluster-এর Status দেখায়।
  • minikube stop → Kubernetes Cluster Stop করে।

Official Installation Guide:

https://minikube.sigs.k8s.io/docs/start/

7. Method A — VirtualBox দিয়ে Minikube Start করা

এই Tutorial-এর Original Demo-তে VirtualBox Driver ব্যবহার করা হয়েছে।

VirtualBox আগে থেকে Install এবং Properly Configured থাকতে হবে।

Official Website:

https://www.virtualbox.org/

Linux/Ubuntu-তে Distribution Repository থেকে Install করার একটি সাধারণ উপায়:

sudo apt update
sudo apt install -y virtualbox

তবে Package Availability, Kernel Modules এবং Supported VirtualBox Version Ubuntu Release-এর ওপর নির্ভর করে।

Installation Verify করতে:

VBoxManage --version

Step 1: VirtualBox Driver দিয়ে Cluster Start করা

minikube start --driver=virtualbox

এই Command Execute করলে Minikube:

  1. Required Minikube ISO/Image Download করে।
  2. VirtualBox-এর মধ্যে Virtual Machine Create করে।
  3. Kubernetes Components Install এবং Configure করে।
  4. Kubernetes Cluster Start করে।
  5. kubectl-এর Kubeconfig Configure করে।

Architecture

Your Laptop
     |
     ▼
 VirtualBox
     |
     ▼
Virtual Machine
     |
     ▼
   Minikube
     |
     ▼
Kubernetes Cluster
     |
     ├── API Server
     ├── etcd
     ├── Scheduler
     ├── Controller Manager
     ├── Kubelet
     └── Container Runtime

এই Process Complete হলে একটি Local Kubernetes Cluster Ready হবে।

Step 2: Minikube Status Check করা

minikube status

Step 3: Kubernetes Nodes Check করা

kubectl get nodes

Expected Example:

NAME       STATUS   ROLES           AGE   VERSION
minikube   Ready    control-plane   2m    v1.x.x

এখানে Ready মানে Kubernetes Node Ready অবস্থায় রয়েছে।

8. Method B — Docker Driver দিয়ে Minikube Start করা

VirtualBox ছাড়াও Minikube Docker Driver ব্যবহার করে Cluster Start করতে পারে।

যদি Docker Engine বা Docker Desktop আগে থেকেই Installed থাকে, তাহলে এটি একটি সহজ Approach।

Docker Driver ব্যবহার করার জন্য Docker Engine Running থাকতে হবে।

Step 1: Docker Installation Verify করা

Terminal Open করে:

docker --version

তারপর:

docker info

Docker Container Run হচ্ছে কি না Test করতে:

docker run --rm hello-world

Expected Output:

Hello from Docker!

যদি Linux-এ Docker Service Running না থাকে, তাহলে:

sudo systemctl enable --now docker

Docker Desktop ব্যবহার করলে Application Open এবং Engine Running থাকতে হবে।

Step 2: Docker Driver দিয়ে Minikube Start করা

minikube start --driver=docker

এই Command Execute করলে Minikube Docker ব্যবহার করে Kubernetes Cluster তৈরি করবে।

Docker Driver Architecture

Your Computer
       |
       ▼
Docker Engine / Docker Desktop
       |
       ▼
Minikube Node Container
       |
       ▼
Kubernetes Components
       |
       ├── API Server
       ├── etcd
       ├── Scheduler
       ├── Controller Manager
       ├── Kubelet
       └── Container Runtime
       |
       ▼
Kubernetes Cluster Ready

এখানে VirtualBox Virtual Machine-এর পরিবর্তে Docker-based Node Environment ব্যবহার হচ্ছে।

Important: Minikube Docker Driver ব্যবহার করলেও Kubernetes Node-এর ভিতরে containerd-এর মতো CRI-Compatible Runtime ব্যবহার করা হতে পারে।

Docker এখানে মূলত Kubernetes Node Environment Host করার Driver হিসেবে কাজ করছে।

Step 3: Docker-কে Default Minikube Driver করা

প্রতিবার --driver=docker লিখতে না চাইলে:

minikube config set driver docker

এরপর:

minikube start

Command দিয়েই Docker Driver ব্যবহার করা যাবে, যদি Profile এবং Configuration Compatible থাকে।

Step 4: Minikube Status Check করা

minikube status

Expected Example:

minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

সব Components Running থাকলে Cluster Ready।

Step 5: Kubernetes Node Check করা

kubectl get nodes

Expected:

NAME       STATUS   ROLES           AGE   VERSION
minikube   Ready    control-plane   2m    v1.x.x

এখানে Minikube একটি Single-Node Kubernetes Cluster Create করেছে।

Step 6: Kubernetes System Pods Check করা

kubectl get pods -A

Example Output:

NAMESPACE     NAME                        STATUS
kube-system   coredns-xxxxx               Running
kube-system   etcd-minikube               Running
kube-system   kube-apiserver-minikube     Running

Kubernetes Version এবং Configuration অনুযায়ী আরও System Pods থাকতে পারে।

Step 7: Docker-এর মধ্যে Minikube Check করা

Docker Driver ব্যবহার করলে Minikube Node একটি Docker-based Container Environment-এর মধ্যে Run করে।

Check করতে:

docker ps

এখানে Minikube-related Container দেখতে পাওয়া যাবে।

এর মাধ্যমে Confirm করা যায় Minikube Docker Driver ব্যবহার করছে।

9. VirtualBox Driver vs Docker Driver

FeatureVirtualBox DriverDocker Driver
Kubernetes EnvironmentVirtual MachineContainer-based Node
VirtualBox RequiredYesNo
Docker RequiredNoYes
Hardware VirtualizationRequiredLinux-এ সাধারণত দরকার নেই
Setup ComplexityMediumEasy, যদি Docker Installed থাকে
IsolationVM-basedContainer-based
Local Kubernetes PracticeYesYes
Start Commandminikube start --driver=virtualboxminikube start --driver=docker

দুটি Approach-ই Kubernetes শেখার জন্য ব্যবহার করা যায়।

VirtualBox Driver ব্যবহার করলে Kubernetes একটি VM-based Environment-এর মধ্যে Run করে।

Docker Driver ব্যবহার করলে Kubernetes Docker-based Node Environment-এর মধ্যে Run করে।

এই Tutorial-এর পরবর্তী Application Deployment Steps দুটি Driver-এর ক্ষেত্রেই একই।

Was this guide helpful?

Search the archive

Press Esc to close