Истраживачи безбедности пронашли су преко 135.000 инстанци OpenClaw потпуно отворених на интернету. Многе од њих биле су рањиве на извршавање удаљеног кода. Безбедносна криза OpenClaw је стварна: критични CVE, злонамерне вештине и фундаментални проблем са начином на који већина постављања обрађује аутентификацију. Покретање OpenClaw на VPS са docker run је лако. Покретање на безбедан начин је сасвим другачији проблем.

Kubernetes решава тај проблем. Добијате мрежну изолацију, ограничења ресурса, аутоматска поновна покретања и безбедносне подразумеване вредности чија би ручна конфигурација трајала сатима. А са OpenClaw Kubernetes Operator, добијате све то из једне YAML датотеке.

Овај водич вас води од нуле до OpenClaw агента спремног за продукцију на Kubernetes. Сваки YAML блок је спреман за копирање и лепљење.

Зашто оператор

Покретање OpenClaw на Kubernetes је више од Deployment и Service. Потребна вам је мрежна изолација, управљање тајнама, трајно складиште, мониторинг здравља, увођење конфигурације и опционо аутоматизација прегледача. Правилно повезивање свега тога ручно је заморно и подложно грешкама.

Kubernetes оператор кодификује ове захтеве у јединствени прилагођени ресурс. Декларишете шта желите, а оператор континуирано усклађује то у прави скуп Kubernetes објеката. То вам даје:

  • Безбедност по подразумеваној вредности. Сваки агент ради као UID 1000, све Linux могућности уклоњене, seccomp омогућен, систем датотека коренског директоријума само за читање и NetworkPolicy са подразумеваним одбијањем који дозвољава само DNS и HTTPS излазни саобраћај. Без потребе за ручним ојачавањем.
  • Аутоматска ажурирања са враћањем. Оператор проверава OCI регистар за нове верзије, прави резервну копију радног простора, уводи ажурирање и аутоматски враћа ако нови pod не прође здравствене провере.
  • Увођење конфигурације. Промените свој spec.config.raw и оператор детектује промену хеша садржаја, покреће ролинг ажурирање. Исто за ротацију тајни.
  • Резервне копије и обнављање. Аутоматско прављење резервних копија радног простора на S3-компатибилно складиште при брисању инстанце. Обнављање у нову инстанцу из било ког снимка.
  • Аутентификација гејтвеја. Аутоматски генерише токен гејтвеја по инстанци. Без ручног упаривања, без mDNS (који ионако не ради у Kubernetes).
  • Детекција одступања. Сваких 5 минута, оператор проверава да сваки управљани ресурс одговара жељеном стању. Ако неко ручно измени NetworkPolicy или обрише PDB, враћа се назад.

Предуслови

Потребно вам је:

  • Kubernetes кластер (1.28+). Било која усклађена дистрибуција ради: EKS, GKE, AKS, k3s или локални Kind кластер за тестирање.
  • kubectl конфигурисан за комуникацију са вашим кластером.
  • helm v3 инсталиран.
  • API кључ за вашег AI провајдера (Anthropic, OpenAI или било која крајња тачка компатибилна са OpenAI).

Корак 1: Инсталирајте оператор

Оператор се испоручује као OCI Helm chart. Једна команда га инсталира:

helm install openclaw-operator \
  oci://ghcr.io/openclaw-rocks/charts/openclaw-operator \
  --namespace openclaw-operator-system \
  --create-namespace

Проверите да ради:

kubectl get pods -n openclaw-operator-system

Требало би да видите pod оператора у стању Running. Оператор такође инсталира валидациони webhook који спречава небезбедне конфигурације (као покретање као root).

Корак 2: Креирајте ваш Secret за API кључ

Сачувајте API кључ вашег AI провајдера у Kubernetes Secret. Оператор ће га убацити у контејнер агента:

kubectl create namespace openclaw

kubectl create secret generic openclaw-api-keys \
  --namespace openclaw \
  --from-literal=ANTHROPIC_API_KEY=sk-ant-your-key-here

За OpenAI или друге провајдере, користите одговарајуће име променљиве окружења (OPENAI_API_KEY, OPENROUTER_API_KEY, итд.). Можете укључити више провајдера у исти Secret.

Савет: За продукцију, размотрите коришћење External Secrets Operator за синхронизацију кључева из AWS Secrets Manager, HashiCorp Vault, GCP Secret Manager или Azure Key Vault. Документација оператора има детаљне примере.

Корак 3: Поставите вашег првог агента

Креирајте датотеку под називом 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

Примените:

kubectl apply -f my-agent.yaml

Тај јединствени ресурс креира StatefulSet, Service, ServiceAccount, Role, RoleBinding, ConfigMap, PVC, PDB, NetworkPolicy и Secret за токен гејтвеја. Оператор усклађује све.

