Як розгорнути 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-сумісне сховище при видаленні екземпляра.
- Автентифікація шлюзу. Автоматично генерує токен шлюзу для кожного екземпляра.
- Виявлення відхилень. Кожні 5 хвилин оператор перевіряє, що кожен керований ресурс відповідає бажаному стану.
Передумови
- Кластер Kubernetes (1.28+). EKS, GKE, AKS, k3s або локальний Kind кластер для тестування.
kubectl, налаштований для спілкування з вашим кластером.helmv3 встановлений.- API-ключ для вашого AI-постачальника (Anthropic, OpenAI або будь-яка OpenAI-сумісна кінцева точка).
Крок 1: Встановіть оператор
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
Крок 2: Створіть секрет API-ключа
kubectl create namespace openclaw
kubectl create secret generic openclaw-api-keys \
--namespace openclaw \
--from-literal=ANTHROPIC_API_KEY=sk-ant-your-key-here
Крок 3: Розгорніть першого агента
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
kubectl logs -n openclaw statefulset/my-agent -f
kubectl port-forward -n openclaw svc/my-agent 18789:18789
Крок 5: Підключіть канал
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
Навички та залежності часу виконання
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
GitOps
CRD OpenClawInstance — це звичайний файл YAML. Зберігайте маніфести агентів у репозиторії git та дозвольте ArgoCD або Flux синхронізувати їх з вашим кластером.
Резервне копіювання та відновлення
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 за замовчуванням з відмовою, ServiceAccount на кожен екземпляр без автоматичного монтування токена, PodDisruptionBudget, зонди живучості/готовності/запуску, автоматично згенерований токен автентифікації шлюзу та 5-хвилинне узгодження відхилень.
Наступні кроки
- Повна довідка API
- Посібники з розгортання для EKS, GKE, AKS та Kind
- Ланцюги резервних моделей
- External Secrets для Vault, AWS, GCP або Azure
Якщо ви не хочете керувати Kubernetes самостійно, OpenClaw.rocks вирішить все це за вас. Виберіть план, підключіть канал, і ваш агент активний за секунди.