Les équipes qui exécutent OpenClaw Gateway sur Docker ou Kubernetes en 2026 livrent vite tout en traitant encore “conteneur en cours” comme sain. Sans chemins de probe HTTP, sémantique de readiness et paramètres rolling sur le même ticket de changement, vous obtenez des kills de liveness au cold start, un depends_on qui attend les conteneurs mais pas la readiness, ou un 429 fournisseur pris pour un Gateway mort et des redémarrages sans fin. Cet article se cale sur le runbook Docker production, la checklist upgrade et migration et le routage et failover fournisseurs, et livre six pièges prêts pour RCA, une matrice liveness/readiness/startup, un mapping Compose contre Kubernetes, des extraits YAML copiables, un runbook de déploiement en six étapes et trois métriques tableau de bord—plus comment placer le Gateway sur un plan d’exécution Mac distant stable.
Les versions récentes d’OpenClaw ajoutent des points de terminaison HTTP adaptés à l’orchestration (chemins et ports exacts suivent votre tag d’image épinglé et les notes de version; des noms comme /health, /ready, /healthz apparaissent dans l’écosystème). Enregistrez ces six schémas dans les RCA et réutilisez le vocabulaire de doctor et triage post-installation.
depends_on sans conditions de santé : les dépendants démarrent pendant que le Gateway n’atteint pas encore la socket backend—502 intermittents.127.0.0.1 fonctionne dans le pod mais le ClusterIP échoue—lu comme panne applicative.maxUnavailable agressif : les anciens pods se vident avant que les nouveaux passent la readiness—courtes fenêtres rouge plein.Par rapport au guide d’installation multi-plateforme : l’installation répond au premier boot ; la production répond à l’exploitation longue durée ; cet article répond à comment les orchestrateurs décident “sain” ; les upgrades répondent au déplacement d’image et au rollback.
Les types de probes Kubernetes ne se mappent pas 1:1 sur les redémarrages healthcheck Docker ; utilisez le tableau en revue d’architecture.
| Contrôle | Effet typique en cas d’échec | Valide | Orientations OpenClaw |
|---|---|---|---|
| startupProbe | supprime les échecs liveness jusqu’au succès | cold start lent mais borné | à utiliser quand premier fetch de config, index ou dépendances prennent des minutes |
| livenessProbe | redémarre conteneur/Pod | deadlocks, processus non réactif | éviter les dépendances LLM externes ; auto-contrôle minimal seulement |
| readinessProbe | retire des endpoints Service | pas prêt pour le trafic | peut inclure un ping modèle minimal ou signal config chargée—aligner sur la politique de failover |
| Docker healthcheck | marque unhealthy ; politique de restart variable | Compose sur un hôte | coupler avec depends_on: condition: service_healthy (syntaxe selon docs Compose v2) |
Traduire “sain” en champs concrets coupe les débats de minuit.
| Dimension | Docker Compose (modèle) | Kubernetes Deployment |
|---|---|---|
| Commande de probe | healthcheck.test avec curl/wget | httpGet ou exec |
| Grâce au démarrage | start_period | startupProbe ou initialDelaySeconds plus grandes |
| Retrait de charge | couche proxy/LB ou label santé seulement | readinessProbe pilote les Endpoints |
| Rolling | ordre compose manuel ou CD externe | maxSurge / maxUnavailable / minReadySeconds |
# Exemples—remplacer PORT et chemins par les valeurs de la doc pour votre tag
# Docker Compose (extrait)
healthcheck:
test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:${GATEWAY_PORT}/health || exit 1"]
interval: 15s
timeout: 3s
retries: 5
start_period: 120s
# Kubernetes (extrait)
readinessProbe:
httpGet:
path: /ready
port: http
initialDelaySeconds: 10
periodSeconds: 10
livenessProbe:
httpGet:
path: /health
port: http
initialDelaySeconds: 30
periodSeconds: 20
Avertissement : l’amont peut ajouter ou renommer /health, /ready, /healthz sur des releases type 2026.3.x. Avant de copier les extraits, confirmez la documentation officielle pour votre digest/tag et vérifiez avec curl -v en staging.
127.0.0.1 via docker compose exec ou kubectl exec, puis via le Service.maxUnavailable versus fenêtre de maintenance.Sur le chemin Linux systemd + Tunnel, aligner santé du tunnel, écouteurs loopback et contrôles amont du LB—sinon des faux positifs “tunnel vivant, Gateway n’écoute pas”.
Corréler kubectl rollout status ou journaux d’upgrade Compose avec les changements Git pour séparer probes serrées et régressions d’image.
Le matériel grand public subit veille, jitter disque et mises à jour OS non planifiées—temps de démarrage et seuils de probes dérivent. Avec des fenêtres rolling, cela consume l’astreinte. Faire tourner OpenClaw et des agents sous une SLA attendue demande du calcul dédié, un egress stable et des nœuds tolérants aux pics.
L’auto-hébergement fragmenté complique aussi la latence multi-régions et l’exploitation contractuelle : ajuster les probes couplé aux reboots d’hôte est pénible sur portables. Pour des Gateways 24/7 observables, rollables et compatibles rollback, des Mac cloud Apple Silicon multi-régions professionnels battent en général le matériel ad hoc. MACCOME propose des Mac Mini M4 / M4 Pro bare metal à conditions flexibles comme Gateway ou hôte d’automatisation mixte—commencez par le centre d’aide pour le langage d’accès, puis les tarifs de location et le guide multi-régions pour finaliser les SKU.
Pilote : location courte dans la région cible, exécuter probes conteneur, probes Service et un exercice rolling complet avant d’engager des durées mensuelles ou trimestrielles.
FAQ
Les probes échouent mais l’interface de contrôle s’affiche—quelle source fait foi ?
Les URL et codes de statut configurés par l’orchestrateur. Pour le contexte facturation, ouvrir les tarifs de location ; pour les probes reproduire avec curl dans le conteneur en staging.
Comment utiliser ceci avec l’article Docker production ?
La production couvre volumes et jetons ; cet article couvre probes et rollouts. Attacher les deux plus les upgrades au même changement.
Le 429 doit-il toucher la liveness ?
En général non—utiliser routage et failover fournisseurs pour backoff et routage ; le couplage readiness est un choix SLO explicite.