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

1

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.

2

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.

3

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.

4

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.

5

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 :

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

Configuration du service

service.yaml
apiVersion: v1

Commande déploiement

YAML terminé, quelques commandes pour déployer :

kubectl commandes de déploiement
# Créer un namespace
💡 ne monte pas sur K8s juste pour faire le malin。Pour perso ou petite équipe (moins de 5 personnes), Docker Compose suffit amplement, beaucoup moins de travail ops. K8s a une courbe d'apprentissage très raide, et le cluster lui-même a besoin de maintenance. Attends d'avoir vraiment besoin de scaler et de zéro downtime pour envisager K8s.

Mise à jour continue et retour

La mise à jour progressive de K8s est intégrée, mais vous devez savoir comment revenir en arrière :

Mise à jour et retour
# Mettre à jour la version de l'image
Tuto utile pour vous?