DocsReleasesCommunityGuidesBlog

Installation

With kraft, you can easily leverage Unikraft and manage specialized, high-performance applications at every stage of their lifecycle: from construction to production.

Whilst the target architecture and platform for the unikernel may differ from your host system, kraft itself can be used on the following supported systems to build and package unikernels.

You can quickly and easily install KraftKit using the interactive installer. Simply run the following command to get started:

curl --proto '=https' --tlsv1.2 -sSf https://get.kraftkit.sh | sh

The above script will identify your host and guide you through the installation process, including suggestions for how to receive updates. The installer will try to use your native package manager.

macOS#

The simplest way to install kraft on macOS is via brew:

brew install unikraft/cli/kraftkit

Alternatively, you can download the latest kraft darwin binary for your architecture from: https://github.com/unikraft/kraftkit/releases/latest

Extract the archive to a local directory. For example:

tar -xvf kraftkit_0.6.6_darwin_arm64.tar.gz

Then install the following dependencies for kraft:

brew install gnu-sed make coreutils m4 gawk grep wget qemu socat
# ...for compiling x86_64 Unikernels (needed for KraftCloud)
brew install x86_64-elf-binutils x86_64-elf-gcc
# ...for compiling aarch-64 Unikernels
brew install aarch64-elf-binutils aarch64-elf-gcc

Debian/Ubuntu#

We recommend installing KraftKit using the interactive method described above. However, if you would like to manage your installation directly, we offer APT repositories that can be referenced to access the latest stable version of kraft. To get started, install the following preliminary tools:

sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release

Add Unikraft’s official GPG key:

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.pkg.kraftkit.sh/gpg.key | \
sudo gpg --dearmor -o /etc/apt/keyrings/unikraft.gpg

Use the following command to set up the APT repository:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/unikraft.gpg] https://deb.pkg.kraftkit.sh \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/unikraft.list > /dev/null

Update the APT package index, and install the latest version of kraftkit:

sudo apt-get update
sudo apt-get install kraftkit

Fedora/RHEL#

We recommend installing KraftKit using the interactive method described above. However, you can also directly add our remote RPM package registry entry.

First add new entry for kraftkit in /etc/yum.repos.d/kraftkit.repo:

[kraftkit]
name=KraftKit Repo
baseurl=https://rpm.pkg.kraftkit.sh
enabled=1
gpgcheck=0

Then run:

yum makecache
yum install -y kraftkit

Arch Linux#

We recommend installing KraftKit using the interactive method described above. However, if you wish to install this directly from AUR, you can:

git clone https://aur.archlinux.org/kraftkit-bin.git
cd kraftkit-bin
makepkg -si

Windows#

KraftKit currently does not support an installation natively on Microsoft Windows. However, you can use Windows Subsystem for Linux 2 (WSL2) which supports both running kraft as well as executing Unikraft unikernels.

To get started, please ensure that you have WSL2 set up on your host. We recommend using the Linux distributions Ubuntu or Debian:

wsl --install -d debian

Once complete, restart WSL either by shutting down Windows or by closing all of your WSL terminal windows and issue this command in Powershell, CMD, or Windows Run menu (Windows+R)

wsl.exe --shutdown

Troubleshooting#

Once restarted, simply following the instructions for installing kraft for Debian/Ubuntu from within WSL2.

Once installed, you must ensure that nested-virtualization is enabled. This will allow you to run Unikraft via QEMU for KVM later by editing %UserProfile%\.wslconfig:

[wsl2]
nestedVirtualization=true
[boot]
command = /bin/bash -c 'chown -v root:kvm /dev/kvm && chmod 660 /dev/kvm'

Then add yourself to the kvm group:

sudo usermod -a -G kvm ${USER}

If you have experience with Hyper-V platform APIs, please consider contributing to Unikraft platform drivers as we have an on-going track for this. If you have experience building Go applications for Microsoft Windows, we also have an open issue on KraftKit to support this platform. Thank you!

Build unikernels from within a container#

Please note that a unikernel and a container are not the same. Read more about the differences between Unikraft and existing runtime systems.

You can use KraftKit inside of a container to help you build and package unikernels. We ship a standard build environment called "base" that includes all the tools necessary for building Unikraft unikernrels, including the latest version of kraft.

docker run -it --rm -v `pwd`:/app kraftkit.sh/base:latest

From source#

To build kraft from source, please see our hacking documentation.

See also#

KraftKit can be used in other contexts, such as within a CI/CD pipeline. See additional resources on how to build, package (or run) unikernels:

Edit this page on GitHub

Connect with the community

Feel free to ask questions, report issues, and meet new people.

Join us on Discord!
®

Getting Started

What is a unikernel?Install CLI companion toolUnikraft InternalsRoadmap

© 2024  The Unikraft Authors. All rights reserved. Documentation distributed under CC BY-NC 4.0.