Kubernetes ক্লাস্টার স্থাপনা
এন্টারপ্রাইজ স্থাপনা —— স্বয়ংক্রিয় স্কেল আপ-ডাউন, উচ্চ উপলব্ধতা, রোলিং আপডেট
কখন K8s এ যেতে হয়
সত্যি বলতে: বেশিরভাগ মানুষ Kubernetes প্রয়োজন করেন না। সিঙ্গেল মেশিন Docker Compose অনেক ট্রাফিক সামলাতে পারে। কিন্তু তোমার পরিস্থিতি এটা —— টিম কয়েকজন একসাথে ব্যবহার করছে, স্বয়ংক্রিয় স্কেলিং লাগে, জিরো ডাউনটাইম আপডেট লাগে —— তাহলে K8s সত্যিই সঠিক উপায়।
এই গাইড স্পষ্ট করে দেয়: তোমার ডিভাইস সত্যিকার চলবে নাকি, আপগ্রেড দরকার নাকি, টাকা কোথায় খরচ করবে।
পাঁচ ধাপ K8s স্থাপনা সম্পন্ন করো
ক্লাস্টার প্রস্তুতি
প্রথমে K8s ক্লাস্টার সেটআপ করো। ক্লাউড প্রদানকারীর হোস্টিং K8s ব্যবহার করতে পারো (Alibaba Cloud ACK, Tencent TKE, AWS EKS), বা kubeadm দিয়ে নিজে বানাতে পারো। কমপক্ষে ৩টি নোড সুপারিশ, ১ মাস্টার + ২ ওয়ার্কার।
Deployment তৈরি করো
একটি Deployment YAML লিখো, OpenClaw এর Pod টেমপ্লেট, রেপ্লিকা সংখ্যা, রিসোর্স লিমিট সংজ্ঞায়িত করো। রেপ্লিকা সংখ্যা কমপক্ষে ২, এক ক্রাশ হলে অন্যটি কভার করবে।
Service তৈরি করো
সার্ভিস ট্রাফিক প্রতিটি Pod এ বিতরণ করতে দায়ী। ক্লাস্টার ভিতরের জন্য ClusterIP ধরনের ব্যবহার করুন, বা NodePort সরাসরি পোর্ট প্রকাশ করুন।
Ingress কনফিগ করো
ইনগ্রেস ক্লাস্টারের প্রবেশদ্বার, ডোমেইন রাউটিং এবং TLS অনলোডিং এর জন্য দায়ী। একটি Nginx Ingress Controller ইনস্টল করুন, তারপর Ingress নিয়ম কনফিগার করুন।
HPA অটো স্কেলিং চালু করো
HPA (হরিজন্টাল পড অটোস্কেলার) CPU বা মেমোরি ব্যবহার অনুযায়ী স্বয়ংক্রিয়ভাবে Pod সংখ্যা বৃদ্ধি বা হ্রাস করে। পিক সময়ে স্বয়ংক্রিয় সম্প্রসারণ, অফ-পিক স্বয়ংক্রিয় সংকোচন, খরচ এবং শ্রম বাঁচান।
স্থাপনা কনফিগারেশন
এটি সবচেয়ে সাধারণ সার্ভার সিস্টেম, নিচের অনুযায়ী করো:
apiVersion: apps/v1
kind: Deployment
metadata:
name: openclaw
namespace: openclaw
labels:
app: openclaw
spec:
replicas: 2
selector:
matchLabels:
app: openclaw
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
template:
metadata:
labels:
app: openclaw
spec:
containers:
- name: openclaw
image: openclaw/openclaw:latest
ports:
- containerPort: 3000
resources:
requests:
cpu: "500m"
memory: "512Mi"
limits:
cpu: "2000m"
memory: "2Gi"
env:
- name: OPENCLAW_API_KEY
valueFrom:
secretKeyRef:
name: openclaw-secrets
key: api-key
livenessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 5
periodSeconds: 5
volumeMounts:
- name: data
mountPath: /app/data
volumes:
- name: data
persistentVolumeClaim:
claimName: openclaw-data
সার্ভিস কনফিগারেশন
apiVersion: v1
ডিপ্লয় কমান্ড
YAML লিখা হয়েছে, কয়েকটি কমান্ড উপর স্থাপনা করুন:
# নেমস্পেস তৈরি করুন
নতুন ইউজার যোগ করো
K8s এর রোলিং আপডেট নিজেই আছে, কিন্তু আপনাকে জানতে হবে কীভাবে রোলব্যাক করতে হয়:
# ইমেজ সংস্করণ আপডেট করুন