· kaynak Hacker News – Front Page (native)
kube32, ESP32 kartlarda WebAssembly pod'larıyla Kubernetes tarzı orkestrasyon çalıştırıyor
Hacker News'te paylaşılan Apache lisanslı proje kube32, ESP32-S3 mikrodenetleyiciler için Kubernetes uyumlu bir API ve WebAssembly pod runtime'ı uyguluyor; böylece standart kubectl ve k9s ile kart kümeleri yönetilebiliyor.
kube32 adlı açık kaynak proje, ESP32-S3 mikrodenetleyiciler üzerinde Kubernetes uyumlu bir control plane ve WebAssembly pod runtime'ı uyguluyor. Hacker News'in ana sayfasına ulaşan projenin GitHub deposuna göre, kubectl ve k9s gibi standart küme araçları kart filosunu Wi-Fi veya USB serial üzerinden yönetebiliyor; pod'lar ise wasm3 yorumlayıcısı tarafından WebAssembly modülleri olarak çalıştırılıyor.
Tek firmware, iki rol
Her kart aynı imajı yüklüyor. PSRAM'e sahip bir kart control plane görevini üstleniyor ve kendi kubelet'ini de çalıştırırken, PSRAM'i olmayan kartlar worker olarak katılıyor. Projenin donanım şartnamesi control plane için 8 MB flash ve en az 2 MB quad-SPI PSRAM'e sahip bir ESP32-S3 istiyor; referans olarak genel bir devkit belirtilmiş. 8 MB flash taşıyan herhangi bir ESP32-S3 worker olarak görev yapabiliyor; ST7789 ekranı, tuş takımı, hoparlörü ve microSD yuvasıyla M5Stack Cardputer önerilen referans cihaz.
Geniş bir API yüzeyi
Uygulanan Kubernetes API'si; Pod, Node, Namespace, Service, Endpoints, EndpointSlice, Ingress, Deployment, DaemonSet, Job, ConfigMap, Secret, Lease ve Event nesnelerinin yanı sıra metrics'i kapsıyor. Watch stream'leri, Table çıktısı, OpenAPI v3 doğrulaması ve log takibi desteği sayesinde değiştirilmemiş kubectl ve k9s istemcileri küme üzerinde çalışabiliyor.
Sandbox'lanmış WebAssembly olarak pod'lar
Uygulamalar; Rust, C ve AssemblyScript için SDK'lar ve şablonlarla, ya bir istek işleyici ABI'sine (k32_handle) ya da bir giriş noktası ABI'sine (app_main) yönelik olarak oluşturuluyor. Her pod, yapılandırılabilir bellek sınırları ve çağrı başına bir gas bütçesi alıyor; bu da projenin tek bir çağrının ne kadar hesaplama tüketebileceğini sınırlama mekanizması. Yaşam döngüsü semantiği Kubernetes geleneklerini izliyor: Always, OnFailure veya Never restartPolicy seçenekleri, CrashLoopBackOff'ta üstel geri çekilme ve Wasm trap'leri, gas tükenmesi ile bellek aşımı sonlandırmaları için ayrı çıkış kodları.
Donanım erişimi; GPIO pinleri, ADC kanalları, I2C ve UART veriyolları, ST7789 ekran, Cardputer tuş matrisi, I2S hoparlör ve microSD depolamayı kapsayan pod başına bir yetenek (capability) firewall'u üzerinden yürütülüyor.
Ağ, depolama ve rollout'lar
Control plane; servis yönlendirmesinin yanı sıra host ve ön ek kurallarıyla HTTP Ingress, Server-Sent Events stream'leri, gömülü statik varlık paketleri ve pod'lar arası senkron HTTP çağrıları sunuyor. Durum bilgisi, CRC kontrolleriyle günlüklenen bir nesne deposunda ya ham flash bölümünde ya da microSD kartta saklanıyor; kubectl logs --previous beklendiği gibi çalışsın diye persistentVolumeClause tarzı pod volume'ları ve döndürülen log'lar da mevcut. Küme olayları, ESP-NOW ve 7400 numaralı UDP port üzerinden taşınan bir pub/sub köprüsüyle yayılıyor.
İşletimsel ayrıntılar arasında isteğe bağlı bearer-token kimlik doğrulaması, 6443 portunda otomatik, kendinden imzalı ECDSA P-256 TLS ve düğümleri tek tek güncelleyen, imajları SHA-256 ile doğrulayan ve bir düğüm sağlıklı şekilde ayağa kalkmadığında bootloader üzerinden geri dönüş yapan aşamalı firmware rollout'ları yer alıyor.
Simülatör ve Tessera demosu
Aynı kaynaklar ayrıca donanım gerektirmeden çok düğümlü bir küme çalıştıran, macOS ve Linux için bir host simülatörü olan kube32-sim'i ve pod'ları derlemek, denetlemek ve dağıtmak için kube32-cli'yi üretiyor. Projenin vitrin uygulaması Tessera, tek bir Ingress arkasında dört WebAssembly pod'una bölünmüş bir sorun takipçisi: web arayüzü ve arama API'si control plane üzerinde çalışıyor, bir veritabanı pod'u kayıtları worker'ın microSD kartına ekliyor ve bir ekran pod'u Cardputer'ın ekranını ve tuş takımını yönetiyor. Tam dokümantasyon proje sitesinde yayınlanmış; kod Apache 2.0 lisanslı, paket içindeki wasm3 yorumlayıcısı ise MIT lisanslı.
Neden önemli
Mikrodenetleyiciler üzerinde container oluşturmak için işletim sistemi izolasyonu bulunmuyor; kube32 bu yüzden sandbox olarak WebAssembly'e yaslanıyor ve gas ölçümü ile yetenek firewall'u cgroups ile seccomp'un yerini alıyor. Bu ikame, buradaki ilginç mühendislik bahsi: sandbox tutarsa, Kubernetes API'si hobicilerin bir avuç geliştirme kartına kadar ölçeklenen bir yönetim yüzeyine dönüşüyor.
İki şey onu bir merak demosunun ötesine taşıyor. Birincisi, değiştirilmemiş kubectl ve k9s'in 10 dolar sınıfı donanımla çalışabilmesi, Kubernetes'in operasyonel modelinin sensör ve edge cihazı filolarına makul biçimde uzanabileceğine işaret ediyor — bu alanda araçlar genellikle özel yapım olur. İkincisi, destekleyici mekanizma kozmetik değil gerçek: günlükleyen depolama, TLS, geri dönüşlü aşamalı rollout'lar ve kart satın almadan geliştirme yapmayı sağlayan bir host simülatörü. Birilerinin üretim donanımını bu şekilde orkestre edip etmeyeceği görülecek; ancak tanıdık bir API'nin ne kadar esneyebildiğinin kanıtı olarak büyüleyici bir deney.
- #open-source
- #kubernetes
- #webassembly
- #esp32
- #edge-computing
İlgili yazılar
- GitHub Copilot Enterprise eğitim verisi politikası artık private kodu da kapsıyor, mülkiyet endişelerini tetikledi
- VideoLAN, yeni Fransız veri akışı vergisinin kendisine yılda 1 milyon avyodan fazla maliyet çıkaracağını söylüyor
- CUDA 13.4, paylaşımlı Kubernetes iş yükleri için zorunlu kılınabilir GPU bellek sınırları getiriyor