Hvordan distribuere OpenClaw på Kubernetes
Sikkerhetsforskere har funnet over 135 000 OpenClaw-instanser som står helt ubeskyttet på internett. Mange av dem var sårbare for fjernkodekjøring. OpenClaw-sikkerhetskrisen er reell: kritiske CVE-er, ondsinnede ferdigheter og et grunnleggende problem med hvordan de fleste distribusjoner håndterer autentisering. Å kjøre OpenClaw på en VPS med docker run er enkelt. Å kjøre det sikkert er et annet problem.
Kubernetes løser det problemet. Du får nettverksisolering, ressursbegrensninger, automatiserte omstarter og sikkerhetsstandarder som ville tatt timer å konfigurere for hånd. Og med OpenClaw Kubernetes Operator får du alt dette fra en enkelt YAML-fil.
Denne guiden tar deg fra null til en produksjonsklar OpenClaw-agent på Kubernetes. Hver YAML-blokk er klar til å kopieres og limes inn.
Hvorfor en operator
Å kjøre OpenClaw på Kubernetes er mer enn en Deployment og en Service. Du trenger nettverksisolering, hemmelighetshåndtering, persistent lagring, helseovervåking, konfigurasjonsoppdatering og valgfri nettleserautomatisering. Å koble alt dette riktig for hånd er kjedelig og feilutsatt.
En Kubernetes-operator koder disse kravene inn i en enkelt tilpasset ressurs. Du deklarerer hva du vil ha, og operatoren avstemmer det kontinuerlig til riktig sett med Kubernetes-objekter. Det gir deg:
- Sikkerhet som standard. Hver agent kjører som UID 1000, alle Linux-kapabiliteter droppet, seccomp aktivert, skrivebeskyttet rotfilsystem og en standard-nekt NetworkPolicy som bare tillater DNS og HTTPS utgående. Ingen manuell herding nødvendig.
- Automatiske oppdateringer med tilbakerulling. Operatoren sjekker OCI-registeret for nye versjoner, sikkerhetskopierer arbeidsområdet, ruller ut oppdateringen og ruller automatisk tilbake hvis den nye poden feiler helsesjekker.
- Konfigurasjonsutrulling. Endre din
spec.config.rawog operatoren oppdager at innholdshash endret seg, utløser en rullerende oppdatering. Det samme for hemmelighetsrotasjon. - Sikkerhetskopiering og gjenoppretting. Automatisk sikkerhetskopiering av arbeidsområde til S3-kompatibel lagring ved sletting av instans. Gjenoppretting til ny instans fra ethvert øyeblikksbilde.
- Gateway-autentisering. Autogenererer et gateway-token per instans. Ingen manuell paring, ingen mDNS (som ikke fungerer i Kubernetes uansett).
- Avviksdeteksjon. Hvert 5. minutt sjekker operatoren at hver administrert ressurs matcher ønsket tilstand. Hvis noen manuelt redigerer en NetworkPolicy eller sletter en PDB, avstemmes den tilbake.
Forutsetninger
Du trenger:
- Et Kubernetes-kluster (1.28+). Enhver kompatibel distribusjon fungerer: EKS, GKE, AKS, k3s eller et lokalt Kind-kluster for testing.
kubectlkonfigurert til å snakke med klusteret ditt.helmv3 installert.- En API-nøkkel for AI-leverandøren din (Anthropic, OpenAI eller ethvert OpenAI-kompatibelt endepunkt).
Trinn 1: Installer operatoren
Operatoren leveres som et OCI Helm chart. En kommando installerer den:
helm install openclaw-operator \
oci://ghcr.io/openclaw-rocks/charts/openclaw-operator \
--namespace openclaw-operator-system \
--create-namespace
Verifiser at den kjører:
kubectl get pods -n openclaw-operator-system
Du bør se operator-poden i tilstanden Running. Operatoren installerer også en validerings-webhook som forhindrer usikre konfigurasjoner (som å kjøre som root).
Trinn 2: Opprett din API-nøkkelhemmelighet
Lagre API-nøkkelen til AI-leverandøren din i en Kubernetes Secret. Operatoren vil injisere den i agent-containeren:
kubectl create namespace openclaw
kubectl create secret generic openclaw-api-keys \
--namespace openclaw \
--from-literal=ANTHROPIC_API_KEY=sk-ant-your-key-here
For OpenAI eller andre leverandører, bruk passende miljøvariabelnavn (OPENAI_API_KEY, OPENROUTER_API_KEY osv.). Du kan inkludere flere leverandører i samme Secret.
Tips: For produksjon, vurder å bruke External Secrets Operator for å synkronisere nøkler fra AWS Secrets Manager, HashiCorp Vault, GCP Secret Manager eller Azure Key Vault. Operatorens dokumentasjon har detaljerte eksempler.
Trinn 3: Distribuer din første agent
Opprett en fil kalt my-agent.yaml:
apiVersion: openclaw.rocks/v1alpha1
kind: OpenClawInstance
metadata:
name: my-agent
namespace: openclaw
spec:
envFrom:
- secretRef:
name: openclaw-api-keys
config:
raw:
agents:
defaults:
model:
primary: "anthropic/claude-sonnet-4-20250514"
storage:
persistence:
enabled: true
size: 10Gi
Bruk den:
kubectl apply -f my-agent.yaml
Denne ene ressursen oppretter en StatefulSet, Service, ServiceAccount, Role, RoleBinding, ConfigMap, PVC, PDB, NetworkPolicy og en gateway-token Secret. Operatoren avstemmer alt.
Trinn 4: Verifiser at den kjører
Overvåk instansens oppstart:
kubectl get openclawinstances -n openclaw -w
NAME PHASE READY AGE
my-agent Provisioning False 10s
my-agent Running True 45s
Når fasen viser Running og Ready er True, er agenten din live. Sjekk loggene:
kubectl logs -n openclaw statefulset/my-agent -f
For å samhandle med agenten din, port-forward gatewayen:
kubectl port-forward -n openclaw svc/my-agent 18789:18789
Åpne deretter http://localhost:18789 i nettleseren din.
Trinn 5: Koble til en kanal
OpenClaw støtter Telegram, Discord, WhatsApp, Signal og andre meldingskanaler. Hver kanal konfigureres gjennom miljøvariabler. Legg til relevant token i din Secret:
kubectl create secret generic openclaw-channel-keys \
--namespace openclaw \
--from-literal=TELEGRAM_BOT_TOKEN=your-bot-token-here
Referer deretter til den i instansen din:
spec:
envFrom:
- secretRef:
name: openclaw-api-keys
- secretRef:
name: openclaw-channel-keys
OpenClaw oppdager tokenet automatisk og aktiverer kanalen. Ingen ekstra konfigurasjon nødvendig.
Det dekker det grunnleggende. Agenten din kjører, er sikret og tilgjengelig. Resten av denne guiden dekker valgfrie funksjoner du kan aktivere når du er klar.
Nettleserautomatisering
spec:
chromium:
enabled: true
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: 1000m
memory: 2Gi
Operatoren injiserer automatisk en CHROMIUM_URL-miljøvariabel i hovedcontaineren. Sidecar-containeren kjører som UID 1001 med et skrivebeskyttet rotfilsystem og sin egen sikkerhetskontekst.
Ferdigheter og kjøretidsavhengigheter
spec:
skills:
- "@anthropic/mcp-server-fetch"
- "@anthropic/mcp-server-filesystem"
spec:
runtimeDeps:
pnpm: true # Installs pnpm via corepack
python: true # Installs Python 3.12 + uv
Automatiske oppdateringer
spec:
autoUpdate:
enabled: true
checkInterval: "12h"
backupBeforeUpdate: true
rollbackOnFailure: true
healthCheckTimeout: "10m"
Når en ny versjon dukker opp i registeret, oppretter operatoren en sikkerhetskopi, oppdaterer bildetaggen, venter på helsesjekker, og ruller tilbake om nødvendig.
Produksjonsherding
Overvåking med Prometheus
spec:
observability:
metrics:
enabled: true
serviceMonitor:
enabled: true
interval: "30s"
Planlegging på dedikerte noder
spec:
availability:
nodeSelector:
openclaw.rocks/nodepool: openclaw
tolerations:
- key: openclaw.rocks/dedicated
value: openclaw
effect: NoSchedule
Tilpassede utgående regler
spec:
security:
networkPolicy:
additionalEgress:
- to:
- ipBlock:
cidr: 10.0.0.0/8
ports:
- port: 5432
protocol: TCP
Skyleverandøridentitet
spec:
security:
rbac:
serviceAccountAnnotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::123456789:role/openclaw"
Bedriftsproxyer og private CA-er
spec:
security:
caBundle:
configMapName: corporate-ca-bundle
key: ca-bundle.crt
GitOps
OpenClawInstance CRD er en vanlig YAML-fil. Lagre agentmanifestene dine i et git-repo og la ArgoCD eller Flux synkronisere dem til klusteret ditt. Ingen kubectl apply fra bærbare datamaskiner, ingen konfigurasjonsavvik, fullstendig revisjonsspor.
Sikkerhetskopiering og gjenoppretting
apiVersion: openclaw.rocks/v1alpha1
kind: OpenClawInstance
metadata:
name: my-agent-restored
namespace: openclaw
spec:
restoreFrom: "s3://bucket/path/to/backup.tar.gz"
envFrom:
- secretRef:
name: openclaw-api-keys
storage:
persistence:
enabled: true
size: 10Gi
Lokal inferens med Ollama
spec:
ollama:
enabled: true
models:
- "llama3.2"
- "nomic-embed-text"
gpu: 1
resources:
requests:
cpu: "2"
memory: 4Gi
limits:
cpu: "4"
memory: 8Gi
storage:
sizeLimit: 30Gi
Tailscale-integrasjon
spec:
tailscale:
enabled: true
mode: serve
authKeySecretRef:
name: tailscale-authkey
hostname: my-agent
Det komplette eksempelet
apiVersion: openclaw.rocks/v1alpha1
kind: OpenClawInstance
metadata:
name: production-agent
namespace: openclaw
spec:
envFrom:
- secretRef:
name: openclaw-api-keys
config:
mergeMode: merge
raw:
agents:
defaults:
model:
primary: "anthropic/claude-sonnet-4-20250514"
skills:
- "@anthropic/mcp-server-fetch"
runtimeDeps:
pnpm: true
chromium:
enabled: true
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: 1000m
memory: 2Gi
ollama:
enabled: true
models: ["llama3.2"]
gpu: 1
resources:
requests:
cpu: "2"
memory: 4Gi
tailscale:
enabled: true
mode: serve
authKeySecretRef:
name: tailscale-authkey
authSSO: true
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: 2000m
memory: 4Gi
storage:
persistence:
enabled: true
size: 10Gi
autoUpdate:
enabled: true
checkInterval: "24h"
backupBeforeUpdate: true
rollbackOnFailure: true
observability:
metrics:
enabled: true
serviceMonitor:
enabled: true
availability:
nodeSelector:
openclaw.rocks/nodepool: openclaw
tolerations:
- key: openclaw.rocks/dedicated
value: openclaw
effect: NoSchedule
Hva du får med en gang
Uten å røre en eneste sikkerhetsinnstilling leveres hver agent distribuert av operatoren med: ikke-root-kjøring (UID 1000), skrivebeskyttet rotfilsystem, alle Linux-kapabiliteter droppet, Seccomp RuntimeDefault-profil, standard-nekt NetworkPolicy (bare DNS + HTTPS utgående), per-instans ServiceAccount uten automatisk token-montering, PodDisruptionBudget, liveness-, readiness- og startup-prober, autogenerert gateway-autentiseringstoken, og 5-minutters avviksavstemming.
Neste trinn
- Bla gjennom den fullstendige API-referansen for hvert CRD-felt
- Les distribusjonsguidene for EKS, GKE, AKS og Kind
- Sett opp modell-fallback-kjeder på tvers av flere AI-leverandører
- Konfigurer External Secrets for Vault, AWS, GCP eller Azure
Hvis du støter på problemer eller har tilbakemeldinger, åpne et issue på GitHub. Pull requests er også velkomne.
Hvis du ikke vil administrere Kubernetes selv, håndterer OpenClaw.rocks alt dette for deg. Velg en plan, koble til en kanal, og agenten din er live på sekunder.