Just install Kata from https://github.com/kata-containers/kata-containers/releases and Containerd and update EnvironmentFile to /etc/systemd/system/containerd.service
[Service]
EnvironmentFile=-/etc/sysconfig/containerd_environment
Add $PATH env variable to /etc/sysconfig/containerd_environment
cat /etc/sysconfig/containerd_environment
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/opt/kata:/opt/kata/bin
Update containerd configuration file /etc/containerd/config.toml
# cat /etc/containerd/config.toml
version = 2
[plugins]
[plugins."io.containerd.grpc.v1.cri"]
[plugins."io.containerd.grpc.v1.cri".containerd]
default_runtime_name = "crun"
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.crun]
runtime_type = "io.containerd.runc.v2"
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.crun.options]
BinaryName = "/usr/local/bin/crun"
SystemdCgroup = true
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.kata]
runtime_type = "io.containerd.kata.v2"
Reload ad restart
$ sudo systemctl daemon-reload
$ sudo systemctl restart containerd.service
Kubectl apply Kata RuntimeClass
apiVersion: node.k8s.io/v1
kind: RuntimeClass
metadata:
name: kata
handler: kata
POC
$ k create deployment nginx-kata --image=nginx:1.22
$ k exec -it deployments/nginx-kata -- uname -a
Linux nginx-kata-59dcf69dd6-krg4q 5.15.0-200.131.27.el8uek.x86_64 #2 SMP Wed Oct 4 22:19:10 PDT 2023 x86_64 GNU/Linux
$ k patch -p '{"spec":{"template":{"spec":{"runtimeClassName":"kata"}}}}' deployments/nginx-kata
deployment.apps/nginx-kata patched
$ k exec -it deployments/nginx-kata -- uname -a
Linux nginx-kata-7fff9fc646-lq5gh 6.1.38 #1 SMP Mon Oct 23 18:02:47 UTC 2023 x86_64 GNU/Linux
That is all