AKS WASI 노드 풀 지원 종료: 대안과 미래 전략
마이크로소프트가 2025년 1월 말 AKS(Azure Kubernetes Service)에서 WASI(WebAssembly System Interface) 노드 풀에 대한 실험적 지원을 종료한다는 소식은 쿠버네티스 커뮤니티에 적잖은 파장을 일으켰습니다. AKS에서 WASI를 사용하고 있다면 이제 대체 런타임으로의 마이그레이션을 고려해야 합니다. 다행히 마이크로소프트는 WASI의 가능성을 완전히 닫은 것이 아니라, 다른 방식을 통해 웹어셈블리와 쿠버네티스의 시너지를 이어갈 수 있도록 대안을 제시하고 있습니다.
크러슬릿의 한계와 새로운 시작
AKS WASI 노드 풀은 크러슬릿(Krustlet) 프로젝트에 크게 의존했습니다. 크러슬릿은 웹어셈블리 지원 큐블릿을 러스트로 구현한 실험적인 프로젝트였지만, 유지 관리의 어려움으로 인해 더 이상 발전하기 어렵게 되었습니다. 핵심 종속성의 부재는 마이크로소프트가 AKS에서 WASI에 대한 접근 방식을 변경하게 된 주요 원인이었습니다. AKS는 쿠버네티스 생태계를 폭넓게 지원하므로, 마이크로소프트는 자체 플랫폼에서 WASI를 실행하기 위한 새로운 대안을 모색할 수 있었습니다.
스핀큐브: AKS에서 웹어셈블리 함수 실행
첫 번째 대안은 스핀큐브(SpinKube)를 사용하는 것입니다. 스핀큐브는 containerd에 대한 심(shim)을 개발하여 runwasi를 통해 WASI 워크로드를 호스팅할 수 있도록 합니다. 즉, 기존 쿠버네티스 인프라 변경 없이 WASI 코드를 실행할 수 있습니다. 스핀큐브는 WASI 워크로드를 쿠버네티스에서 관리하는 서버리스 컴퓨팅 플랫폼입니다. containerd-shim-spin 툴을 통해 노드는 WASI 런타임을 호스팅하고, 워크로드가 적절히 예약되도록 보장합니다. WASI와 표준 컨테이너를 동시에 실행할 수 있으며, KEDA(Kubernetes Event-driven Autoscaling)와 같은 툴도 활용할 수 있습니다. 마이크로소프트는 스핀큐브를 자사 툴의 대체재로 권장하며, AKS에서 스핀큐브를 사용하는 방법에 대한 지침도 제공합니다.
와즘클라우드: AKS에서 WASI 마이크로서비스 사용
두 번째 대안은 와즘클라우드(wasmCloud)라는 또 다른 CNCF 프로젝트를 사용하는 것입니다. 와즘클라우드는 다양한 구성 요소를 동시에 설치하기 위해 헬름 차트를 사용합니다. 와즘클라우드는 AKS를 관리하기 위해 애저 CLI와 kubectl을 필요로 합니다. 와즘클라우드는 WASI 구성 요소를 설명하고 호출하는 표준 방법을 제공하며, 애플리케이션을 빌드하고 실행하기 위한 구성 요소 모델을 지원하도록 설계되었습니다.
철학적 차이와 선택의 중요성
스핀큐브와 와즘클라우드는 WASI를 다루는 방식에 있어 근본적인 철학적 차이를 보입니다. 와즘클라우드는 본격적인 WASI 기반 애플리케이션을 호스팅하고 마이크로서비스 구성 요소를 조합 및 조율하는 데 중점을 둡니다. 반면, 스핀큐브는 AWS 람다 또는 애저 펑션과 같은 서비스의 대안으로 WASI 기반 함수를 신속하게 출시하고 확장하는 데 초점을 맞춥니다. AKS에서 두 가지 모두 지원하므로 사용자는 필요에 맞는 WASI 플랫폼을 선택할 수 있습니다.
맺음말
AKS에서 WASI 노드 풀 지원 종료는 아쉬운 소식이지만, 웹어셈블리와 쿠버네티스의 미래는 여전히 밝습니다. 스핀큐브와 와즘클라우드와 같은 대안을 통해 AKS에서 WASI 워크로드를 계속 활용할 수 있습니다. 사용자는 자신의 요구 사항과 환경에 가장 적합한 솔루션을 선택하여 웹어셈블리의 잠재력을 최대한 활용할 수 있습니다.