Kubernetes-Cluster-Bereitstellung
Enterprise Bereitstellung —— Auto-Scaling, hohe Verfügbarkeit, Rolling Update
Wann sollte man auf K8s wechseln
Ehrlich gesagt: Die meisten brauchen Kubernetes nicht. Single-Machine Docker Compose kann viel Verkehr tragen. Aber wenn du diese Situation hast —— mehrere Team-Mitglieder gleichzeitig, elastische Skalierung, Zero-Downtime Update —— dann K8s ist richtig.
Diese Anleitung zeigt dir Schritt für Schritt OpenClaw auf K8s zu deployen, von Cluster-Setup bis HPA Auto-Scaling.
Fünf Schritte K8s Bereitstellung fertig
Cluster-Vorbereitung
Zuerst K8s Cluster aufbauen. Kann Cloud-Anbieter verwaltetes K8s (Alibaba Cloud ACK, Tencent TKE, AWS EKS) oder selbstgebaut mit kubeadm. Mindestens 3 Knoten, 1 master + 2 worker empfohlen.
Erstelle Deployment
Schreibe ein Deployment YAML, definiere OpenClaw Pod Template, Replicas, Ressourcen-Limits. Mindestens 2 Replicas empfohlen, eine fällt aus, andere steht bereit.
Erstelle Service
Service verteilt Traffic zu Pods. Nutze ClusterIP-Typ für Cluster-intern, oder NodePort für direkt externe Sichtbarkeit.
Ingress konfigurieren
Ingress ist das Cluster-Gateway, verantwortlich für Domain-Routing und TLS-Offloading. Einen Nginx Ingress Controller installieren, dann Ingress-Regeln konfigurieren.
HPA Auto-Skalierung aktivieren
HPA (Horizontal Pod Autoscaler) skaliert Pod-Anzahl automatisch nach CPU oder RAM. Spitzenlast automatisch vergrößern, Talsohle automatisch verkleinern, Kostenersparnis und Sorglosigkeit.
Deployment-Konfiguration
Das ist die zentrale Config-Datei, definiert wie OpenClaw läuft:
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 Konfiguration
apiVersion: v1
Deployment-Befehl
YAML konfiguriert, paar Befehle bereitstellen:
# Namespace erstellen
Rolling Update und Rollback
K8s Rolling Update ist eingebaut, aber du musst wissen, wie man Rollback macht:
# Image-Version aktualisieren