OpenClaw Kubernetes Operator Açık Kaynak Oluyor
İki hafta önce OpenClaw’ın 9.000 GitHub yıldızı vardı. Bugün 183.000 yıldıza sahip. Bu süre zarfında bütün bir sektör ortaya çıktı. ClawSimple, Kilo Claw, StartClaw, ShipClaw, GetClaw.ai, LobsterLair. Bir karşılaştırma sitesi 33 sağlayıcı sayıyor ve liste büyümeye devam ediyor. OpenClaw wrapper’ları TrustMRR’ı istila ediyor. DigitalOcean bir 1-Click Deploy yayınladı. Cloudflare bunu bir Workers runtime’ına uyarladı. İnsanlar evde kişisel AI ajanları çalıştırmak için Mac Minis satın alıyordu.
Bulutta kendi sunucunuzda barındırmak istiyorsanız, en yaygın kurulum 2 vCPU ve 4 GB RAM’e sahip 5 dolarlık bir Hetzner VPS, Docker Compose ve bir API anahtarıdır. Kurulum sihirbazını çalıştırın, Anthropic veya OpenRouter’a yönlendirin, Telegram’ı bağlayın. Otuz dakikada tamamlanır. Ya da bir Mac Mini alın, masanızın altına koyun ve kişisel JARVIS’iniz olarak adlandırın. M4, bekleme modunda yedi watt çeker ve 64 GB Pro modelini tercih ederseniz yerel bir çıkarım makinesi olarak da kullanılabilir.
Bunların her ikisi de tek bir ajan için işe yarar. Ancak OpenClaw.rocks geliştirmeye başladığımda, hedef OpenClaw’ı ölçekte barındırmanın en güvenilir ve en güvenli yolunu sunmak, bunu kullanıcı için zahmetsiz tutmaktı. Bu, farklı bir temel gerektiriyordu.
Neden Kubernetes’i seçtim
Daha önce Binance’te blockchain altyapısı yönetiyordum, Bitcoin düğümlerinin güvenliğini sağlamak da dahil. İşiniz yüksek değerli iş yüklerini izole, gözlemlenebilir ve kurtarılabilir şekilde ölçekte tutmak olduğunda, altyapının nasıl çalışması gerektiği konusunda güçlü fikirler geliştirirsiniz. Kubernetes, bunun için güvendiğim şeydir.
OpenClaw tek kullanıcılı bir uygulamadır. Kişisel bir asistan, çok kiracılı bir platform değil. On kişi için ajan çalıştırmak istiyorsanız, on örneğe ihtiyacınız var. Yüz kişi için yüz örnek. Her biri kendi yapılandırması, kendi sırları, kendi depolaması, kendi ağ sınırlarıyla. Yalnızca izolasyon gereksinimleri bile düzgün konteyner orkestrasyon seviyesinin altındaki her şeyi devre dışı bırakır.
Kubernetes’in basit olduğunu iddia etmeyeceğim. Değildir. Tek bir ajan için saçma derecede aşırıdır. Ancak birçok kişi için birçok ajan çalıştırmak söz konusu olduğunda, başka hiçbir şeyin bu kadar iyi çözemediği sorunları çözer. Ve ölçekte OpenClaw ajanları çalıştıran herhangi bir şirketin aynı sonuca varacağını düşünüyorum.
Gerçekten uygulanan izolasyon. Her ajan, varsayılan olarak her şeyi reddeden bir NetworkPolicy ile kendi namespace’inde çalışır. Ajan A, Ajan B ile konuşamaz. Ajan B, Ajan A’nın sırlarına erişemez. Bu bir gelenek veya en iyi uygulama değildir. Konteyner çalışma zamanı ve CNI tarafından uygulanır. Docker Compose ile paylaşılan bir VPS’te, konteynerler arası ağ izolasyonu kimsenin bakım yapmadığı elle iptables kuralları gerektirir.
Kademeli arızaları önleyen kaynak sınırları. Tarayıcı otomasyonu olan bir OpenClaw ajanı, izin verirseniz 3 CPU çekirdeği ve 6 GB bellek tüketebilir. Dört ajanı olan bir VPS’te, kontrolden çıkan bir Chromium işlemi diğer üçünü öldürür. Kubernetes, konteyner başına CPU ve bellek sınırlarını uygular. Tavanına ulaşan bir ajan komşularını etkilemez.
SSH olmadan kendini iyileştirme. Bir VPS işlemi çöktüğünde, bir şeyin bunu fark edip yeniden başlatması gerekir. systemd bunu yapar, ama sadece ana makine için. Docker Compose’un yeniden başlatma politikaları var, ama yanlış gidebilecek diğer on şeyi kapsamıyor: OOM öldürmeleri, düğüm arızaları, depolama sorunları. Kubernetes başarısız konteynerleri yeniden başlatır, düğümler öldüğünde pod’ları yeniden planlar ve yalnızca işlem çıkışlarını değil, uygulama düzeyinde sorunları tespit eden sağlık kontrolleri çalıştırır.
Tahmin etmeden ölçeklendirme. Ajan iş yüklerini özel bir düğüm havuzunda çalıştırıyoruz. Talep arttığında cluster autoscaler düğüm ekler. Azaldığında düğümler boşaltılır ve kaldırılır. Boyutlandırmayı doğru yaptığımızı umarak önceden hazırlanmış VPS örnekleri filosu tutmuyoruz. Altyapı gerçek yüke uyar.
Sapma olmadan bildirimsel durum. Bir ajanın tüm yapılandırması tek bir custom resource’ta yaşar: model, kanallar, kaynak sınırları, ağ kuralları, depolama, güvenlik bağlamı. Yeniden oluşturulacak SSH geçmişi yok, izlenecek elle düzenlemeler yok, çalıştığını düşündüğünüz ile gerçekte çalışan arasında yapılandırma sapması yok.
Bunların hiçbiri tek bir makinedeki tek bir ajan için önemli değil. Hepsi, diğer insanların ajanlarının güvenilir çalışmasından sorumlu olduğunuzda önemli.
Operator
Kubernetes size yapı taşlarını verir. Bir operator, onları kullanılabilir kılan şeydir.
Operator olmadan, Kubernetes üzerinde bir OpenClaw örneği dağıtmak on bir kaynağı elle yazmak demektir: Deployment, Service, ConfigMap, PVC, ServiceAccount, Role, RoleBinding, NetworkPolicy, PodDisruptionBudget, Ingress, ServiceMonitor. Bir operator ile tek bir tane:
apiVersion: openclaw.rocks/v1alpha1
kind: OpenClawInstance
metadata:
name: my-agent
spec:
envFrom:
- secretRef:
name: my-api-keys
storage:
persistence:
enabled: true
size: 10Gi
Operator bu custom resource’u izler ve diğer her şeyi oluşturur. Bir kontrol döngüsüdür: sahip olunan herhangi bir kaynaktaki her değişiklikte ve güvenlik ağı olarak en az her beş dakikada bir, istenen durumu gerçek durumla karşılaştırır ve farkı uzlaştırır. Birisi bir NetworkPolicy silerse, geri gelir. Bir Deployment saparsa, düzeltilir. Custom resource’u silin ve owner reference’lar temizliği kaskade eder. Yetim Service yok, kalan PVC yok.
Bugün onu açık kaynak yapıyoruz: github.com/OpenClaw-rocks/k8s-operator.
Kontrol listesi değil, varsayılan güvenlik
SecurityScorecard geçen hafta 135.000 OpenClaw örneğini halka açık internete açık buldu. CVE-2026-25253, gateway token sızması yoluyla tek tıklamayla uzaktan kod yürütmeyi gösterdi. Gartner, kuruluşlara tamamen engellemelerini tavsiye etti. ClawHub kayıt defterinde 341 kötü amaçlı skill bulundu.
Bu, 2026’da AI ajanları çalıştırmanın gerçekliğidir. OpenClaw’ın varsayılan yapılandırması kimlik doğrulaması olmadan 0.0.0.0’a bağlanır. Doğru yapılandırılmış bir güvenlik duvarı olmayan bir VPS’te, bir yabancıya sunucunuza shell erişimi vermenize bir port taraması kadar yakınsınız. Güvenlik krizinin tüm kapsamını ve neden bir gateway token’ın bile yeterli olmadığını ele aldık.
Operator tam tersi yaklaşımı benimser. Güvenlik yapısaldır, isteğe bağlı değildir:
- Varsayılan olarak non-root. UID 1000, tüm Linux capabilities kaldırılmış, seccomp
RuntimeDefault. Doğrulama webhook’urunAsUser: 0ayarlayan herhangi bir spec’i reddeder. Root olarak çalıştırmak için webhook’u kaldırmanız gerekirdi. - Varsayılan olarak ağ izolasyonu. Her örnekte default-deny NetworkPolicy. Gelen: yalnızca aynı namespace. Giden: yalnızca DNS ve HTTPS. Açıkça açmadığınız sürece diğer her şey engellenir.
- En az ayrıcalık RBAC. Her örnek, yalnızca kendi ConfigMap’inde
getvewatchveren bir Role’e sahip kendi ServiceAccount’unu alır. Bir ajan, başka bir ajanın sırlarını, yapılandırmasını veya durumunu okuyamaz. - Operator’ün kendisi UID 65532 (distroless nonroot) olarak çalışır, salt okunur kök dosya sistemi, tüm capabilities kaldırılmış, CVE-2023-44487’yi azaltmak için HTTP/2 devre dışı bırakılmış.
Tüm bunlar varsayılan olarak etkindir. Düşünmeden elde edersiniz.
Sidecar olarak tarayıcı otomasyonu
OpenClaw ajanları web’de gezinebilir. Bir VPS’te bu, ajanın yanında bir Chromium işlemi çalıştırmak ve kaynaklar için savaşmamalarını ummak demektir. Operator bunu düzgün bir sidecar olarak yönetir:
spec:
chromium:
enabled: true
resources:
requests:
cpu: "250m"
memory: "512Mi"
limits:
cpu: "1000m"
memory: "2Gi"
Operator, pod’a bir Browserless Chromium konteyneri ekler, 9222 portunda Chrome DevTools Protocol’ü bağlar, ana konteynere CHROMIUM_URL=ws://localhost:9222 enjekte eder ve Chromium’a kendi güvenlik bağlamını (UID 999, capabilities kaldırılmış), kendi kaynak sınırlarını ve bellek destekli /dev/shm verir. İki konteyner pod içinde localhost üzerinden iletişim kurar. Ağ atlaması yok, ekstra Service yok, güvenlik açığı yok. OpenClaw.rocks’ta her örnek için Chromium sidecar’ı varsayılan olarak etkinleştiriyoruz.
Depoda neler var
Go 1.24 ile controller-runtime (Kubebuilder kalıbı) kullanılarak yazılmıştır. Apache 2.0 lisanslı.
- Tam CRD 127 KB OpenAPI doğrulama şemasıyla
- Helm chart (GHCR’de OCI artefaktı olarak da)
- Kustomize overlays tercih edenler için
- Grafana dashboard ve Prometheus alerts
docs/monitoring/dizininde - E2E testleri CI’da Kind üzerinde
- Çoklu mimari build’ler (amd64/arm64)
Operator ayrıca OperatorHub ve Artifact Hub’da listelenmiştir, böylece zaten kullandığınız kayıt defterleri aracılığıyla keşfedip kurabilirsiniz.
Kurulum:
helm install openclaw-operator \
oci://ghcr.io/openclaw-rocks/charts/openclaw-operator \
--namespace openclaw-operator-system \
--create-namespace
Bir ajan dağıtın:
apiVersion: openclaw.rocks/v1alpha1
kind: OpenClawInstance
metadata:
name: my-agent
spec:
config:
raw:
agents:
defaults:
model:
primary: "anthropic/claude-sonnet-4-20250514"
envFrom:
- secretRef:
name: my-api-keys
chromium:
enabled: true
storage:
persistence:
enabled: true
Tarayıcı otomasyonu, kalıcı depolama, ağ izolasyonu, sağlık izleme, otomatik yapılandırma güncellemeleri. Tek kaynak. kubectl apply.
Neden açık kaynak
Bu operator’ü kendi sorunumu çözmek için inşa ettim. OpenClaw ajanları için bir barındırma platformu işletiyorum ve bunun için üretim kalitesinde Kubernetes araçlarına ihtiyacım vardı. Operator, o çalışmanın sonucudur.
Ama aynı zamanda, ölçekte OpenClaw ajanları çalıştıran her şirketin Kubernetes’e varacağına ve benim karşılaştığım aynı sorunlarla karşılaşacağına inanıyorum: güvenlik varsayılanları, NetworkPolicy bağlantıları, Chromium sidecar, yapılandırma güncellemeleri. Ekosistem iki haftalık ve zaten parçalanmış. Herkes bu sorunları bağımsız olarak çözüyor.
Yazılım geliştirme maliyeti sıfıra yaklaşıyor. Ve OpenClaw Yeni Linux’tur yazısında savunduğum gibi, açıklık parçalanmayı önler. Operator benim hendeklerim değil. Eğer bir şey hendekse, bunun gibi çalışmalar paylaşarak inşa ettiğim marka ve güvendir. Ve bu bile dayanmazsa, inşa etmek, yazmak ve paylaşmaktan keyif alıyorum. Bu yeterli. Operator’ü tescilli tutmak, her altyapı ekibinin benim keşfettiğim aynı tuzakları yeniden keşfetmesi anlamına gelirdi. Bu israftır, rekabet avantajı değil.
Bu operator’ü üretimde çalıştırıyoruz. OpenClaw.rocks üzerindeki her ajan bunun üzerinden geçer.
Kod github.com/OpenClaw-rocks/k8s-operator adresindedir. Issue’lar ve PR’lar memnuniyetle karşılanır.
Kendiniz işletmemeyi tercih ediyorsanız, OpenClaw.rocks bunun için var.