Kubernetes क्लस्टर तैनाती

एंटरप्राइज़ डिप्लॉयमेंट —— ऑटो-स्केलिंग, हाई अवेलेबिलिटी, रोलिंग अपडेट्स

कब K8s पर जाना चाहिए

सीधे कह दूँ: ज़्यादातर लोगों को Kubernetes की जरूरत नहीं। डॉकर कंपोज़ बहुत सारे ट्रैफ़िक हैंडल कर सकता है। पर अगर तुम्हारी सिचुएशन ऐसी है —— कई लोग एक साथ यूज़ करते हैं, ऑटो-स्केलिंग चाहिए, ज़ीरो-डाउनटाइम अपडेट्स —— तो K8s सही जवाब है।

यह article step-by-step K8s पर OpenClaw deploy करना सिखाता है, cluster setup से लेके HPA auto-scaling तक।

पाँच स्टेप में K8s डिप्लॉयमेंट सेटअप हो जाता है

1

Cluster preparation

पहले K8s क्लस्टर सेटअप कर लो। क्लाउड वेंडर की मैनेज्ड K8s यूज़ कर सकते हो (अलीबाबा ACK, टेनसेंट TKE, AWS EKS), या kubeadm से अपना बनाओ। कम से कम 3 नोड्स, 1 master + 2 worker।

2

Deployment बनाओ

एक Deployment YAML लिख दो, OpenClaw के Pod टेंप्लेट को डिफ़ाइन करो, रेप्लिकाज़, रिसोर्स लिमिट्स। कम से कम 2 रेप्लिकाज़ रखो, एक गिरा तो दूसरा संभाल ले।

3

Service बनाओ

Service विभिन्न Pods में ट्रैफिक वितरित करने के लिए जिम्मेदार है। क्लस्टर के अंदर के उपयोग के लिए ClusterIP प्रकार का उपयोग करें, या NodePort सीधे बाहर बताएं।

4

Configure Ingress

Ingress क्लस्टर का प्रवेश द्वार है, डोमेन रूटिंग और TLS unloading के लिए जिम्मेदार है। एक Nginx Ingress Controller इंस्टॉल करें, फिर Ingress नियम कॉन्फ़िगर करें।

5

HPA auto-scaling को enable करना।

HPA (Horizontal Pod Autoscaler) CPU या मेमोरी उपयोग के आधार पर स्वचालित रूप से Pod संख्या बढ़ाता-घटाता है। चोटी के समय स्वचालित रूप से स्केल अप, कम समय में स्वचालित रूप से स्केल डाउन, पैसा और प्रयास बचाता है।

तैनाती कॉन्फ़िग

यह core config file है, जो define करती है कि OpenClaw कैसे चलेगी:

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 कॉन्फ़िगरेशन

service.yaml
apiVersion: v1

Deployment command

YAML लिख गए, कुछ कमांड से तैनात कर सकते हैं:

kubectl डिप्लॉयमेंट कमांड
# नेमस्पेस बनाएं
💡 सिर्फ दिखावे के लिए K8s पर मत जाओ। पर्सनल यूज़ या स्मॉल टीम (5 लोगों तक) के लिए Docker Compose पूरी तरह काफ़ी है, ऑपरेशन्स ओवरहेड बहुत कम होता है। K8s सीखना मुश्किल होता है, क्लस्टर को भी मेनटेनेंस की जरूरत होती है। जब सच में सिंगल मशीन काफ़ी न रह जाए, ऑटो-स्केलिंग चाहिए, उसी बक़्त K8s को सोचो।

Rolling update और rollback।

K8s का रोलिंग अपडेट शामिल है, लेकिन आपको पता होना चाहिए कि रोलबैक कैसे करते हैं:

Update और rollback।
# छवि संस्करण अपडेट करें
क्या यह tutorial तुम्हारे लिए useful रहा?