← На главную

Сэм Роуз создал webernetes — Kubernetes в браузере с помощью LLM

30.06.2026 20:48 · hackernews

Инженер из ngrok Сэм Роуз выпустил webernetes — частичный порт Kubernetes на TypeScript, который запускает кластеры прямо в браузере. За два месяца он сгенерировал почти 100 000 строк кода в 552 коммитах (629 файлов). Полный кластер весит всего ~140 КБ в gzip — это меньше, чем минимальное Go-приложение, скомпилированное в WebAssembly (540 КБ). Собирать настоящий Kubernetes в WASM автор не стал: он вызывает системные API, недоступные в браузере.

Вместо этого webernetes включает порт kubelet, несколько контроллеров (scheduler, namespace controller, kube-proxy, deployment controller), браузерный container runtime по интерфейсу CRI и собственную реализацию CNI для симуляции сети между подами. Образы не тянутся из Docker Hub — их определяют через TypeScript-классы, наследующие BaseImage. Деплои идут через объект Cluster с методами registerImage и apply.

Весь код написан LLM. Чтобы избежать «слопа», Роуз сделал две вещи: вычитал каждую строку и написал сотни тестов. Проблемы с LLM были типичными: они упрощали логику (заменяли LRU-кэш на Map), выдумывали вспомогательные функции и пропускали тесты. Интеграционные тесты (204 штуки) прогоняют одинаковый код одновременно на webernetes и на реальном k3s, используя библиотеку kubernetes-client/javascript. Если баг находится, сначала пишется тест, проходящий на k3s и падающий на webernetes, а потом LLM помогает чинить. Поверх интеграционных лежат 1855 юнит-тестов — прямые порты из Go-кода Kubernetes.

Автор считает, что комбинация ручного ревью + автоматических тестов делает проект не-слопом: LLM не устаёт и пишет быстро, а человек проверяет смысл. Сейчас webernetes не поддерживает ConfigMaps, Secrets, persistent volumes, но в планах расширять функционал по мере создания учебных материалов. За 9 недель разработки ушло около $4,3 млн токенов (в основном кэшированного ввода), последняя неделя с деплой-контроллером обошлась в $1811 по API. Проект открыт, код лежит в репозитории ngrok, автор ждёт пул-реквестов на s.rose@ngrok.com.

Читать оригинал →