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.raw ja 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.
  • helm v3 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:

  1. Luo tyotilan PVC:n varmuuskopion S3-yhteensopivaan tallennustilaan
  2. Paivittaa kuvatunnisteen StatefulSet:ssa
  3. Odottaa healthCheckTimeout:n ajan podin lapaisemaan valmiustarkastukset
  4. 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:

  1. Lisaa Ollama-sivuvaunukontin podiin
  2. Ajaa alustuskontin, joka esihakee listatut mallit ennen agentin kaynnistymista
  3. Syottaa OLLAMA_HOST=http://localhost:11434 paakonttiin
  4. 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_AUTHKEY ja TS_HOSTNAME
  • Yhdistaa gateway.tailscale.mode ja gateway.tailscale.resetOnExit OpenClaw-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

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.