Implementación de clúster Kubernetes - Plan de implementación OpenClaw
despliegue nivel empresa —— autoscaling, alta disponibilidad, rolling updates
cuándo deberías subir a K8s
verdad: la mayoría no necesita Kubernetes. Docker Compose single machine aguanta bastante tráfico. Pero si tu situación es: equipo grande usando simultáneamente, necesitas autoscaling, requieres zero-downtime updates —— entonces K8s es la respuesta.
Este tutorial te enseña a desplegar OpenClaw en K8s desde cero, desde preparar el cluster hasta HPA auto-scaling, paso a paso.
cinco pasos para despliegue K8s
Preparación del cluster
primero construye el cluster K8s. Puedes usar K8s managed de cloud (Alibaba ACK, Tencent TKE, AWS EKS), o autogestión con kubeadm. Recomienda al menos 3 nodos, 1 master + 2 worker.
crear Deployment
escribe un Deployment YAML, define template Pod de OpenClaw, replicas, límites de recursos. Recomienda al menos 2 replicas, si uno cae el otro aguanta.
crear Service
Service es responsable de distribuir tráfico a cada Pod. Usa tipo ClusterIP para uso interno en clúster, o NodePort para exponer puerto directamente.
Configura Ingress
La actualización gradual de K8s es integrada, pero necesitas saber cómo revertir:
Activa el suite de Docker
Certificado HTTPS
Configuración de Deployment
Este es el archivo de configuración principal, define cómo corre OpenClaw:
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
Configuración de Service
apiVersion: v1
Comando de despliegue
YAML escrito, pocos comandos para implementar:
# Crear espacio de nombres
Agregar nuevo usuario
Tutorial de implementación de K8s
# Actualizar versión de imagen