The minimum versions of Linux distributions supported by Kuasar are Ubuntu 22.04 or CentOS 8 or openEuler 23.03.
Please also note that Quark requires a Linux kernel version >= 5.15.
- MicroVM: To launch a microVM-based sandbox, a hypervisor must be installed on the host.
- Quark: To use Quark, please refer to the installation instructions here.
- WasmEdge: To start WebAssembly sandboxes, you need to install WasmEdge. Instructions for installing WasmEdge can be found in install.html.
Kuasar sandboxers are external plugins of containerd, so both containerd and its CRI plugin are required in order to manage the sandboxes and containers.
We offer two ways to interact Kuasar with containerd:
EXPERIMENTAL in containerd 2.0 milestone: If you desire the full experience of Kuasar, please install containerd under kuasar-io organization. Rest assured that our containerd is built based on the official v1.7.0, so there is no need to worry about missing any functionalities.
If the compatibility is a real concern, you need to install official containerd v1.7.0 with an extra kuasar-shim for request forwarding, see here. However, it’s possible that this way may be deprecated in the future as containerd 2.0 evolves.
Since Kuasar is built on top of the Sandbox API, which has already been integrated into the CRI of containerd, it makes sense to experience Kuasar from the CRI level.
crictl is a debug CLI for CRI. To install it, please see here
MicroVMs like Cloud Hypervisor needs a virtiofsd to share the directories on the host. Please refer to virtiofsd guide.
Rust 1.67 or higher version is required to compile Kuasar.
git clone https://github.com/kuasar-io/kuasar.git
cd kuasar make all make install
Launch the sandboxers by the following commands:
- For vmm:
nohup vmm-sandboxer --listen /run/vmm-sandboxer.sock --dir /run/kuasar-vmm &
- For quark:
nohup quark-sandboxer --listen /run/quark-sandboxer.sock --dir /var/lib/kuasar-quark &
- For wasm:
nohup wasm-sandboxer --listen /run/wasm-sandboxer.sock --dir /run/kuasar-wasm &
Since Kuasar is a low-level container runtime, all interactions should be done via CRI in containerd, such as crictl or Kubernetes. We use crictl as examples:
- For vmm and quark, run the following scripts:
./run_example_container.sh vmm or
- For wasm: Wasm container needs its own container image so our script has to build and import the container image at first. Run the following scripts: