---
title: "Kubernetes'i Tarayıcıya Taşıdım: LLM'ler ve Test Güdümlü Geliştirme"
url: https://blog.edumints.com/kubernetesi-tarayiciya-tasidim-llmler-ve-test-gudumlu-gelist-hnusy0vy
category: "Web"
date: 2026-07-01T09:06:12.656Z
publisher: Edumints Blog
lang: tr-TR
source_name: "Hacker News"
source_url: https://ngrok.com/blog/i-ported-kubernetes-to-the-browser
---

# Kubernetes'i Tarayıcıya Taşıdım: LLM'ler ve Test Güdümlü Geliştirme

Geçtiğimiz günlerde, Kubernetes'in tarayıcıda çalışmasını sağlayan ve tamamen TypeScript ile yazılan **webernetes** projesini yayınladım. İki ay gibi kısa bir sürede, yapay zeka (LLM) desteğiyle yaklaşık 100.000 satır kod üreterek pod yaşam döngüleri, cluster DNS/network yapısı, Deployment ve ReplicaSet takibi gibi kritik Kubernetes özelliklerini tarayıcıya entegre ettim. Bu macera, hem yapay zeka ile kod yazma hem de yazılım geliştirme metodolojileri açısından değerli pratik çıkarımlar sunuyor.

## Tarayıcıda Bir Küme (Cluster) Kurmak
Geliştiricilerin aklına gelen ilk soru genellikle şudur: *"Kubernetes'i WebAssembly (Wasm) olarak mı derledin?"* Cevap hayır. Basit bir "hello world" Go programı bile Wasm ile derlendiğinde ~540KiB yer kaplıyor. Tüm Kubernetes'i derlemek megabaytlarca veri transferi anlamına gelirdi; üstelik Kubernetes'in tarayıcıda bulunmayan sistem düzeyindeki API çağrıları nedeniyle derleme hataları oluşacaktı. Bunun yerine webernetes projesinde şunları uyguladık:
- Kubelet ikilisinin podları çalıştırmaya ve izlemeye yetecek kadar kısmi bir TypeScript portu.
- Pod scheduler, namespace, kube-proxy ve deployment gibi denetleyicilerin (controllers) portları.
- Pod'ların simüle edilmiş bir ağ üzerinden konuşabilmesi için tarayıcı tabanlı bir CNI (Konteyner Ağ Arayüzü).
- Kubelet'in konteynerleri çalıştırmak için CRI üzerinden konuştuğu tarayıcı tabanlı bir konteyner çalışma zamanı (container runtime).
- Manifestleri uygulamak ve kaynakları izlemek gibi işlemler için webernetes kümesiyle etkileşime geçen bir API.

## Bu Sadece Bir "Çöp Kod" (Slop) Mu?
Webernetes kodunun neredeyse tamamı LLM'ler tarafından üretildi. Bu durum projenin kalitesine dair şüphe uyandırabilir ancak projeyi "çöp kod" olmaktan kurtaran iki temel kural uyguladım:
- **Satır Satır Gözden Geçirme:** Üretilen her satırı orijinal Go kod tabanıyla karşılaştırarak manuel inceledim.
- **Kapsamlı Testler:** Webernetes'in gerçek bir Kubernetes kümesi gibi davrandığından emin olmak için yüzlerce test yazdım.

## LLM'ler Kod Dönüştürürken Neden Hata Yapar?
LLM'ler hızlı kod yazsa da port etme (kod dönüştürme) işlemlerinde sıkça hata yaparlar:
- **Kolaya Kaçma (Kestirme Yollar):** Büyük dosyalarda karmaşık LRU veya expiring cache mekanizmaları yerine basit bir Map kullanarak işlevsel hatalara yol açarlar.
- **Aşırı Yardımseverlik:** Orijinal kodda olmayan gereksiz yardımcı fonksiyonlar uydurup kodun karşılaştırılmasını zorlaştırırlar.
- **Eksik Testler:** Tablo tabanlı test senaryolarını kopyalarken bazı durumları keyfi olarak atlarlar.

## Testler Nasıl Çalışıyor ve Doğrulanıyor?
Kodların davranışsal doğruluğunu ölçmek için aynı test senaryolarını hem webernetes (tarayıcı) hem de k3s (Node.js) üzerinde çalıştırdım. Projede resmi `kubernetes-client/javascript` kütüphanesini kullandım. Bir hata gördüğümde önce k3s üzerinde geçen, webernetes üzerinde kalan bir entegrasyon testi yazdım ve LLM'den bunu düzeltmesini istedim. Proje şu an 204 entegrasyon ve 1855 birim testine sahip.

## İstatistikler ve Token Maliyetleri
Projenin gelişim sürecinde özellikle son hafta Deployment desteğini eklemek için ajans tabanlı yapay zeka ekipleri kullandım. Sadece son haftada 2 milyardan fazla cached input token tüketerek 1.800 doların üzerinde API maliyeti oluşturdum. LLM'ler yorulmadan çalışsa da cached token tüketimlerinin ne kadar büyük boyutlara ulaşabileceğini bu süreçte deneyimledim.

## Yazılım Geliştiriciler İçin Pratik Çıkarımlar
- **Yapay Zekaya Körlemesine Güvenmeyin:** LLM'ler muazzam bir hız sağlar ancak "tat ve teknik anlayış" insanın sorumluluğundadır. İnceleme ve test olmadan LLM kodları sürdürülemez.
- **Entegrasyon Testi Kurtarıcıdır:** Davranışsal doğruluğu kanıtlamak için entegrasyon testleri yazmak, yapay zekanın ürettiği kod kalitesini güvence altına almanın tek yoludur.

[Orijinal kaynağa buradan ulaşabilirsiniz.](https://ngrok.com/blog/i-ported-kubernetes-to-the-browser)

---

**Kaynak:** [Hacker News](https://ngrok.com/blog/i-ported-kubernetes-to-the-browser)
**Yayıncı:** [Edumints Blog](https://blog.edumints.com) · Alıntılarken bu URL'ye bağlantı verin: https://blog.edumints.com/kubernetesi-tarayiciya-tasidim-llmler-ve-test-gudumlu-gelist-hnusy0vy
