Како поставити OpenClaw на Kubernetes
Истраживачи безбедности пронашли су преко 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конфигурисан за комуникацију са вашим кластером.helmv3 инсталиран.- 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 минута.
Следећи кораци
- Прегледајте потпуну API референцу за свако CRD поље
- Прочитајте водиче за постављање за EKS, GKE, AKS и Kind
- Подесите ланце резервних модела преко више AI провајдера
- Конфигуришите External Secrets за Vault, AWS, GCP или Azure
Ако наиђете на проблеме или имате повратне информације, отворите issue на GitHub. PR су такође добродошли.
Ако не желите сами да управљате Kubernetes, OpenClaw.rocks се брине о свему овоме уместо вас. Изаберите план, повежите канал и ваш агент је активан за неколико секунди.