Kubernetes' high resource requirements hamper its adoption in constrained environments such as the edge and fog. Its extensible control plane is a significant contributor to this, consisting of long-lived processes called "controllers" that constantly listen for state changes and use resources even when they are not needed. This paper presents a WebAssembly-based framework for running lightweight controllers on-demand, only when they are needed. This framework extends the WebAssembly System Interface (WASI), in order to run Kubernetes controllers as lightweight Wasm modules. The framework runs these Wasm controllers in a modified version of Wasmtime, the reference WebAssembly (Wasm) runtime, that swaps idle controllers to disk and activates them when needed. A thorough evaluation shows this framework achieves a 64% memory reduction compared to traditional container-based controller frameworks.
@article{arxiv.2209.01077,
title = {Adapting Kubernetes controllers to the edge: on-demand control planes using Wasm and WASI},
author = {Merlijn Sebrechts and Tim Ramlot and Sander Borny and Tom Goethals and Bruno Volckaert and Filip De Turck},
journal= {arXiv preprint arXiv:2209.01077},
year = {2022}
}
Comments
Pre-print of article accepted to IEEE CloudNet 2022