Kubernetes ক্লাস্টার স্থাপনা

এন্টারপ্রাইজ স্থাপনা —— স্বয়ংক্রিয় স্কেল আপ-ডাউন, উচ্চ উপলব্ধতা, রোলিং আপডেট

কখন K8s এ যেতে হয়

সত্যি বলতে: বেশিরভাগ মানুষ Kubernetes প্রয়োজন করেন না। সিঙ্গেল মেশিন Docker Compose অনেক ট্রাফিক সামলাতে পারে। কিন্তু তোমার পরিস্থিতি এটা —— টিম কয়েকজন একসাথে ব্যবহার করছে, স্বয়ংক্রিয় স্কেলিং লাগে, জিরো ডাউনটাইম আপডেট লাগে —— তাহলে K8s সত্যিই সঠিক উপায়।

এই গাইড স্পষ্ট করে দেয়: তোমার ডিভাইস সত্যিকার চলবে নাকি, আপগ্রেড দরকার নাকি, টাকা কোথায় খরচ করবে।

পাঁচ ধাপ K8s স্থাপনা সম্পন্ন করো

1

ক্লাস্টার প্রস্তুতি

প্রথমে K8s ক্লাস্টার সেটআপ করো। ক্লাউড প্রদানকারীর হোস্টিং K8s ব্যবহার করতে পারো (Alibaba Cloud ACK, Tencent TKE, AWS EKS), বা kubeadm দিয়ে নিজে বানাতে পারো। কমপক্ষে ৩টি নোড সুপারিশ, ১ মাস্টার + ২ ওয়ার্কার।

2

Deployment তৈরি করো

একটি Deployment YAML লিখো, OpenClaw এর Pod টেমপ্লেট, রেপ্লিকা সংখ্যা, রিসোর্স লিমিট সংজ্ঞায়িত করো। রেপ্লিকা সংখ্যা কমপক্ষে ২, এক ক্রাশ হলে অন্যটি কভার করবে।

3

Service তৈরি করো

সার্ভিস ট্রাফিক প্রতিটি Pod এ বিতরণ করতে দায়ী। ক্লাস্টার ভিতরের জন্য ClusterIP ধরনের ব্যবহার করুন, বা NodePort সরাসরি পোর্ট প্রকাশ করুন।

4

Ingress কনফিগ করো

ইনগ্রেস ক্লাস্টারের প্রবেশদ্বার, ডোমেইন রাউটিং এবং TLS অনলোডিং এর জন্য দায়ী। একটি Nginx Ingress Controller ইনস্টল করুন, তারপর Ingress নিয়ম কনফিগার করুন।

5

HPA অটো স্কেলিং চালু করো

HPA (হরিজন্টাল পড অটোস্কেলার) CPU বা মেমোরি ব্যবহার অনুযায়ী স্বয়ংক্রিয়ভাবে Pod সংখ্যা বৃদ্ধি বা হ্রাস করে। পিক সময়ে স্বয়ংক্রিয় সম্প্রসারণ, অফ-পিক স্বয়ংক্রিয় সংকোচন, খরচ এবং শ্রম বাঁচান।

স্থাপনা কনফিগারেশন

এটি সবচেয়ে সাধারণ সার্ভার সিস্টেম, নিচের অনুযায়ী করো:

deployment.yaml
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

সার্ভিস কনফিগারেশন

service.yaml
apiVersion: v1

ডিপ্লয় কমান্ড

YAML লিখা হয়েছে, কয়েকটি কমান্ড উপর স্থাপনা করুন:

kubectl স্থাপনা কমান্ড
# নেমস্পেস তৈরি করুন
💡 K8s এ যেতে গিয়ে শো করবেন না। ব্যক্তিগত ব্যবহার বা ছোট টিম (৫ জনের কম), Docker Compose সম্পূর্ণভাবে যথেষ্ট, অপারেশন খরচ অনেক কম। K8s এর শেখার মাধ্য খুব খাড়া, ক্লাস্টার নিজেও রক্ষণাবেক্ষণ লাগে। যখন সত্যিকারে একটা মেশিন আর সামলাতে পারছ না, স্বয়ংক্রিয় স্কেলিং লাগবে, তখন K8s ভেবে দেখো।

নতুন ইউজার যোগ করো

K8s এর রোলিং আপডেট নিজেই আছে, কিন্তু আপনাকে জানতে হবে কীভাবে রোলব্যাক করতে হয়:

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