Project: Kata Containers (Runtime / Container Runtime)
File: containerd-install.md

Note: If Kata Containers and / or containerd are packaged by your distribution, we recommend you install these versions to ensure they are updated when new releases are available. Warning: These instructions install the newest versions of Kata Containers and containerd from binary release packages. These versions may not have been tested with your distribution version. Since your package manager is not being used, it is your responsibility to ensure these packages are kept up-to-date when new versions are released. If you decide to proceed and install a Kata Containers release, you can still check for the latest version of Kata Containers by running `kata-runtime check --only-list-releases`. Note: If your distribution packages Kata Containers, we recommend you install that version. If it does not, or you wish to perform a manual installation, continue with the steps below. Download a release from: https://github.com/kata-containers/kata-containers/releases Note that Kata Containers uses so you should install a version that does not include a dash ("-"), since this indicates a pre-release version. Unpack the downloaded archive. Kata Containers packages use a `/opt/kata/` prefix so either add that to your `PATH`, or create symbolic links for the following commands. The advantage of using symbolic links is that the `systemd(1)` configuration file for containerd will not need to be modified to allow the daemon to find this binary (see the below). | Command | Description | |-|-| | `/opt/kata/bin/containerd-shim-kata-v2` | The main Kata 2.x binary | | `/opt/kata/bin/kata-collect-data.sh` | Data collection script used for | | `/opt/kata/bin/kata-runtime` | Utility command | Check installation by showing version details: ```bash $ kata-runtime --version ``` Note: If your distribution packages containerd, we recommend you install that version. If it does not, or you wish to perform a manual installation, continue with the steps below. Download a release from: https://github.com/containerd/containerd/releases Unpack the downloaded archive. Configure containerd Download the standard `systemd(1)` service file and install to `/etc/systemd/system/`: https://raw.githubusercontent.com/containerd/containerd/main/containerd.service > Notes: > > - You will need to reload the systemd configuration after installing this > file. > > - If you have not created a symbolic link for > `/opt/kata/bin/containerd-shim-kata-v2`, you will need to modify this > file to ensure the containerd daemon's `PATH` contains `/opt/kata/`. > See the `Environment=` command in `systemd.exec(5)` for further > details. Add the Kata Containers configuration to the containerd configuration file: ```toml [plugins] [plugins."io.containerd.grpc.v1.cri"] [plugins."io.containerd.grpc.v1.cri".containerd] defaultruntimename = "kata" [plugins."io.containerd.grpc.v1.cri".containerd.runtimes] [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.kata] runtime_type = "io.containerd.kata.v2" ``` > Note: > > The containerd daemon needs to be able to find the > `containerd-shim-kata-v2` binary to allow Kata Containers to be created. Start the containerd service. You are now ready to run Kata Containers. You can perform a simple test by running the following commands: ```bash $ image="docker.io/library/busybox:latest" $ sudo ctr image pull "$image" $ sudo ctr run --runtime "io.containerd.kata.v2" --rm -t "$image" test-kata uname -r ``` The last command above shows details of the kernel version running inside the container, which will likely be different to the host kernel version.