Déploiement du cluster Kubernetes
déploiement entreprise — auto-scaling, haute dispo, rolling updates
quand passer à K8s
sois honnête : la plupart n'ont pas besoin de Kubernetes. Docker Compose tout seul gère pas mal de trafic. Mais si ton cas c'est : plusieurs personnes utilisent en même temps, besoin d'auto-scaling, zéro downtime updates—alors K8s c'est vraiment la solution.
Tuto K8s OpenClaw, cluster prep à HPA autoscaling, étape par étape.
cinq étapes pour K8s
Prépa cluster
d'abord construis le cluster K8s. Peux utiliser du K8s managé des clouds (Aliyun ACK, Tencent TKE, AWS EKS), ou auto-géré avec kubeadm. Au moins 3 nœuds recommandé, 1 master + 2 worker.
créer un Deployment
écris un Deployment YAML, définis le template Pod d'OpenClaw, nombre de replicas, limites de ressources. Recommandé au moins 2 replicas, si une crash l'autre prend le relais.
créer un Service
Service distribue le trafic à chaque Pod. Utilisez le type ClusterIP pour l'interne, ou NodePort pour exposer directement le port externalement.
Configurer Ingress
Ingress est la passerelle d'entrée du cluster, responsable du routage des domaines et du déchargement TLS. Installez un Nginx Ingress Controller, puis configurez les règles Ingress.
Activer HPA autoscaling
HPA (Horizontal Pod Autoscaler) augmente/réduit automatiquement le nombre de Pod selon l'utilisation CPU ou mémoire. Évolue automatiquement aux heures de pointe, réduit aux heures creuses, économies et tranquillité.
Configuration du déploiement
Fichier config noyau, définit comment OpenClaw tourne :
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
Configuration du service
apiVersion: v1
Commande déploiement
YAML terminé, quelques commandes pour déployer :
# Créer un namespace
Mise à jour continue et retour
La mise à jour progressive de K8s est intégrée, mais vous devez savoir comment revenir en arrière :
# Mettre à jour la version de l'image