Platform-Teams, die OpenClaw-Gateways auf einem Mac mini M4 Parallel-Cluster bei clustervps betreiben, brauchen ereignisgetriebene Skalierung statt starrer Replica-Zähler. Dieser Leitfaden liefert ein minimal reproduzierbares Setup mit KEDA ScaledObject-Webhooks: Trigger an die Build-Queue, Mehr-AZ-Canary-Slices, zusammengeführte Latenz- und Fehlerrate-Sonden, Fehler-Summary-Broadcast, Skill-Pack-Versionssperre und 1TB/2TB-Platten-Wasserstände — klar abgegrenzt von Flagger-Canary und Argo Rollouts AnalysisRun.

Kapazität planen Sie über die Startseite; parallele Lanes und Buildsperren koppeln Sie an Nomad-Affinität & flock-Buildlocks. Die Matrix unten enthält zwei Vergleichstabellen und sechs Runbook-Schritte.

Drei Engpässe vor dem ersten KEDA-Scale-up

Ohne gemeinsamen Mess-Vertrag skaliert KEDA in die falsche Richtung, während Canary-Gateways weiter Skills und Artefakte promoten.

  • Queue-Blindheit: CPU-Trigger reagieren zu spät; Build-Backlogs wachsen, bevor Replikas steigen.
  • Slice-Drift: eine AZ fährt ein neueres Skill-Pack, KEDA misst eine andere — Sonden wirken grün, Nutzer sehen 5xx-Spitzen.
  • Webhook-Stürme: enge Scaler-Intervalle plus unbegrenzte Retries belasten jeden Gateway-Mac hinter dem Load-Balancer.

KEDA ScaledObject: Trigger-Bedingungen und Build-Queue-Bezug

KEDA skaliert Replikas anhand externer Metriken — nicht anhand fest verdrahteter HPA-CPU-Schwellen. Für OpenClaw-Gateways auf clustervps mappen Sie den ScaledObject-Trigger auf openclaw_build_queue_depth (Prometheus) oder einen externen Webhook-Scaler, der dieselbe Queue aus Redis/SQL spiegelt.

Trigger-TypMetrik / Queryscale-up wennscale-down wennStabilität
prometheusqueue_depth{role="gateway"}> 14 Jobs, 2 min< 4 Jobs, 10 minStandard CI
webhookPOST /keda/scaleBody desiredReplicasCooldown 300 sCustom-Queues
cpu (Fallback)avg(container_cpu)> 75 %< 35 %nur Nachtfenster
triggers:
  - type: prometheus
    metadata:
      serverAddress: http://prometheus.monitoring:9090
      query: sum(openclaw_build_queue_depth{cluster="clustervps"})
      threshold: "14"
advanced:
  horizontalPodAutoscalerConfig:
    behavior:
      scaleDown:
        stabilizationWindowSeconds: 600

Mehr-AZ-Gateway-Knoten: Canary-Slices und Traffic-Anteil

Pro Verfügbarkeitszone ein unveränderliches gateway_version-Label und ein canary_weight-Annotation-Feld. KEDA erhöht nur Replikas im Slice, dessen skill_hash mit dem Stable-Pool übereinstimmt oder explizit als Canary markiert ist. Muster aus Mehr-AZ-Canary-Skills und Gateway-Webhooks wiederverwenden — Mess-URL immer auf den canary-getaggten Hostnamen, nicht den SSH-Bastion-Pool.

  • Stable-Slice: 85–90 % Verkehr, maxReplicaCount = dokumentierte Spitze.
  • Canary-Slice: 10–15 % während KEDA scale-up; Sonden-JSON muss slice=canary tragen.
  • AZ-Parität: mindestens ein Gateway pro Region im Mess-Pool, sonst falsch-positive Latenz.

Metrik-Sonden: Latenz- und Fehlerrate-Schwellen

Exponieren Sie /keda/metrics auf einem canary-getaggten Mac mit einem Merge-JSON — ein Body pro Scaler-Intervall, analog zur Disziplin im Flagger-Leitfaden, aber Felder für KEDA-Autoscaling statt AnalysisRun.

SignalStart-Schwellescale-up blockieren wennscale-down erzwingen wenn
Canary-5xx-Rate≤ 0,5 % / 5 minZwei Fenster > ObergrenzeEin Fenster > 1,2 %
Gateway-p99-Latenz≤ 210 msRegression > 18 % vs. Stablep99 > 280 ms, 3 min
Queue-TiefeTrigger > 14Tiefe steigt trotz neuer Replikas< 4 über 10 min
degraded-Flagdegraded: falsetrue fail-closedsofort maxReplica auf Stable
{
  "keda": "openclaw-gateway",
  "canary": { "5xx_rate": 0.004, "p99_ms": 178 },
  "queue_depth": 16,
  "allow_scale_up": false,
  "degraded": true
}

