- Install Kata Containers
- Configure Kata Containers
- Integration with non-compatible shim v2 Container Engines
- Integration with shim v2 Container Engines
- Remove Kata Containers snap package
Kata Containers can be installed in any Linux distribution that supports snapd.
NOTE: From Kata Containers 2.x, only the Containerd Runtime V2 (Shim API) is supported, note that some container engines (
docker
,podman
, etc) may not be able to run Kata Containers 2.x.
Kata Containers 1.x is released through the stable channel while Kata Containers 2.x is available in the candidate channel.
Run the following command to install Kata Containers 1.x:
$ sudo snap install kata-containers --classic
Run the following command to install Kata Containers 2.x:
$ sudo snap install kata-containers --candidate --classic
By default Kata Containers snap image is mounted at /snap/kata-containers
as a
read-only file system, therefore default configuration file can not be edited.
Fortunately Kata Containers supports loading a configuration file from another
path than the default.
$ sudo mkdir -p /etc/kata-containers
$ sudo cp /snap/kata-containers/current/usr/share/defaults/kata-containers/configuration.toml /etc/kata-containers/
$ $EDITOR /etc/kata-containers/configuration.toml
At the time of writing this document, docker
and podman
do not support Kata
Containers 2.x, therefore Kata Containers 1.x must be used instead.
The path to the runtime provided by the Kata Containers 1.x snap package is
/snap/bin/kata-containers.runtime
, it should be used to run Kata Containers 1.x.
/etc/docker/daemon.json
is the configuration file for docker
, use the
following configuration to add a new runtime (kata
) to docker
.
{
"runtimes": {
"kata": {
"path": "/snap/bin/kata-containers.runtime"
}
}
}
Once the above configuration has been applied, use the
following commands to restart docker
and run Kata Containers 1.x.
$ sudo systemctl restart docker
$ docker run -ti --runtime kata busybox sh
/usr/share/containers/containers.conf
is the configuration file for podman
,
add the following configuration in the [engine.runtimes]
section.
kata = [
"/snap/bin/kata-containers.runtime"
]
Once the above configuration has been applied, use the following command to run
Kata Containers 1.x with podman
$ sudo podman run -ti --runtime kata docker.io/library/busybox sh
The Container engine daemon (cri-o
, containerd
, etc) needs to be able to find the
containerd-shim-kata-v2
binary to allow Kata Containers to be created.
Run the following command to create a symbolic link to the shim v2 binary.
$ sudo ln -sf /snap/kata-containers/current/usr/bin/containerd-shim-kata-v2 /usr/local/bin/containerd-shim-kata-v2
Once the symbolic link has been created and the engine daemon configured, io.containerd.kata.v2
can be used as runtime.
Read the following documents to know how to run Kata Containers 2.x with containerd
.
Run the following command to remove the Kata Containers snap:
$ sudo snap remove kata-containers