OpenClaw Kubernetes Uzerinde Nasil Dagitilir
Guvenlik arastirmacilari internette tamamen acik duran 135.000’den fazla OpenClaw ornegi tespit etti. Bircogu uzaktan kod calistirmaya karsii savunmasizdi. OpenClaw guvenlik krizi gercektir: kritik CVE’ler, kotucul beceriler ve cogu dagitiimin kimlik dogrulamayi nasil ele aldigiyla ilgili temel bir sorun. docker run ile bir VPS uzerinde OpenClaw calistirmak kolaydir. Guvenli calistirmak farkli bir sorundur.
Kubernetes bu sorunu cozer. Ag izolasyonu, kaynak sinirlari, otomatik yeniden baslatmalar ve elle yapilandirmasi saatler surecek guvenlik varsayillanlari elde edersiniz. Ve OpenClaw Kubernetes Operator ile bunlarin hepsini tek bir YAML dosyasindan elde edersiniz.
Bu rehber sizi sifirdan Kubernetes uzerinde uretime hazir bir OpenClaw ajanina goturur. Her YAML blogu kopyalayip yapistirmaya hazirdir.
Neden bir operator
Kubernetes uzerinde OpenClaw calistirmak bir Deployment ve Service’den fazlasidir. Ag izolasyonu, gizli yonetimi, kalici depolama, saglik izleme, yapilandirma dagitimi ve istege bagli tarayici otomasyonuna ihtiyaciniz vardir. Tum bunlari elle dogru sekilde baglamak sikici ve hataya aciktir.
Bir Kubernetes operatoru bu gereksinimleri tek bir ozel kaynak icinde kodlar. Ne istediginizi beyan edersiniz ve operator bunu surekli olarak dogru Kubernetes nesneleri setine uzlastirir. Bu size sunlari verir:
- Varsayilan olarak guvenlik. Her ajan UID 1000 olarak calisir, tum Linux yetenekleri dusurulmus, seccomp etkin, salt okunur kok dosya sistemi ve yalnizca DNS ve HTTPS cikisina izin veren varsayilan-reddet NetworkPolicy. Manuel guclendirme gerekli degildir.
- Geri almayla otomatik guncellemeler. Operator, yeni surumler icin OCI kaydini yoklar, calisma alanini yedekler, guncellemeyi dagitir ve yeni pod saglik kontrollerini gecemezse otomatik olarak geri alir.
- Yapilandirma dagitimi.
spec.config.rawdegerinizi degistirin ve operator icerik karmasinin degistigini algilar, yuvarlanan bir guncelleme tetikler. Gizli rotasyonu icin de ayni. - Yedekleme ve geri yukleme. Ornek silindiginde S3 uyumlu depolamaya otomatik calisma alani yedeklemesi. Herhangi bir anlil goruntusunden yeni bir ornege geri yukleme.
- Gecit kimlik dogrulamasi. Ornek basina otomatik olarak bir gecit tokeni olusturur. Manuel eslestirme yok, mDNS yok (Kubernetes’te zaten calismaz).
- Sapma algilama. Her 5 dakikada operator, yonetilen her kaynagin istenen durumla esllestigini kontrol eder. Birisi bir NetworkPolicy’yi elle duzenlerse veya bir PDB’yi silerse, geri uzlastirilir.
On kosullar
Ihtiyaciniz var:
- Kubernetes kumesi (1.28+). Herhangi bir uyumlu dagitim calisir: EKS, GKE, AKS, k3s veya test icin yerel bir Kind kumesi.
- Kumenizle iletisim kurmak icin yapilandirilmis
kubectl. helmv3 kurulu.- AI saglayiciniz icin bir API anahtari (Anthropic, OpenAI veya herhangi bir OpenAI uyumlu uc nokta).
Adim 1: Operatoru kurun
Operator bir OCI Helm chart olarak gelir. Tek bir komut onu kurar:
helm install openclaw-operator \
oci://ghcr.io/openclaw-rocks/charts/openclaw-operator \
--namespace openclaw-operator-system \
--create-namespace
Calistigini dogrulayin:
kubectl get pods -n openclaw-operator-system
Operator pod’unu Running durumunda gormelisiniz. Operator ayrica guvenli olmayan yapilandirmalari (root olarak calistirma gibi) engelleyen bir dogrulama webhook’u da kurar.
Adim 2: API anahtari Secret’inizi olusturun
AI saglayici API anahtarinizi bir Kubernetes Secret’inda saklayin. Operator bunu ajan konteynerine enjekte edecektir:
kubectl create namespace openclaw
kubectl create secret generic openclaw-api-keys \
--namespace openclaw \
--from-literal=ANTHROPIC_API_KEY=sk-ant-your-key-here
OpenAI veya diger saglayicilar icin uygun ortam degiskeni adini kullanin (OPENAI_API_KEY, OPENROUTER_API_KEY, vb.). Ayni Secret’a birden fazla saglayici ekleyebilirsiniz.
Ipucu: Uretim icin, AWS Secrets Manager, HashiCorp Vault, GCP Secret Manager veya Azure Key Vault’tan anahtarlari senkronize etmek icin External Secrets Operator kullanmayi dusunun. Operator dokumantasyonunda ayrintili ornekler vardir.
Adim 3: Ilk ajaninizi dagitin
my-agent.yaml adinda bir dosya olusturun:
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
Uygullayin:
kubectl apply -f my-agent.yaml
Bu tek kaynak bir StatefulSet, Service, ServiceAccount, Role, RoleBinding, ConfigMap, PVC, PDB, NetworkPolicy ve bir gecit tokeni Secret’i olusturur. Operator her seyi uzlastirir.
Adim 4: Calistigini dogrulayin
Ornegin ayaga kalkmasini izleyin:
kubectl get openclawinstances -n openclaw -w
NAME PHASE READY AGE
my-agent Provisioning False 10s
my-agent Running True 45s
Faz Running ve Ready True gosterdiginde, ajaniniz aktiftir. Logllari kontrol edin:
kubectl logs -n openclaw statefulset/my-agent -f
Ajaninizla etkilesim icin gecidi port-forward edin:
kubectl port-forward -n openclaw svc/my-agent 18789:18789
Sonra tarayicinizda http://localhost:18789 acin.
Adim 5: Bir kanal baglayin
OpenClaw Telegram, Discord, WhatsApp, Signal ve diger mesajlasma kanallarini destekler. Her kanal ortam degiskenleri araciligiyla yapilandirilir. Ilgili tokeni Secret’inize ekleyin:
kubectl create secret generic openclaw-channel-keys \
--namespace openclaw \
--from-literal=TELEGRAM_BOT_TOKEN=your-bot-token-here
Sonra orneginizde referans verin:
spec:
envFrom:
- secretRef:
name: openclaw-api-keys
- secretRef:
name: openclaw-channel-keys
OpenClaw tokeni otomatik olarak algilar ve kanali etkinlestirir. Ek yapilandirma gerekli degildir.
Bu temelleri kapsar. Ajaniniz calisiyor, guvenli ve erisilebilir. Bu rehberin geri kalani, hazir oldugunuzda etkinlestirebileceginiz istege bagli ozellikleri kapsar.
Tarayici otomasyonu
spec:
chromium:
enabled: true
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: 1000m
memory: 2Gi
Operator otomatik olarak ana konteynere bir CHROMIUM_URL ortam degiskeni enjekte eder. Sidecar, salt okunur kok dosya sistemi ve kendi guvenlik baglamiyla UID 1001 olarak calisir.
Beceriler ve calisma zamani bagimliliklari
spec:
skills:
- "@anthropic/mcp-server-fetch"
- "@anthropic/mcp-server-filesystem"
runtimeDeps:
pnpm: true
python: true
Otomatik guncellemeler
spec:
autoUpdate:
enabled: true
checkInterval: "12h"
backupBeforeUpdate: true
rollbackOnFailure: true
healthCheckTimeout: "10m"
Uretim guclendirme
Prometheus ile izleme
spec:
observability:
metrics:
enabled: true
serviceMonitor:
enabled: true
interval: "30s"
Ozel dugumlerde zamanlama
spec:
availability:
nodeSelector:
openclaw.rocks/nodepool: openclaw
tolerations:
- key: openclaw.rocks/dedicated
value: openclaw
effect: NoSchedule
Ozel cikis kurallari
spec:
security:
networkPolicy:
additionalEgress:
- to:
- ipBlock:
cidr: 10.0.0.0/8
ports:
- port: 5432
protocol: TCP
Bulut saglayici kimligi
spec:
security:
rbac:
serviceAccountAnnotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::123456789:role/openclaw"
Kurumsal proxyler ve ozel CA’lar
spec:
security:
caBundle:
configMapName: corporate-ca-bundle
key: ca-bundle.crt
GitOps
OpenClawInstance CRD’si duz bir YAML dosyasidir. Ajan manifestolarinizi bir git deposunda saklayin ve ArgoCD veya Flux’un bunlari kumenizle senkronize etmesine izin verin. Dizustu bilgisayarlardan kubectl apply yok, yapilandirma sapmasi yok, tam denetim izi.
Yedekleme ve geri yukleme
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 ile yerel cikarim
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 entegrasyonu
spec:
tailscale:
enabled: true
mode: serve
authKeySecretRef:
name: tailscale-authkey
hostname: my-agent
Tam ornek
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
Kutudan ne cikar
Tek bir guvenlik ayarina dokunmadan, operator tarafindan dagitilan her ajan sunlarla gelir: root olmayan calistirma (UID 1000), salt okunur kok dosya sistemi, tum Linux yetenekleri dusurulmus, Seccomp RuntimeDefault profili, varsayilan-reddet NetworkPolicy (yalnizca DNS + HTTPS cikis), ornek basina otomatik token montaji olmayan ServiceAccount, PodDisruptionBudget, canlilik/hazirlik/baslatma sondajlari, otomatik olusturulmus gecit kimlik dogrulama tokeni ve 5 dakikalik sapma uzlastirmasi.
Sonraki adimlar
- Her CRD alani icin tam API referansina goz atin
- EKS, GKE, AKS ve Kind icin dagitim rehberlerini okuyun
- Birden fazla AI saglayici arasinda model yedek zincirleri kurun
- Vault, AWS, GCP veya Azure icin External Secrets yapilandirin
Sorunlarla karsilasirrsaniz veya geri bildiriminiz varsa, GitHub’da bir issue acin. PR’ler de memnuniyetle karsilanir.
Kubernetes’i kendiniz yonetmek istemiyorsaniz, OpenClaw.rocks tum bunlari sizin icin halleder. Bir plan secin, bir kanal baglayin ve ajaniniz saniyeler icinde aktif olur.