Ako nasadiť OpenClaw na Kubernetes
Bezpečnostní výskumníci našli viac ako 135 000 inštancií OpenClaw úplne vystavených na internete. Mnohé z nich boli zraniteľné voči vzdialenému spusteniu kódu. Bezpečnostná kríza OpenClaw je reálna: kritické CVE, škodlivé skilly a zásadný problém s tým, ako väčšina nasadení rieši autentifikáciu. Spustiť OpenClaw na VPS pomocou docker run je jednoduché. Prevádzkovať ho bezpečne je úplne iný problém.
Kubernetes tento problém rieši. Získate sieťovú izoláciu, limity prostriedkov, automatické reštarty a bezpečnostné nastavenia, ktorých ručná konfigurácia by trvala hodiny. A s operátorom Kubernetes pre OpenClaw to všetko získate z jediného súboru YAML.
Tento návod vás prevedie od nuly k produkčne pripravenému agentovi OpenClaw na Kubernetes. Každý blok YAML je pripravený na skopírovanie a vloženie.
Prečo operátor
Prevádzkovanie OpenClaw na Kubernetes je viac než Deployment a Service. Potrebujete sieťovú izoláciu, správu Secretov, perzistentné úložisko, sledovanie zdravia, rollouty konfigurácie a voliteľne automatizáciu prehliadača. Správne to všetko prepojiť ručne je zdĺhavé a náchylné na chyby.
Operátor Kubernetes kóduje tieto požiadavky do jediného Custom Resource. Deklarujete, čo chcete, a operátor to priebežne zlaďuje so správnymi objektmi Kubernetes. To vám dáva:
- Bezpečnosť v predvolenom stave. Každý agent beží ako UID 1000, všetky linuxové capabilities odstránené, Seccomp povolený, koreňový súborový systém iba na čítanie a predvolená deny NetworkPolicy povoľujúca iba DNS a HTTPS egress. Bez ručného hardeningu.
- Automatické aktualizácie s rollbackom. Operátor sa dotazuje OCI registra na nové verzie, zálohuje workspace, nasadí aktualizáciu a automaticky vykoná rollback, ak nový pod neprejde health checkmi.
- Rollouty konfigurácie. Zmeňte
spec.config.rawa operátor zistí zmenu hashu obsahu, čím spustí postupnú aktualizáciu. To isté platí pre rotáciu secretov. - Zálohovanie a obnova. Automatické zálohovanie workspace na S3-kompatibilné úložisko pri zmazaní inštancie. Obnova do novej inštancie z ľubovoľného snapshotu.
- Autentifikácia gateway. Automaticky generuje token gateway pre každú inštanciu. Žiadne ručné párovanie, žiadny mDNS (ktorý v Kubernetes aj tak nefunguje).
- Detekcia driftu. Každých 5 minút operátor kontroluje, či každý spravovaný prostriedok zodpovedá požadovanému stavu. Ak niekto ručne upraví NetworkPolicy alebo zmaže PDB, bude to opravené.
Predpoklady
Potrebujete:
- Cluster Kubernetes (1.28+). Akákoľvek konformná distribúcia funguje: EKS, GKE, AKS, k3s alebo lokálny Kind cluster na testovanie.
kubectlnakonfigurovaný pre váš cluster.- Nainštalovaný
helmv3. - API kľúč od vášho poskytovateľa AI (Anthropic, OpenAI alebo akýkoľvek OpenAI-kompatibilný endpoint).
Krok 1: Inštalácia operátora
Operátor sa dodáva ako OCI Helm chart. Jeden príkaz ho nainštaluje:
helm install openclaw-operator \
oci://ghcr.io/openclaw-rocks/charts/openclaw-operator \
--namespace openclaw-operator-system \
--create-namespace
Overte, že beží:
kubectl get pods -n openclaw-operator-system
Mali by ste vidieť pod operátora v stave Running. Operátor tiež nainštaluje validačný webhook, ktorý zabráni nebezpečným konfiguráciám (ako je beh pod rootom).
Krok 2: Vytvorenie Secretu s API kľúčom
Uložte API kľúč svojho poskytovateľa AI do Kubernetes Secretu. Operátor ho injektuje do kontajnera agenta:
kubectl create namespace openclaw
kubectl create secret generic openclaw-api-keys \
--namespace openclaw \
--from-literal=ANTHROPIC_API_KEY=sk-ant-your-key-here
Pre OpenAI alebo iných poskytovateľov použite príslušný názov premennej prostredia (OPENAI_API_KEY, OPENROUTER_API_KEY a pod.). Do jedného Secretu môžete zahrnúť viacerých poskytovateľov.
Tip: Pre produkčné prostredie zvážte použitie External Secrets Operator na synchronizáciu kľúčov z AWS Secrets Manager, HashiCorp Vault, GCP Secret Manager alebo Azure Key Vault. Dokumentácia operátora obsahuje podrobné príklady.
Krok 3: Nasadenie prvého agenta
Vytvorte súbor s názvom 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
Aplikujte ho:
kubectl apply -f my-agent.yaml
Tento jediný prostriedok vytvorí StatefulSet, Service, ServiceAccount, Role, RoleBinding, ConfigMap, PVC, PDB, NetworkPolicy a Secret s tokenom gateway. Operátor všetko zladí.
Krok 4: Overenie behu
Sledujte spúšťanie inštancie:
kubectl get openclawinstances -n openclaw -w
NAME PHASE READY AGE
my-agent Provisioning False 10s
my-agent Running True 45s
Keď fáza zobrazí Running a Ready je True, váš agent je aktívny. Skontrolujte logy:
kubectl logs -n openclaw statefulset/my-agent -f
Pre komunikáciu s agentom vykonajte port-forward gateway:
kubectl port-forward -n openclaw svc/my-agent 18789:18789
Potom otvorte http://localhost:18789 vo svojom prehliadači.
Krok 5: Pripojenie kanálu
OpenClaw podporuje Telegram, Discord, WhatsApp, Signal a ďalšie komunikačné kanály. Každý kanál sa konfiguruje cez premenné prostredia. Pridajte príslušný token do svojho Secretu:
kubectl create secret generic openclaw-channel-keys \
--namespace openclaw \
--from-literal=TELEGRAM_BOT_TOKEN=your-bot-token-here
Potom naň odkážte v inštancii:
spec:
envFrom:
- secretRef:
name: openclaw-api-keys
- secretRef:
name: openclaw-channel-keys
OpenClaw automaticky deteguje token a aktivuje kanál. Žiadna ďalšia konfigurácia nie je potrebná.
Tým sú pokryté základy. Váš agent beží, je zabezpečený a dostupný. Zvyšok tohto návodu pokrýva voliteľné funkcie, ktoré môžete aktivovať, keď budete pripravení.
Automatizácia prehliadača
OpenClaw vie prehliadať web, robiť snímky obrazovky a interagovať so stránkami. Operátor z toho robí jednoriadkový doplnok. Spúšťa zabezpečený Chromium sidecar v tom istom pode, pripojený cez localhost:
spec:
chromium:
enabled: true
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: 1000m
memory: 2Gi
Operátor automaticky injektuje premennú prostredia CHROMIUM_URL do hlavného kontajnera. Sidecar beží ako UID 1001 s koreňovým súborovým systémom iba na čítanie a vlastným bezpečnostným kontextom.
Skilly a runtime závislosti
Skilly OpenClaw z ClawHub sa dajú inštalovať deklaratívne. Operátor spúšťa init kontajner, ktorý stiahne každý skill pred spustením agenta:
spec:
skills:
- "@anthropic/mcp-server-fetch"
- "@anthropic/mcp-server-filesystem"
Ak vaše skilly alebo MCP servery potrebujú pnpm alebo Python, povoľte vstavané init kontajnery pre runtime závislosti:
spec:
runtimeDeps:
pnpm: true # Installs pnpm via corepack
python: true # Installs Python 3.12 + uv
Init kontajnery inštalujú tieto nástroje na dátový PVC, takže prežijú reštarty bez nafukovania image kontajnera.
Automatické aktualizácie
OpenClaw často vydáva nové verzie. Operátor ich môže automaticky sledovať, zálohovať pred aktualizáciou a vrátiť sa späť, ak sa niečo pokazí:
spec:
autoUpdate:
enabled: true
checkInterval: "12h"
backupBeforeUpdate: true
rollbackOnFailure: true
healthCheckTimeout: "10m"
Keď sa v registri objaví nová verzia, operátor:
- Vytvorí zálohu workspace PVC na S3-kompatibilné úložisko
- Aktualizuje image tag na StatefulSete
- Čaká až do
healthCheckTimeout, kým pod neprejde kontrolami dostupnosti - Ak sa pod nestane ready, obnoví predchádzajúci image tag a zálohu
Po 3 po sebe idúcich neúspešných rollbackoch operátor pozastaví automatické aktualizácie a nastaví podmienku na vyšetrenie.
Poznámka: Automatická aktualizácia nemá účinok na image pripnuté digestom (
spec.image.digest). Ak pripínate digestom, aktualizácie riadite ručne.
Produkčný hardening
Operátor je v predvolenom stave bezpečný. Tu sú ďalšie nastavenia pre produkčné nasadenia.
Monitorovanie s Prometheus
Povoľte ServiceMonitor na zber metrík operátora a inštancií:
spec:
observability:
metrics:
enabled: true
serviceMonitor:
enabled: true
interval: "30s"
Operátor vystavuje openclaw_reconcile_total, openclaw_reconcile_duration_seconds, openclaw_instance_phase a počítadlá automatických aktualizácií.
Plánovanie na vyhradené uzly
Ak prevádzkujete zmiešaný cluster, použite nodeSelector a tolerations na pripnutie agentov na vyhradené uzly:
spec:
availability:
nodeSelector:
openclaw.rocks/nodepool: openclaw
tolerations:
- key: openclaw.rocks/dedicated
value: openclaw
effect: NoSchedule
Pridanie vlastných pravidiel egress
Predvolená NetworkPolicy povoľuje iba DNS (port 53) a HTTPS (port 443). Ak váš agent potrebuje dosiahnuť na iné služby (databázu, frontu správ, interné API), pridajte pravidlá egress:
spec:
security:
networkPolicy:
additionalEgress:
- to:
- ipBlock:
cidr: 10.0.0.0/8
ports:
- port: 5432
protocol: TCP
Identita poskytovateľa cloudu
Pre AWS IRSA alebo GCP Workload Identity anotujte spravovaný ServiceAccount:
spec:
security:
rbac:
serviceAccountAnnotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::123456789:role/openclaw"
Firemné proxy a privátne CA
Ak váš cluster používa TLS-interceptujúci proxy, injektujte CA balíček:
spec:
security:
caBundle:
configMapName: corporate-ca-bundle
key: ca-bundle.crt
Operátor pripojí CA balíček do všetkých kontajnerov a automaticky nastaví NODE_EXTRA_CA_CERTS.
GitOps
CRD OpenClawInstance je obyčajný YAML súbor. To znamená, že sa priamo hodí do GitOps workflow. Uložte manifesty agentov do git repozitára a nechajte ArgoCD alebo Flux synchronizovať ich s clusterom.
Typická štruktúra repozitára:
gitops/
└── agents/
├── kustomization.yaml
├── namespace.yaml
├── agent-a.yaml
└── agent-b.yaml
Každá zmena prechádza pull requestom. Váš tím kontroluje diff. Merge do main a ArgoCD to aplikuje. Žiadne kubectl apply z notebookov, žiadny konfiguračný drift, kompletný audit trail.
Hashovanie konfigurácie operátora to robí obzvlášť plynulým. Keď ArgoCD synchronizuje zmenenú spec.config.raw, operátor zistí zmenu hashu obsahu a automaticky spustí postupnú aktualizáciu. To isté platí pre rotáciu secretov: operátor sleduje odkazované Secrety a reštartuje pody, keď sa zmenia.
Zálohovanie a obnova
Operátor podporuje S3-kompatibilné zálohy. Keď zmažete inštanciu, operátor automaticky vytvorí zálohu workspace PVC pred zmazaním.
Pre obnovu agenta zo zálohy do novej inštancie:
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
Operátor stiahne snapshot, rozbalí ho do PVC a spustí agenta so všetkými predchádzajúcimi dátami workspace, skillmi a históriou konverzácií.
Lokálna inferencia s Ollama
Ak chcete, aby agenti používali lokálne modely (kvôli súkromiu, latencii alebo nákladom), operátor ponúka prvotriednú podporu Ollama. Nie je potrebné ručne konfigurovať sidecar: spec.ollama rieši kontajner, predsťahovanie modelov, úložisko a pridelenie GPU:
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
Pri povolení operátor:
- Pridá Ollama sidecar kontajner do podu
- Spustí init kontajner, ktorý vopred stiahne uvedené modely pred spustením agenta
- Injektuje
OLLAMA_HOST=http://localhost:11434do hlavného kontajnera - Pridelí požadovaný NVIDIA GPU cez limity prostriedkov
nvidia.com/gpu
V predvolenom stave sú modely uložené v emptyDir zväzku s konfigurovateľným limitom veľkosti. Pre perzistentné úložisko modelov medzi reštartmi (aby sa modely nesťahovali zakaždým znova) použite existujúci PVC:
spec:
ollama:
enabled: true
models: ["llama3.2"]
storage:
existingClaim: ollama-models-pvc
Integrácia Tailscale
Sprístupnite svojho agenta vo svojom tailnete bez Ingress, load balancerov alebo verejných IP. Pole spec.tailscale operátora rieši injekciu autentifikačného kľúča, obohatenie konfigurácie a pravidlá NetworkPolicy:
spec:
tailscale:
enabled: true
mode: serve # or "funnel" for public internet access
authKeySecretRef:
name: tailscale-authkey
hostname: my-agent
Vytvorte Secret s autentifikačným kľúčom s dočasným, znovupoužiteľným kľúčom z administračnej konzoly Tailscale:
kubectl create secret generic tailscale-authkey \
--namespace openclaw \
--from-literal=authkey=tskey-auth-...
V režime serve (predvolený) môžu agenta dosiahnuť iba členovia vášho tailnetu. V režime funnel ho Tailscale sprístupní na verejnom internete s automatickým HTTPS.
Operátor automaticky:
- Injektuje premenné prostredia
TS_AUTHKEYaTS_HOSTNAME - Zlúči
gateway.tailscale.modeagateway.tailscale.resetOnExitdo konfigurácie OpenClaw - Pridá pravidlá egress pre STUN a WireGuard do NetworkPolicy
Pre prihlásenie SSO bez hesla pre členov tailnetu povoľte authSSO:
spec:
tailscale:
enabled: true
mode: serve
authKeySecretRef:
name: tailscale-authkey
authSSO: true
Toto nastaví gateway.auth.allowTailscale=true v konfigurácii OpenClaw, čo umožní členom tailnetu pristupovať k agentovi bez samostatného tokenu gateway.
Vlastné sidecary a init kontajnery
Pre použitie nad rámec vstavanej podpory Ollama a Tailscale operátor prijíma ľubovoľné sidecary a init kontajnery. Spustite Cloud SQL Proxy pre prístup k databáze, forwarder logov alebo akéhokoľvek iného pomocníka vedľa svojho agenta:
spec:
sidecars:
- name: cloudsql-proxy
image: gcr.io/cloud-sql-connectors/cloud-sql-proxy:2
args: ["--structured-logs", "project:region:instance"]
resources:
requests:
cpu: 100m
memory: 128Mi
Vlastné init kontajnery bežia po vlastnom init pipeline operátora (seedovanie konfigurácie, pnpm, Python, skilly):
spec:
initContainers:
- name: fetch-data
image: curlimages/curl:8.5.0
command: ["sh", "-c", "curl -o /data/dataset.json https://..."]
volumeMounts:
- name: data
mountPath: /data
Režim zlučovania konfigurácie
V predvolenom stave operátor prepíše konfiguračný súbor pri každom reštarte podu. Ak váš agent za behu modifikuje vlastnú konfiguráciu (cez skilly alebo sebamodifikáciu), nastavte mergeMode: merge pre hlboké zlúčenie konfigurácie operátora s existujúcou konfiguráciou PVC:
spec:
config:
mergeMode: merge
raw:
agents:
defaults:
model:
primary: "anthropic/claude-sonnet-4-20250514"
V režime zlučovania majú kľúče zadané operátorom prednosť, ale kľúče pridané agentom samotným prežijú reštarty.
Kompletný príklad
Tu je produkčne pripravený manifest kombinujúci všetko z tohto návodu:
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
# Remove or adjust these if you don't use dedicated nodes
availability:
nodeSelector:
openclaw.rocks/nodepool: openclaw
tolerations:
- key: openclaw.rocks/dedicated
value: openclaw
effect: NoSchedule
Aplikujte ho a máte zabezpečeného, automaticky aktualizovaného AI agenta s prehliadačom, lokálnou inferenciou, prístupom cez tailnet, monitorovaním, zálohovaním a sieťovou izoláciou. Jeden kubectl apply.
Čo získate ihneď
Bez dotyku jediného bezpečnostného nastavenia každý agent nasadený operátorom obsahuje:
- Beh mimo root (UID 1000)
- Koreňový súborový systém iba na čítanie
- Všetky linuxové capabilities odstránené
- Seccomp RuntimeDefault profil
- Predvolená deny NetworkPolicy (iba DNS + HTTPS egress)
- ServiceAccount na inštanciu bez automatického pripojenia tokenu
- PodDisruptionBudget
- Sondy liveness, readiness a startup
- Automaticky generovaný autentifikačný token gateway
- 5-minútová rekoncilácia driftu
Validačný webhook blokuje pokusy o beh pod rootom a varuje pred vypnutými NetworkPolicy, chýbajúcim TLS na Ingress a nedetegovanými kľúčmi poskytovateľa AI.
Ďalšie kroky
- Prezrite si kompletnú API referenciu pre každé pole CRD
- Prečítajte si návody na nasadenie pre EKS, GKE, AKS a Kind
- Nastavte reťazce záložných modelov cez viacerých poskytovateľov AI
- Nakonfigurujte External Secrets pre Vault, AWS, GCP alebo Azure
Ak narazíte na problémy alebo máte spätnú väzbu, otvorte issue na GitHube. PR sú tiež vítané.
Ak nechcete Kubernetes prevádzkovať sami, OpenClaw.rocks sa o všetko postará za vás. Vyberte plán, pripojte kanál a váš agent je aktívny behom sekúnd.