Корак 4: Проверите да ли ради

Пратите покретање инстанце:

kubectl get openclawinstances -n openclaw -w
NAME       PHASE        READY   AGE
my-agent   Provisioning False   10s
my-agent   Running      True    45s

Када фаза покаже Running и Ready је True, ваш агент је активан. Проверите логове:

kubectl logs -n openclaw statefulset/my-agent -f

За интеракцију са вашим агентом, направите port-forward гејтвеја:

kubectl port-forward -n openclaw svc/my-agent 18789:18789

Затим отворите http://localhost:18789 у вашем прегледачу.

Корак 5: Повежите канал

OpenClaw подржава Telegram, Discord, WhatsApp, Signal и друге канале за слање порука. Сваки канал се конфигурише преко променљивих окружења. Додајте релевантни токен у ваш Secret:

kubectl create secret generic openclaw-channel-keys \
  --namespace openclaw \
  --from-literal=TELEGRAM_BOT_TOKEN=your-bot-token-here

Затим га референцирајте у вашој инстанци:

spec:
  envFrom:
    - secretRef:
        name: openclaw-api-keys
    - secretRef:
        name: openclaw-channel-keys

OpenClaw аутоматски детектује токен и омогућава канал. Додатна конфигурација није потребна.


Ово покрива основе. Ваш агент ради, обезбеђен је и доступан. Остатак овог водича покрива опционе функције које можете омогућити када будете спремни.

Аутоматизација прегледача

spec:
  chromium:
    enabled: true
    resources:
      requests:
        cpu: 500m
        memory: 1Gi
      limits:
        cpu: 1000m
        memory: 2Gi

Оператор аутоматски убацује променљиву окружења CHROMIUM_URL у главни контејнер. Sidecar ради као UID 1001 са системом датотека коренског директоријума само за читање и сопственим безбедносним контекстом.

Вештине и зависности за време извршавања

spec:
  skills:
    - "@anthropic/mcp-server-fetch"
    - "@anthropic/mcp-server-filesystem"
  runtimeDeps:
    pnpm: true
    python: true

Аутоматска ажурирања

spec:
  autoUpdate:
    enabled: true
    checkInterval: "12h"
    backupBeforeUpdate: true
    rollbackOnFailure: true
    healthCheckTimeout: "10m"

Ојачавање за продукцију

Мониторинг са Prometheus

spec:
  observability:
    metrics:
      enabled: true
      serviceMonitor:
        enabled: true
        interval: "30s"

Заказивање на наменским чворовима

spec:
  availability:
    nodeSelector:
      openclaw.rocks/nodepool: openclaw
    tolerations:
      - key: openclaw.rocks/dedicated
        value: openclaw
        effect: NoSchedule

Прилагођена правила за излазни саобраћај

spec:
  security:
    networkPolicy:
      additionalEgress:
        - to:
            - ipBlock:
                cidr: 10.0.0.0/8
          ports:
            - port: 5432
              protocol: TCP

Идентитет клауд провајдера

spec:
  security:
    rbac:
      serviceAccountAnnotations:
        eks.amazonaws.com/role-arn: "arn:aws:iam::123456789:role/openclaw"

Корпоративни проксији и приватни CA

spec:
  security:
    caBundle:
      configMapName: corporate-ca-bundle
      key: ca-bundle.crt

GitOps

CRD OpenClawInstance је обична YAML датотека. Чувајте манифесте агената у git репозиторијуму и дозволите ArgoCD или Flux да их синхронизују са вашим кластером. Без kubectl apply са лаптопова, без одступања конфигурације, потпуна ревизијска трага.

Резервне копије и обнављање

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

Локална инференца са 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 интеграција

spec:
  tailscale:
    enabled: true
    mode: serve
    authKeySecretRef:
      name: tailscale-authkey
    hostname: my-agent

Комплетан пример

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

Шта добијате одмах

Без дирања једне безбедносне поставке, сваки агент постављен оператором долази са: покретање без root-а (UID 1000), систем датотека коренског директоријума само за читање, све Linux могућности уклоњене, Seccomp RuntimeDefault профил, NetworkPolicy са подразумеваним одбијањем (само DNS + HTTPS излазни саобраћај), ServiceAccount по инстанци без аутоматског монтирања токена, PodDisruptionBudget, провере живости/спремности/покретања, аутоматски генерисан токен за аутентификацију гејтвеја и усклађивање одступања сваких 5 минута.

Следећи кораци

Ако наиђете на проблеме или имате повратне информације, отворите issue на GitHub. PR су такође добродошли.

Ако не желите сами да управљате Kubernetes, OpenClaw.rocks се брине о свему овоме уместо вас. Изаберите план, повежите канал и ваш агент је активан за неколико секунди.