Kuinka ottaa OpenClaw kayttoon Kubernetesissa
Tietoturvatutkijat ovat loytaneet yli 135 000 OpenClaw-instanssia, jotka ovat taysin suojaamattomina internetissa. Monet niista olivat haavoittuvia etakoodin suoritukselle. OpenClaw-turvallisuuskriisi on todellinen: kriittiset CVE:t, haitalliset taidot ja perustavanlaatuinen ongelma siina, miten useimmat kayttoonotot kasittelevat todennusta. OpenClaw:n ajaminen VPS:lla komennolla docker run on helppoa. Sen turvallinen ajaminen on aivan eri ongelma.
Kubernetes ratkaisee taman ongelman. Saat verkkoeristaysten, resurssirajoitukset, automatisoidut uudelleenkaynistykset ja turvaoletukset, joiden kasittely kasin veisi tunteja. OpenClaw Kubernetes Operator antaa sinulle kaiken taman yhdesta YAML-tiedostosta.
Tama opas vie sinut nollasta tuotantovalmiiseen OpenClaw-agenttiin Kubernetesissa. Jokainen YAML-lohko on valmis kopioitavaksi ja liitettavaksi.
Miksi operaattori
OpenClaw:n ajaminen Kubernetesissa on enemman kuin Deployment ja Service. Tarvitset verkkoeristaysten, salaisuuksien hallinnan, pysyvan tallennustilan, terveysvalvonnan, konfiguraation kayttoonottoa ja valinnaisesti selaimen automaation. Kaiken taman oikein yhdistaminen kasin on tyolasta ja virhealtista.
Kubernetes-operaattori koodaa nama vaatimukset yhteen mukautettuun resurssiin. Ilmoitat, mita haluat, ja operaattori yhdenmukaistaa sen jatkuvasti oikeaksi Kubernetes-objektien joukoksi. Silla saat:
- Oletusturvallisuuden. Jokainen agentti toimii UID 1000:na, kaikki Linux-kyvyt poistettu, seccomp kaytoessa, vain luku -juuritiedostojarjestelma ja oletuksena estava NetworkPolicy, joka sallii vain DNS- ja HTTPS-ulosmenoliikenteen. Ei kasin koventamista.
- Automaattiset paivitykset palautuksella. Operaattori tarkistaa OCI-rekisterin uusien versioiden varalta, varmuuskopioi tyotilan, ottaa paivityksen kayttoon ja palauttaa automaattisesti, jos uusi pod ei lapaase terveystarkastuksia.
- Konfiguraation kayttoonoton. Muuta
spec.config.rawja operaattori havaitsee sisallon tiivisteen muuttuneen ja kaynnistaa vaiheittaisen paivityksen. Sama salaisuuksien rotaatiolle. - Varmuuskopioinnin ja palautuksen. Automaattinen tyotilan varmuuskopio S3-yhteensopivaan tallennustilaan instanssin poiston yhteydessa. Palautus uuteen instanssiin mistä tahansa tilannekuvasta.
- Yhdyskaytavan todennuksen. Generoi automaattisesti yhdyskaytavatokenin jokaiselle instanssille. Ei kasin yhdistamista, ei mDNS:a (joka ei toimi Kubernetesissa muutenkaan).
- Poikkeaman havaitsemisen. Joka 5. minuutti operaattori tarkistaa, etta jokainen hallinnoitu resurssi vastaa haluttua tilaa. Jos joku manuaalisesti muokkaa NetworkPolicy:a tai poistaa PDB:n, se yhdenmukaistetaan takaisin.
Esivaatimukset
Tarvitset:
- Kubernetes-klusterin (1.28+). Mika tahansa yhteensopiva jakelu toimii: EKS, GKE, AKS, k3s tai paikallinen Kind-klusteri testaukseen.
kubectl:n, joka on maaritetty kommunikoimaan klusterisi kanssa.helmv3 asennettuna.- API-avaimen AI-palveluntarjoajallesi (Anthropic, OpenAI tai mika tahansa OpenAI-yhteensopiva paatepiste).
Vaihe 1: Asenna operaattori
Operaattori toimitetaan OCI Helm chart -muodossa. Yksi komento asentaa sen:
helm install openclaw-operator \
oci://ghcr.io/openclaw-rocks/charts/openclaw-operator \
--namespace openclaw-operator-system \
--create-namespace
Varmista, etta se on kaytossa:
kubectl get pods -n openclaw-operator-system
Sinun pitaisi nahda operaattoripodi tilassa Running. Operaattori asentaa myos validoivan webhookin, joka estaa turvattomat konfiguraatiot (kuten rootina ajamisen).
Vaihe 2: Luo API-avain salaisuutesi
Tallenna AI-palveluntarjoajasi API-avain Kubernetes Secret -resurssiin. Operaattori syottaa sen agenttikonttiin:
kubectl create namespace openclaw
kubectl create secret generic openclaw-api-keys \
--namespace openclaw \
--from-literal=ANTHROPIC_API_KEY=sk-ant-your-key-here
OpenAI:lle tai muille palveluntarjoajille kayta asianmukaista ymparistomuuttujan nimea (OPENAI_API_KEY, OPENROUTER_API_KEY jne.). Voit sisallyttaa useita palveluntarjoajia samaan Secret-resurssiin.
Vinkki: Tuotantoon harkitse External Secrets Operator -kaytyoa avainten synkronointiin AWS Secrets Managerista, HashiCorp Vaultista, GCP Secret Managerista tai Azure Key Vaultista. Operaattorin dokumentaatiossa on yksityiskohtaiset esimerkit.
Vaihe 3: Ota kayttoon ensimmainen agenttisi
Luo tiedosto nimelta 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
Ota se kayttoon:
kubectl apply -f my-agent.yaml
Tama yksi resurssi luo StatefulSet:n, Servicen, ServiceAccountin, Rolen, RoleBindingin, ConfigMapin, PVC:n, PDB:n, NetworkPolicyn ja yhdyskaytavatokenin Secret-resurssin. Operaattori yhdenmukaistaa kaiken.
Vaihe 4: Varmista, etta se toimii
Seuraa instanssin kaynnistymista:
kubectl get openclawinstances -n openclaw -w
NAME PHASE READY AGE
my-agent Provisioning False 10s
my-agent Running True 45s
Kun vaihe nayttaa Running ja Ready on True, agenttisi on aktiivinen. Tarkista lokit:
kubectl logs -n openclaw statefulset/my-agent -f
Ollaksesi vuorovaikutuksessa agenttisi kanssa, ohjaa yhdyskaytavan portti:
kubectl port-forward -n openclaw svc/my-agent 18789:18789
Avaa sitten http://localhost:18789 selaimessasi.
Vaihe 5: Yhdista kanava
OpenClaw tukee Telegramia, Discordia, WhatsAppia, Signalia ja muita viestikanavia. Jokainen kanava maaritetaan ymparistomuuttujien kautta. Lisaa asianmukainen tokeni Secret-resurssiisi:
kubectl create secret generic openclaw-channel-keys \
--namespace openclaw \
--from-literal=TELEGRAM_BOT_TOKEN=your-bot-token-here
Sitten viittaa siihen instanssissasi:
spec:
envFrom:
- secretRef:
name: openclaw-api-keys
- secretRef:
name: openclaw-channel-keys
OpenClaw tunnistaa tokenin automaattisesti ja ottaa kanavan kayttoon. Lisakonfigurointia ei tarvita.
Silla perusteet on katettu. Agenttisi on kaytossa, turvattuna ja saavutettavissa. Loput tasta oppaasta kattavat valinnaiset ominaisuudet, jotka voit ottaa kayttoon kun olet valmis.
Selaimen automaatio
OpenClaw voi selata verkkoa, ottaa kuvakaappauksia ja olla vuorovaikutuksessa sivujen kanssa. Operaattori tekee tasta yhden rivin lisayksen. Se ajaa kovennetun Chromium-sivuvaunu-kontin samassa podissa, yhdistettyna localhost:n kautta:
spec:
chromium:
enabled: true
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: 1000m
memory: 2Gi
Operaattori syottaa automaattisesti CHROMIUM_URL-ymparistomuuttujan paakonttiin. Sivuvaunukontti toimii UID 1001:na vain luku -juuritiedostojarjestelmalla ja omalla turvallisuuskontekstillaan.
Taidot ja ajonaikaiset riippuvuudet
OpenClaw-taitoja ClawHub:sta voi asentaa deklaratiivisesti. Operaattori ajaa alustuskontin, joka noutaa jokaisen taidon ennen agentin kaynnistymista:
spec:
skills:
- "@anthropic/mcp-server-fetch"
- "@anthropic/mcp-server-filesystem"
Jos taitosi tai MCP-palvelimesi tarvitsevat pnpm:a tai Pythonia, ota kayttoon sisaanrakennetut ajonaikaisten riippuvuuksien alustuskontit:
spec:
runtimeDeps:
pnpm: true # Installs pnpm via corepack
python: true # Installs Python 3.12 + uv
Alustuskontit asentavat nama tyokalut data-PVC:lle, joten ne sailyvat uudelleenkaynistysten yli paisuttamatta konttikuvaa.
Automaattiset paivitykset
OpenClaw julkaisee usein uusia versioita. Operaattori voi seurata niita automaattisesti, varmuuskopioida ennen paivitysta ja palauttaa, jos jokin menee pieleen:
spec:
autoUpdate:
enabled: true
checkInterval: "12h"
backupBeforeUpdate: true
rollbackOnFailure: true
healthCheckTimeout: "10m"
Kun rekisteriin ilmestyy uusi versio, operaattori:
- Luo tyotilan PVC:n varmuuskopion S3-yhteensopivaan tallennustilaan
- Paivittaa kuvatunnisteen StatefulSet:ssa
- Odottaa
healthCheckTimeout:n ajan podin lapaisemaan valmiustarkastukset - Jos pod ei onnistu tulemaan valmiiksi, palauttaa edellisen kuvatunnisteen ja varmuuskopion
Kolmen perakkaisen epaonnistuneen palautuksen jalkeen operaattori keskeyttaa automaattisen paivityksen ja asettaa ehdon, jotta voit tutkia.
Huomautus: Automaattinen paivitys ei tee mitaan tiivisteeseen sidotuille kuville (
spec.image.digest). Jos sidot tiivisteeseen, hallitset paivityksia kasin.
Tuotannon koventaminen
Operaattori on oletuksena turvallinen. Tassa ovat lisasaadet tuotantokayttoonottoihin.
Valvonta Prometheuksen kanssa
Ota kayttoon ServiceMonitor operaattorin ja instanssien metriikan keraysta varten:
spec:
observability:
metrics:
enabled: true
serviceMonitor:
enabled: true
interval: "30s"
Operaattori paljastaa openclaw_reconcile_total, openclaw_reconcile_duration_seconds, openclaw_instance_phase ja automaattisen paivityksen laskurit.
Ajastaminen omistetuille solmuille
Jos ajat sekalaista klusteria, kayta nodeSelector ja tolerations agenttien kiinnittamiseen omistetuille solmuille:
spec:
availability:
nodeSelector:
openclaw.rocks/nodepool: openclaw
tolerations:
- key: openclaw.rocks/dedicated
value: openclaw
effect: NoSchedule
Mukautettujen ulosmenosaantojen lisaaminen
Oletus-NetworkPolicy sallii vain DNS:n (portti 53) ja HTTPS:n (portti 443). Jos agenttisi tarvitsee tavoittaa muita palveluita (tietokanta, viestijono, sisainen API), lisaa ulosmenosaannot:
spec:
security:
networkPolicy:
additionalEgress:
- to:
- ipBlock:
cidr: 10.0.0.0/8
ports:
- port: 5432
protocol: TCP
Pilvipalveluntarjoajan identiteetti
AWS IRSA:lle tai GCP Workload Identitylle annotoi hallinnoitu ServiceAccount:
spec:
security:
rbac:
serviceAccountAnnotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::123456789:role/openclaw"
Yritysproxyit ja yksityiset CA:t
Jos klusterisi kayttaa TLS:a kaappaavaa proxya, syota CA-paketti:
spec:
security:
caBundle:
configMapName: corporate-ca-bundle
key: ca-bundle.crt
Operaattori kiinnittaa CA-paketin kaikkiin kontteihin ja asettaa automaattisesti NODE_EXTRA_CA_CERTS.
GitOps
OpenClawInstance CRD on tavallinen YAML-tiedosto. Se tarkoittaa, etta se sopii suoraan GitOps-tyonkulkuun. Tallenna agenttimanifestisi git-repoon ja anna ArgoCD:n tai Fluxin synkronoida ne klusteriisi.
Tyypillinen reporakenne:
gitops/
└── agents/
├── kustomization.yaml
├── namespace.yaml
├── agent-a.yaml
└── agent-b.yaml
Jokainen muutos kulkee pull requestin kautta. Tiimisi katselmoi erot. Yhdista mainiin ja ArgoCD ottaa sen kayttoon. Ei kubectl apply -komentoja kannettavilta, ei konfiguraatiopoikkeamia, taysi auditointijalki.
Operaattorin konfiguraation tiivistys tekee tasta erityisen sujuvaa. Kun ArgoCD synkronoi muutetun spec.config.raw:n, operaattori havaitsee sisallon tiivisteen muuttuneen ja kaynnistaa automaattisesti vaiheittaisen paivityksen. Sama salaisuuksien rotaatiolle: operaattori tarkkailee viitattuja salaisuuksia ja kaynnistaa podit uudelleen niiden muuttuessa.
Varmuuskopiointi ja palautus
Operaattori tukee S3-yhteensopivia varmuuskopioita. Kun poistat instanssin, operaattori luo automaattisesti tyotilan PVC:n varmuuskopion ennen poistoa.
Agentin palauttamiseksi varmuuskopiosta uuteen instanssiin:
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
Operaattori lataa tilannekuvan, purkaa sen PVC:lle ja kaynnistaa agentin kaikilla aiemmilla tyotiladatoilla, taidoilla ja keskusteluhistorialla.
Paikallinen paattely Ollaman kanssa
Jos haluat agenttien kayttavan paikallisia malleja (yksityisyyden, viiveen tai kustannusten vuoksi), operaattorilla on ensiluokkainen Ollama-tuki. Sivuvaunua ei tarvitse asettaa kasin. spec.ollama kasittelee kontin, mallien esihakemisen, tallennustilan ja GPU-varauksen:
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
Kun kaytossa, operaattori:
- Lisaa Ollama-sivuvaunukontin podiin
- Ajaa alustuskontin, joka esihakee listatut mallit ennen agentin kaynnistymista
- Syottaa
OLLAMA_HOST=http://localhost:11434paakonttiin - Varaa pyydetyn NVIDIA GPU:n
nvidia.com/gpu-resurssirajoitusten kautta
Oletuksena mallit tallennetaan emptyDir-volyymiin konfiguroitavalla kokorajoituksella. Pysyvaan mallien tallennukseen uudelleenkaynistysten valilla (jotta malleja ei haeta uudelleen joka kerta) kayta olemassa olevaa PVC:ta:
spec:
ollama:
enabled: true
models: ["llama3.2"]
storage:
existingClaim: ollama-models-pvc
Tailscale-integraatio
Paljasta agenttisi tailnet-verkollesi ilman Ingressia, kuormantasaajia tai julkisia IP-osoitteita. Operaattorin spec.tailscale-kentta kasittelee todennusavaimen syotton, konfiguraation rikastamisen ja NetworkPolicy-saannot:
spec:
tailscale:
enabled: true
mode: serve # or "funnel" for public internet access
authKeySecretRef:
name: tailscale-authkey
hostname: my-agent
Luo todennusavaimen salaisuus lyhytkestoisella, uudelleenkaytettavalla avaimella Tailscale-hallintakonsolista:
kubectl create secret generic tailscale-authkey \
--namespace openclaw \
--from-literal=authkey=tskey-auth-...
serve-tilassa (oletus) vain tailnet-jasenet voivat tavoittaa agentin. funnel-tilassa Tailscale paljastaa sen julkiseen internettiin automaattisella HTTPS:lla.
Operaattori automaattisesti:
- Syottaa ymparistomuuttujat
TS_AUTHKEYjaTS_HOSTNAME - Yhdistaa
gateway.tailscale.modejagateway.tailscale.resetOnExitOpenClaw-konfiguraatioon - Lisaa STUN- ja WireGuard-ulosmenosaannot NetworkPolicy:iin
Salasanattomaan SSO-kirjautumiseen tailnet-jasenille ota kayttoon authSSO:
spec:
tailscale:
enabled: true
mode: serve
authKeySecretRef:
name: tailscale-authkey
authSSO: true
Tama asettaa gateway.auth.allowTailscale=true OpenClaw-konfiguraatioon, joten tailnet-jasenet voivat kayttaa agenttia ilman erillistä yhdyskaytavatokenia.
Mukautetut sivuvaunut ja alustuskontit
Kayttoatuotantotilanteisiin sisaanrakennetun Ollama- ja Tailscale-tuen ulkopuolella operaattori hyvaksyy mielivaltaisia sivuvaunuja ja alustuskontteja. Aja Cloud SQL Proxy tietokantakayttoa varten, lokien valittaja tai mika tahansa muu apu agenttisi rinnalla:
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
Mukautetut alustuskontit ajetaan operaattorin oman alustusputken jalkeen (konfiguraation kylvo, pnpm, Python, taidot):
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
Konfiguraation yhdistamistila
Oletuksena operaattori ylikirjoittaa konfiguraatiotiedoston jokaisella podin uudelleenkaynnistyksella. Jos agenttisi muokkaa omaa konfiguraatiotaan ajon aikana (taitojen tai itsemuokkauksen kautta), aseta mergeMode: merge operaattorikonfiguraation syvayhdistamista varten olemassa olevan PVC-konfiguraation kanssa:
spec:
config:
mergeMode: merge
raw:
agents:
defaults:
model:
primary: "anthropic/claude-sonnet-4-20250514"
Yhdistamistilassa operaattorin maarittamat avaimet voittavat, mutta avaimet jotka agentti lisasi itse sailyvat uudelleenkaynistysten yli.
Taysi esimerkki
Tassa on tuotantovalmis manifesti, joka yhdistaa kaiken tasta oppaasta:
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
Ota se kayttoon ja sinulla on kovennettu, automaattisesti paivittyva, selainkykyinen AI-agentti paikallisella paattelylla, tailnet-kaytolla, valvonnalla, varmuuskopioilla ja verkkoeristayksella. Yksi kubectl apply.
Mita saat suoraan
Koskematta yhteenkaan turvallisuusasetukseen jokainen operaattorin kayttoon ottama agentti tulee mukana:
- Ei-root-suoritus (UID 1000)
- Vain luku -juuritiedostojarjestelma
- Kaikki Linux-kyvyt poistettu
- Seccomp RuntimeDefault -profiili
- Oletuksena estava NetworkPolicy (vain DNS + HTTPS ulosmeno)
- Instanssikohtainen ServiceAccount ilman automaattista tokenin kiinnittysta
- PodDisruptionBudget
- Elossa-olo-, valmius- ja kaynnistysluotaimet
- Automaattisesti generoitu yhdyskaytavan todennustokeni
- 5 minuutin poikkeaman yhdenmukaistaminen
Validoiva webhook estaa yritykset ajaa rootina ja varoittaa kaytoesta poistetuista NetworkPolicyista, puuttuvasta TLS:sta Ingressissa ja havaitsemattomista AI-palveluntarjoajan avaimista.
Seuraavat vaiheet
- Selaa taysi API-viite jokaiselle CRD-kentalle
- Lue kayttoonotto-oppaat EKS:lle, GKE:lle, AKS:lle ja Kindille
- Aseta mallien varaketjut useiden AI-palveluntarjoajien valilla
- Maarita External Secrets Vaultille, AWS:lle, GCP:lle tai Azurelle
Jos kohtaat ongelmia tai sinulla on palautetta, avaa ongelma GitHubissa. Pull requestit ovat myos tervetulleita.
Jos et halua hallita Kubernetesta itse, OpenClaw.rocks hoitaa kaiken taman puolestasi. Valitse paketti, yhdista kanava ja agenttisi on aktiivinen sekunneissa.