
그 무거운 쿠버네티스가 브라우저 탭 하나에서 돈다니
서버 운영 좀 해보신 분들은 쿠버네티스(Kubernetes, 줄여서 k8s)라는 이름만 들어도 머리가 지끈거릴 거예요. 컨테이너 수십, 수백 개를 어느 서버에 띄울지 자동으로 정해주고, 하나가 죽으면 알아서 다시 살려주는 '컨테이너 관리 자동화 도구'인데요. 워낙 덩치가 커서 보통은 서버 여러 대를 묶어 클러스터를 만들어야 제대로 돌아가거든요. 그런데 한 개발자가 이 무거운 녀석을 통째로 웹 브라우저 안에 집어넣어 버렸어요. 새 탭 하나 열면 그 안에서 작은 쿠버네티스 클러스터가 살아 움직이는 거죠.
어떻게 가능했을까: 핵심은 WebAssembly
비밀은 WebAssembly(줄여서 WASM)에 있어요. 이게 뭐냐면, 브라우저 안에서 거의 네이티브 프로그램만큼 빠르게 돌아가는 '이식용 바이너리 포맷'이에요. 원래 자바스크립트로는 버거운 무거운 연산을 위해 만들어졌는데, C·C++·Rust·Go 같은 언어로 짠 프로그램을 컴파일해서 웹에서 돌릴 수 있게 해줘요.
마침 쿠버네티스는 Go 언어로 작성돼 있고, Go는 WASM으로 컴파일이 되거든요. 그래서 쿠버네티스를 이루는 핵심 부품들을 하나씩 WASM으로 빌드해 브라우저 메모리 위에 올린 거예요. 쿠버네티스는 크게 보면 이런 부품들로 돼 있어요. 전체 명령을 받는 두뇌 역할의 kube-apiserver, 클러스터 상태를 저장하는 데이터베이스 etcd, 어떤 컨테이너를 어느 노드에 놓을지 정하는 scheduler, '원하는 상태'를 계속 유지시키는 controller-manager, 그리고 실제 노드에서 컨테이너를 돌리는 kubelet. 이걸 전부 브라우저 한 탭 안에서 동작하게 만든 거죠.
진짜 어려운 건 따로 있었어요
단순히 컴파일만 한다고 끝이 아니에요. 브라우저는 보안 때문에 바깥세상과 차단된 모래상자(샌드박스) 안에서 도니까요.
우선 etcd는 원래 디스크에 데이터를 차곡차곡 저장하는데, 브라우저엔 마음대로 쓸 수 있는 디스크가 없죠. 그래서 메모리나 브라우저 내장 저장소(IndexedDB) 위에 가짜 디스크를 흉내 내서 올렸어요. 네트워킹도 골칫거리예요. 부품끼리 TCP로 통신해야 하는데 브라우저엔 진짜 소켓이 없어서, 가상의 네트워크 계층을 만들어 메시지를 주고받게 했고요. 가장 큰 벽은 '진짜 컨테이너'예요. 컨테이너는 리눅스 커널의 namespace와 cgroups 기능에 기대는데, 브라우저 안엔 리눅스 커널 자체가 없잖아요. 그래서 실제 도커 이미지를 띄우는 건 포기하고, 모의 런타임을 두거나 WASM으로 만든 가벼운 워크로드를 대신 돌리는 식으로 우회했어요. 즉 '쿠버네티스의 두뇌와 신경망은 진짜로 돌지만, 실제 컨테이너 실행만큼은 흉내'인 셈이죠.
비슷한 흐름들과 비교해보면
사실 '무거운 인프라를 브라우저로 끌어오기'는 요즘 꽤 뜨거운 흐름이에요. StackBlitz가 만든 WebContainers는 Node.js 환경을 통째로 브라우저에서 돌려서, 설치 없이 npm 프로젝트를 실행하게 해주거든요. container2wasm처럼 리눅스 컨테이너를 WASM으로 감싸 돌리는 프로젝트도 있고요. 쿠버네티스 쪽만 봐도 k3s(초경량 배포판), kind(도커 안에 클러스터 띄우기), minikube(로컬 1대 클러스터)처럼 '가볍게 체험하기'를 목표로 한 도구가 계속 나왔는데, 이번 건 그 끝판왕으로 아예 설치조차 필요 없게 만든 거죠.
한국 개발자에게는?
당장 운영 서버에 쓸 물건은 아니에요. 진짜 컨테이너가 안 돌아가니까요. 하지만 교육과 온보딩 용도로는 정말 쓸모가 많아요. 신입 교육 때 클라우드 비용 한 푼 안 들이고 'kubectl 명령 한번 쳐봐'라고 할 수 있고, 블로그나 강의 자료에 '여기 눌러서 직접 클러스터 만져보세요' 하는 인터랙티브 데모를 붙일 수도 있죠. 또 하나, WASM이 이제 단순한 웹 가속 기술을 넘어 '어디서든 코드를 돌리는 범용 런타임'으로 진화하고 있다는 걸 보여주는 좋은 신호예요. 백엔드, 엣지, 플러그인 시스템 등에서 WASM을 눈여겨볼 이유가 하나 더 생긴 거죠.
한줄 정리
'쿠버네티스를 브라우저에 넣었다'는 건 단순 기행이 아니라, WASM이 인프라 소프트웨어까지 삼킬 수 있다는 증명이에요. 여러분이라면 이런 브라우저 클러스터, 교육 말고 또 어디에 써먹어 보고 싶으세요?
🔗 출처: Hacker News