Skip to content
This repository has been archived by the owner on May 12, 2021. It is now read-only.

Latest commit

 

History

History
123 lines (87 loc) · 4.14 KB

snap-installation-guide.md

File metadata and controls

123 lines (87 loc) · 4.14 KB

Kata Containers snap package

Install Kata Containers

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

Configure Kata Containers

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

Integration with non-compatible shim v2 Container Engines

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.

Integration with Docker

/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

Integration with Podman

/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

Integration with shim v2 Container Engines

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.

Remove Kata Containers snap package

Run the following command to remove the Kata Containers snap:

$ sudo snap remove kata-containers