Webhook-Fehler-Summary-Broadcast

Scaler-Webhooks und Sonden-Endpunkte teilen sich Bearer-Rotation mit Überlappung (mindestens ein volles KEDA-Polling-Intervall plus fünf Minuten). Bei Nicht-200 oder allow_scale_up: false einen Digest an den Notifier-Mac — Schema wie in Cluster-Logs & Webhook-Digests. Retry-Cap: drei Versuche mit Jitter; Polling-Intervall ≥ 45 s während APFS-Wartung.

  • Primär-Token: Header Authorization: Bearer für KEDA-Scaler-Callbacks.
  • Broadcast-Felder: namespace, scaledObject, desiredReplicas, letzter Sonden-Fehler, AZ.
  • Sicherheit: TLS 1.3, Pfade pro Namespace isoliert, Audit-JSONL mit Signatur-Hash.

Skill-Pack-Versionssperre und Rollback

Vor jedem scale-up skill_hash in Git versionieren und auf allen Gateway-Slices des Canary-Pools anwenden. Rollback: bei zwei fehlgeschlagenen Sonden-Fenstern maxReplicaCount auf Stable-Hash setzen, Canary-Gewicht auf null, rsync-Promotions hinter flock einfrieren — Parameter aus der Artefakt-rsync-Matrix.

1TB- und 2TB-Platten-Wasserstände vor Scale-up

KEDA darf keine Replikas erhöhen, wenn ein Gateway-Mac Gelb- oder Hard-Gates verletzt. Planungswerte für dedizierte Buildknoten:

KnotenGelb-GateHard-Stopscale-uprsync bwlimit (Tag)
1 TB APFS78 % belegt88 %blockiert45–52 Mbit/s
2 TB APFS80 % belegt90 %blockiert52–70 Mbit/s

Abgrenzung zu Flagger und Argo Rollouts (KEDA im Fokus)

Flagger verschiebt Verkehrsgewichte und wertet AnalysisRun-Metriken aus; Argo Rollouts steuert progressive Replica-Sets mit eigenen Webhooks. KEDA antwortet auf Queue- und Custom-Metriken und ändert die Anzahl der Gateway-Pods — kein Ersatz für Canary-Mathematik, sondern die Schicht darunter. Pro Fleet einen primären Controller: entweder KEDA plus manuelle Canary-Gewichte, oder Flagger/Rollouts ohne parallelen ScaledObject auf dieselbe Deployment-Gruppe.

Vergleichen Sie Verkehrs-Canaries im Flagger-Leitfaden, AnalysisRun im Argo-Rollouts-Artikel und Job-Platzierung im Nomad-Buildlock-Matrix — denselben /keda/metrics-Handler nicht doppelt anstoßen.

Minimal reproduzierbare Schritte (sechs Schritte)

  1. KEDA installieren und ScaledObject auf das OpenClaw-Gateway-Deployment mappen — Trigger = Build-Queue, nicht CPU allein.
  2. /keda/metrics exponieren auf einem canary-getaggten Mac mit Merge-JSON und allow_scale_up-Boolean.
  3. Canary-Slices pinnen pro AZ; skill_hash sperren, bevor maxReplicaCount steigt.
  4. Webhook-Broadcast aktivieren für Scaler- und Sonden-Fehler; Dual-Bearer mit Überlappung mounten.
  5. Platten-Gates verdrahten: scale-up blockieren, wenn disk_ok: false im Sonden-Body.
  6. Trockenlauf: Queue künstlich auf 18 Jobs treiben, desiredReplicas beobachten, bei degraded: true Rollback und Digest prüfen.

Zitierfähige Leitplanken

  • Queue-Trigger: openclaw_build_queue_depth Schwellwert 14 / 4 (up/down), Stabilisierung scale-down 600 s.
  • Sonden-Vertrag: ein Merge-JSON-Schema pro Gateway-Fleet, versioniert in Git.
  • Token-Überlappung: mindestens ein KEDA-Polling-Intervall plus fünf Minuten.
  • Parallel-Cluster: Mehrknoten-Macs über clustervps buchen — SSH/VNC, monatlich skalierbar.
Nur operative Orientierung. KEDA-, OpenClaw- und Prometheus-APIs entwickeln sich; ScaledObject-Felder und Webhook-Payloads gegen installierte Versionen validieren.
Parallel-Cluster auf clustervps

Mac mini M4 Mehrknoten-Cluster für KEDA + OpenClaw

Lesen Sie Nomad-Buildlocks und Flagger-Canary, dann auf der Startseite regionale Lanes wählen und Parallel-Cluster-Kapazität buchen.

Parallel-Cluster jetzt mieten Cluster-Tarife ansehen