Hvernig á að setja upp OpenClaw á Kubernetes
Öryggisrannsakendur hafa fundið yfir 135.000 OpenClaw tilvik algjörlega óvarin á netinu. Mörg þeirra voru viðkvæm fyrir fjarkeyrslu kóða. OpenClaw öryggisvandamálið er raunverulegt: alvarleg CVE, illgjarn skills og grundvallarvandamál í því hvernig flestar uppsetningar meðhöndla auðkenningu. Að keyra OpenClaw á VPS með docker run er auðvelt. Að keyra það örugglega er allt annað mál.
Kubernetes leysir þetta vandamál. Þú færð neteinangrun, auðlindatakmörk, sjálfvirka endurræsingu og öryggissjálfgildi sem myndi taka klukkutíma að stilla handvirkt. Og með OpenClaw Kubernetes Operator færðu allt þetta úr einni YAML skrá.
Þessi leiðarvísir tekur þig frá núlli að framleiðslutilbúnum OpenClaw umboðsmanni á Kubernetes. Sérhver YAML blokk er tilbúin til afrita og líma.
Af hverju operator
Að keyra OpenClaw á Kubernetes er meira en Deployment og Service. Þú þarft neteinangrun, leyndarmálsstjórnun, varanlegan geymslu, heilsufarsvöktun, stillingaútgáfur og valfrjálst vafrasjálfvirkni. Að tengja allt þetta saman rétt handvirkt er leiðinlegt og viðkvæmt fyrir villum.
Kubernetes operator umritar þessar kröfur í eina sérsniðna auðlind. Þú lýsir yfir því sem þú vilt og operator samræmir það stöðugt við réttu Kubernetes hlutina. Þetta gefur þér:
- Öryggi frá upphafi. Sérhver umboðsmaður keyrir sem UID 1000, öllum Linux capabilities er sleppt, seccomp er virkt, skrifvarið root skráarkerfi og sjálfgefin-neita NetworkPolicy sem leyfir aðeins DNS og HTTPS egress. Engin handvirk herðing þarf.
- Sjálfvirkar uppfærslur með afturköllun. Operator fylgist með OCI registry eftir nýjum útgáfum, tekur öryggisafrit af workspace, setur uppfærsluna og kallar sjálfkrafa til baka ef nýi podinn stenst ekki heilsufarspróf.
- Stillingaútgáfur. Breyttu
spec.config.rawog operator greinir að efnishashið breyttist og kallar á rolling update. Sama gildir um leyndarmálaskipti. - Öryggisafritun og endurheimt. Sjálfvirk workspace öryggisafritun á S3-samhæfan geymslu við eyðingu tilviks. Endurheimt í nýtt tilvik úr hvaða skyndimynd sem er.
- Gateway auðkenning. Býr sjálfkrafa til gateway tóka per tilvik. Engin handvirk pörun, ekkert mDNS (sem virkar ekki í Kubernetes hvort eð er).
- Fráviksgreining. Á 5 mínútna fresti athugar operator að sérhver stýrð auðlind samsvari æskilegu ástandi. Ef einhver breytir NetworkPolicy handvirkt eða eyðir PDB er það endurstillt.
Forsendur
Þú þarft:
- Kubernetes klasa (1.28+). Hvaða samhæfð dreifing sem er virkar: EKS, GKE, AKS, k3s eða staðbundinn Kind klasi til prófunar.
kubectlstillt til að tala við klasann þinn.helmv3 uppsett.- API lykil fyrir AI þjónustuaðila (Anthropic, OpenAI eða hvaða OpenAI-samhæft endapunkt sem er).
Skref 1: Setja upp operator
Operator er sendur sem OCI Helm chart. Ein skipun setur hann upp:
helm install openclaw-operator \
oci://ghcr.io/openclaw-rocks/charts/openclaw-operator \
--namespace openclaw-operator-system \
--create-namespace
Staðfestu að hann keyri:
kubectl get pods -n openclaw-operator-system
Þú ættir að sjá operator podinn í Running stöðu. Operator setur einnig upp validating webhook sem kemur í veg fyrir óöruggar stillingar (eins og keyrslu sem root).
Skref 2: Búa til API lykil leyndarmál
Geymdu API lykil AI þjónustuaðilans í Kubernetes Secret. Operator mun setja hann inn í umboðsmannsgáminn:
kubectl create namespace openclaw
kubectl create secret generic openclaw-api-keys \
--namespace openclaw \
--from-literal=ANTHROPIC_API_KEY=sk-ant-your-key-here
Fyrir OpenAI eða aðra þjónustuaðila, notaðu viðeigandi umhverfisbreytuheiti (OPENAI_API_KEY, OPENROUTER_API_KEY o.s.frv.). Þú getur haft marga þjónustuaðila í sama Secret.
Ábending: Fyrir framleiðslu, íhugaðu að nota External Secrets Operator til að samstilla lykla frá AWS Secrets Manager, HashiCorp Vault, GCP Secret Manager eða Azure Key Vault. Skjöl operator hafa ítarleg dæmi.
Skref 3: Setja upp fyrsta umboðsmanninn
Búðu til skrá sem heitir 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
Settu hana í notkun:
kubectl apply -f my-agent.yaml
Þessi eina auðlind býr til StatefulSet, Service, ServiceAccount, Role, RoleBinding, ConfigMap, PVC, PDB, NetworkPolicy og gateway tóka Secret. Operator samræmir allt.
Skref 4: Staðfesta að það keyri
Fylgstu með tilvikinu þegar það ræsist:
kubectl get openclawinstances -n openclaw -w
NAME PHASE READY AGE
my-agent Provisioning False 10s
my-agent Running True 45s
Þegar fasinn sýnir Running og Ready er True er umboðsmaðurinn þinn virkur. Skoðaðu logana:
kubectl logs -n openclaw statefulset/my-agent -f
Til að eiga samskipti við umboðsmanninn, framsendu gateway:
kubectl port-forward -n openclaw svc/my-agent 18789:18789
Opnaðu síðan http://localhost:18789 í vafranum.
Skref 5: Tengja rás
OpenClaw styður Telegram, Discord, WhatsApp, Signal og fleiri skilaboðarásir. Sérhver rás er stillt í gegnum umhverfisbreytur. Bættu viðeigandi tóka við Secret:
kubectl create secret generic openclaw-channel-keys \
--namespace openclaw \
--from-literal=TELEGRAM_BOT_TOKEN=your-bot-token-here
Vísaðu síðan í hann í tilvikinu þínu:
spec:
envFrom:
- secretRef:
name: openclaw-api-keys
- secretRef:
name: openclaw-channel-keys
OpenClaw greinir tókann sjálfkrafa og virkjar rásina. Engin viðbótarstilling þarf.
Þetta nær yfir grunninn. Umboðsmaðurinn þinn keyrir, er öruggur og aðgengilegur. Restin af þessum leiðarvísi fjallar um valfrjálsa eiginleika sem þú getur virkjað þegar þú ert tilbúin(n).
Vafrasjálfvirkni
OpenClaw getur vafrað á vefnum, tekið skjámyndir og haft samskipti við vefsíður. Operator gerir þetta að einnar línu viðbót. Hann keyrir hertan Chromium sidecar í sama podi, tengdan yfir localhost:
spec:
chromium:
enabled: true
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: 1000m
memory: 2Gi
Operator setur sjálfkrafa CHROMIUM_URL umhverfisbreytu inn í aðalgáminn. Sidecar keyrir sem UID 1001 með skriflæstu root skráarkerfi og eigin öryggissamhengi.
Skills og keyrslutímaháðir
OpenClaw skills frá ClawHub er hægt að setja upp deklaratívt. Operator keyrir init container sem sækir hvern skill áður en umboðsmaðurinn ræsist:
spec:
skills:
- "@anthropic/mcp-server-fetch"
- "@anthropic/mcp-server-filesystem"
Ef skills eða MCP þjónar þurfa pnpm eða Python, virkjaðu innbyggðu keyrslutímaháða init gámana:
spec:
runtimeDeps:
pnpm: true # Installs pnpm via corepack
python: true # Installs Python 3.12 + uv
Init gámarnir setja þessi verkfæri upp á data PVC, þannig að þau vara yfir endurræsingar án þess að þenja gámamyndina.
Sjálfvirkar uppfærslur
OpenClaw gefur oft út nýjar útgáfur. Operator getur fylgst sjálfkrafa með þeim, tekið öryggisafrit áður en uppfært er og afturkallað ef eitthvað fer úrskeiðis:
spec:
autoUpdate:
enabled: true
checkInterval: "12h"
backupBeforeUpdate: true
rollbackOnFailure: true
healthCheckTimeout: "10m"
Þegar ný útgáfa birtist í registry gerir operator eftirfarandi:
- Tekur öryggisafrit af workspace PVC á S3-samhæfan geymslu
- Uppfærir image tag á StatefulSet
- Bíður í allt að
healthCheckTimeouteftir að podinn standist readiness prófanir - Ef podinn nær ekki ready stöðu, endurheimtir fyrra image tag og öryggisafritið
Eftir 3 samfelldar misheppnaðar afturkallanir stöðvar operator sjálfvirka uppfærslu og setur condition svo þú getir rannsakað.
Athugasemd: Sjálfvirk uppfærsla er aðgerðarlaus fyrir digest-festar myndir (
spec.image.digest). Ef þú festir eftir digest stjórnarðu uppfærslum handvirkt.
Framleiðsluherðing
Operator er sendur öruggur frá upphafi. Hér eru viðbótarstillingarnar fyrir framleiðsluuppsetningar.
Vöktun með Prometheus
Virkjaðu ServiceMonitor til að safna operator og tilviksmælingunum:
spec:
observability:
metrics:
enabled: true
serviceMonitor:
enabled: true
interval: "30s"
Operator birtir openclaw_reconcile_total, openclaw_reconcile_duration_seconds, openclaw_instance_phase og sjálfvirkrar uppfærslu teljara.
Tímasetja á sérstaka nóða
Ef þú keyrir blandaðan klasa, notaðu nodeSelector og tolerations til að festa umboðsmenn við sérstaka nóða:
spec:
availability:
nodeSelector:
openclaw.rocks/nodepool: openclaw
tolerations:
- key: openclaw.rocks/dedicated
value: openclaw
effect: NoSchedule
Bæta við sérsniðnum egress reglum
Sjálfgefna NetworkPolicy leyfir aðeins DNS (port 53) og HTTPS (port 443). Ef umboðsmaðurinn þinn þarf að ná til annarra þjónusta (gagnagrunnur, skilaboðaröð, innri API), bættu við egress reglum:
spec:
security:
networkPolicy:
additionalEgress:
- to:
- ipBlock:
cidr: 10.0.0.0/8
ports:
- port: 5432
protocol: TCP
Auðkenni skýjaþjónustu
Fyrir AWS IRSA eða GCP Workload Identity, merktu stýrt ServiceAccount:
spec:
security:
rbac:
serviceAccountAnnotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::123456789:role/openclaw"
Fyrirtækjaproxýar og einka CA
Ef klasinn þinn notar TLS-hlustandi proxy, settu inn CA bundle:
spec:
security:
caBundle:
configMapName: corporate-ca-bundle
key: ca-bundle.crt
Operator tengir CA bundle inn í alla gáma og setur NODE_EXTRA_CA_CERTS sjálfkrafa.
GitOps
OpenClawInstance CRD er venjuleg YAML skrá. Það þýðir að hún passar beint inn í GitOps vinnuflæði. Geymdu umboðsmannsskrárnar í git repo og láttu ArgoCD eða Flux samstilla þær við klasann þinn.
Dæmigerð repo uppbygging:
gitops/
└── agents/
├── kustomization.yaml
├── namespace.yaml
├── agent-a.yaml
└── agent-b.yaml
Sérhver breyting fer í gegnum pull request. Teymið þitt skoðar mismuninn. Sameina í main og ArgoCD beitir henni. Engin kubectl apply frá fartölvum, engin stillingarvikun, fullkominn endurskoðunarferill.
Config hashing operator gerir þetta sérstaklega þægilegt. Þegar ArgoCD samstillir breytta spec.config.raw, greinir operator breytt efnishash og kallar sjálfkrafa á rolling update. Sama gildir um leyndarmálaskipti: operator fylgist með tilvísuðum Secrets og endurræsir pods þegar þau breytast.
Öryggisafritun og endurheimt
Operator styður S3-samhæf öryggisafrit. Þegar þú eyðir tilviki tekur operator sjálfkrafa öryggisafrit af workspace PVC áður en það er rift.
Til að endurheimta umboðsmann úr öryggisafriti í nýtt tilvik:
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
Operator sækir skyndimyndina, afpakkar hana inn í PVC og ræsir umboðsmanninn með öllum fyrri workspace gögnum, skills og samtalssögu óhrörðum.
Staðbundin ályktun með Ollama
Ef þú vilt að umboðsmenn noti staðbundin módel (fyrir friðhelgi, seinlega eða kostnað), hefur operator fyrsta flokks Ollama stuðning. Engin þörf á að stilla sidecar handvirkt: spec.ollama sér um gáminn, fyrirfram niðurhal módela, geymslu og GPU úthlutun:
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
Þegar virkjað, gerir operator eftirfarandi:
- Bætir Ollama sidecar gámi við podinn
- Keyrir init container sem sækir upptalin módel áður en umboðsmaðurinn ræsist
- Setur
OLLAMA_HOST=http://localhost:11434inn í aðalgáminn - Úthlutar umbeðinni NVIDIA GPU gegnum
nvidia.com/gpuauðlindatakmörk
Sjálfgefið eru módel geymd í emptyDir volume með stillanlegum stærðartakmörkum. Fyrir varanlega módelssgeymslu yfir endurræsingar (svo módel séu ekki sótt aftur í hvert skipti), notaðu núverandi PVC:
spec:
ollama:
enabled: true
models: ["llama3.2"]
storage:
existingClaim: ollama-models-pvc
Tailscale samþætting
Gerðu umboðsmanninn þinn aðgengilegan á tailnet án Ingress, load balancers eða opinberra IP tölur. spec.tailscale reitur operator sér um auth key injection, stillingaauðgun og NetworkPolicy reglur:
spec:
tailscale:
enabled: true
mode: serve # or "funnel" for public internet access
authKeySecretRef:
name: tailscale-authkey
hostname: my-agent
Búðu til auth key Secret með ephemeral, endurnýtanlegum lykli frá Tailscale stjórnborði:
kubectl create secret generic tailscale-authkey \
--namespace openclaw \
--from-literal=authkey=tskey-auth-...
Í serve ham (sjálfgefið) geta aðeins meðlimir tailnet þíns náð til umboðsmannsins. Í funnel ham birtir Tailscale hann á almennu netinu með sjálfvirku HTTPS.
Operator gerir sjálfkrafa:
- Setur
TS_AUTHKEYogTS_HOSTNAMEumhverfisbreytur inn - Sameinar
gateway.tailscale.modeoggateway.tailscale.resetOnExitinn í OpenClaw stillinguna - Bætir STUN og WireGuard egress reglum við NetworkPolicy
Fyrir lykilorðalaust SSO innskráningu tailnet meðlima, virkjaðu authSSO:
spec:
tailscale:
enabled: true
mode: serve
authKeySecretRef:
name: tailscale-authkey
authSSO: true
Þetta setur gateway.auth.allowTailscale=true í OpenClaw stillingunni, svo tailnet meðlimir geta nálgast umboðsmanninn án sérstaks gateway tóka.
Sérsniðnir sidecars og init containers
Fyrir notkunartilvik umfram innbyggðan Ollama og Tailscale stuðning tekur operator við handahófskenndra sidecars og init containers. Keyrðu Cloud SQL Proxy fyrir gagnagrunnstengingu, logsenditæki eða hvaða annan hjálpara sem er samhliða umboðsmanni þínum:
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
Sérsniðnir init containers keyra eftir eigin init rás operator (config seeding, pnpm, Python, skills):
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
Config samrunaham
Sjálfgefið yfirskrifar operator stillingaskrána við hverja endurræsingu pods. Ef umboðsmaðurinn þinn breytir eigin stillingum á keyrslutíma (í gegnum skills eða sjálfsbreytingar), settu mergeMode: merge til að djúpsamruna operator stillingar við núverandi PVC stillingar:
spec:
config:
mergeMode: merge
raw:
agents:
defaults:
model:
primary: "anthropic/claude-sonnet-4-20250514"
Í samrunaham hafa lyklar frá operator forgang, en lyklar sem umboðsmaðurinn bætti sjálfur við lifa af endurræsingar.
Fullt dæmi
Hér er framleiðslutilbúið manifest sem sameinar allt úr þessum leiðarvísi:
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
Settu það í notkun og þú hefur hertan, sjálfvirkt uppfærðan, vafrarhæfan AI umboðsmann með staðbundinni ályktun, tailnet aðgangi, vöktun, öryggisafritum og neteinangrun. Eitt kubectl apply.
Hvað þú færð strax
Án þess að snerta eina einustu öryggisstillingu er sérhver umboðsmaður frá operator sendur með:
- Ekki-root keyrslu (UID 1000)
- Skrifvarið root skráarkerfi
- Öllum Linux capabilities sleppt
- Seccomp RuntimeDefault profile
- Sjálfgefin-neita NetworkPolicy (aðeins DNS + HTTPS egress)
- ServiceAccount per tilvik án sjálfvirks token tengingar
- PodDisruptionBudget
- Liveness, readiness og startup probes
- Sjálfvirkt búinn til gateway auðkenningartóki
- 5 mínútna frávikssamræming
Validating webhook hindrar tilraunir til keyrslu sem root og varar við óvirkum NetworkPolicies, vantar TLS á Ingress og ógreindum AI þjónustuaðilalyklum.
Næstu skref
- Skoðaðu fulla API viðmiðunina fyrir hvern CRD reit
- Lestu uppsetningarleiðbeiningarnar fyrir EKS, GKE, AKS og Kind
- Settu upp model fallback keðjur yfir marga AI þjónustuaðila
- Stilltu External Secrets fyrir Vault, AWS, GCP eða Azure
Ef þú lendir í vandræðum eða hefur athugasemdir, opnaðu issue á GitHub. PRs eru líka velkomin.
Ef þú vilt ekki reka Kubernetes sjálf(ur), sér OpenClaw.rocks um allt þetta fyrir þig. Veldu áætlun, tengdu rás og umboðsmaðurinn þinn er í loftinu á nokkrum sekúndum.