Kubernetes 1.16.x with crun container runtime

crun is a new container runtime written in C from Red Hat. They say it is newer smaller and faster than runc. It still too early to use it on production ,but It ‘s good to try.

  1. Download and install crun ( as of now is version 0.14.1)
  2. Edit cri-o configuration file: /etc/crio/crio.conf

update default_runtime from runc to crum

and add crio.runtime.runtimes.crun

default_runtime = "crun"[crio.runtime.runtimes.crun]
runtime_path = "/usr/bin/crun"
runtime_type = "oci"
runtime_root = "/run/crun"

3. Stop kubelet, stop crio then start crio and start kubelet.

4. Find system log for “Started libcrun container” message.

Aug 16 19:38:10 serv1 systemd[1]: Started crio-conmon-a146aff181fde817f292bd8bb86297ad02e2125a8a823865442a14ab475b51b3.scope.
Aug 16 19:38:10 serv1 systemd[1]: Started libcrun container.
Aug 16 19:38:12 serv1 systemd[1]: Started crio-conmon-1a76af11263f93a28e10d4c8c8be112e399f5205e4392d0730bc5117ac5bc154.scope.
Aug 16 19:38:12 serv1 systemd[1]: Started libcrun container.

and conmon/crun pid

That’s all (for now).

edit1:
As of Apr 2, 2021 crun latest version is 0.19

Very short and simple notes for CKA/SRE and may not works on your environment.