Kubernetes ক্লাস্টারে Docker কন্টেইনার ডিপ্লয় করা একটি সাধারণ এবং কার্যকরী প্রক্রিয়া। এটি আপনার কন্টেইনারাইজড অ্যাপ্লিকেশনগুলিকে স্কেল, ম্যানেজ এবং অর্কেস্ট্রেট করতে সহায়তা করে। নিচে এই প্রক্রিয়াটি ধাপে ধাপে ব্যাখ্যা করা হলো।
প্রথমত, নিশ্চিত করুন যে আপনার Kubernetes ক্লাস্টার প্রস্তুত এবং চলমান। আপনি মিনikube, k3s, বা অন্য কোন ক্লাউড ভিত্তিক Kubernetes পরিষেবা (যেমন Google Kubernetes Engine, Amazon EKS) ব্যবহার করতে পারেন।
Docker Image তৈরি করতে, আপনার একটি Dockerfile
এবং প্রয়োজনীয় ফাইল (যেমন requirements.txt
, app.py
) থাকতে হবে। আগের উত্তরে আলোচনা করা Dockerfile
উদাহরণটি ব্যবহার করুন।
docker build -t myusername/my-app:latest .
Kubernetes ক্লাস্টারে ডিপ্লয় করার আগে, আপনাকে Docker Image টি একটি রেজিস্ট্রিতে আপলোড করতে হবে (যেমন Docker Hub):
docker push myusername/my-app:latest
Kubernetes এ ডিপ্লয়মেন্ট করতে একটি YAML ফাইল তৈরি করুন। উদাহরণস্বরূপ, deployment.yaml
নামক একটি ফাইল তৈরি করুন:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-deployment
spec:
replicas: 3 # সার্ভিসের কন্টেইনারের সংখ্যা
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: myusername/my-app:latest
ports:
- containerPort: 5000 # আপনার অ্যাপ্লিকেশনের পোর্ট
Kubernetes CLI (kubectl
) ব্যবহার করে ডিপ্লয়মেন্টটি তৈরি করতে নিম্নলিখিত কমান্ডটি চালান:
kubectl apply -f deployment.yaml
আপনার কন্টেইনার অ্যাপ্লিকেশনটি ক্লাস্টারের বাইরের ব্যবহারকারীদের কাছে অ্যাক্সেসযোগ্য করার জন্য একটি সার্ভিস তৈরি করুন। একটি নতুন YAML ফাইল তৈরি করুন, উদাহরণস্বরূপ, service.yaml
:
apiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
type: LoadBalancer # অথবা NodePort, ClusterIP
selector:
app: my-app
ports:
- protocol: TCP
port: 80 # ক্লাস্টারের মধ্যে ব্যবহৃত পোর্ট
targetPort: 5000 # কন্টেইনারের পোর্ট
সার্ভিসটি তৈরি করতে নিম্নলিখিত কমান্ডটি চালান:
kubectl apply -f service.yaml
ডিপ্লয়মেন্ট এবং সার্ভিস যাচাই করতে নিচের কমান্ডগুলি ব্যবহার করুন:
kubectl get deployments
kubectl get services
আপনার সার্ভিসের IP বা DNS নামের মাধ্যমে আপনার অ্যাপ্লিকেশনটি ব্রাউজারে খুলুন। যদি আপনি LoadBalancer
টাইপ ব্যবহার করে থাকেন, তবে এটি একটি পাবলিক IP প্রদান করবে। NodePort
ব্যবহার করলে, আপনি ক্লাস্টারের নোডের IP এবং নির্দিষ্ট পোর্ট ব্যবহার করে অ্যাক্সেস করতে পারবেন।
এই প্রক্রিয়ার মাধ্যমে আপনি Kubernetes ক্লাস্টারে Docker কন্টেইনার সফলভাবে ডিপ্লয় করেছেন। Kubernetes আপনাকে ডিপ্লয়মেন্ট, স্কেলিং, এবং স্বয়ংক্রিয় পুনরুদ্ধারের সুবিধা প্রদান করে, যা আপনার কন্টেইনারাইজড অ্যাপ্লিকেশনগুলি পরিচালনা করতে সহায়তা করে।
আরও দেখুন...