Hi, not sure if this might be relevant, but I had a very similar issue as you’re describing. Here’s a snippet from my notes that helped (K8s v1.29):
To configure container runtime to use systemd cgroup driver, you should edit /etc/containerd/config.toml with runc set. In the documentation you can see the example setting:
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
...
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true
HOWEVER, adding just that caused my containerd to fall in an endless crash-restart loop, preventing me from managing the cluster altogether.
The error message read something along the lines: The connection to the server :6443 was refused - did you specify the right host or port?A solution that helped me prevent that from happening was including the following lines instead:
version = 2
[plugins]
[plugins."io.containerd.grpc.v1.cri"]
[plugins."io.containerd.grpc.v1.cri".containerd]
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
runtime_type = "io.containerd.runc.v2"
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true
After editing this configuration, make sure to run
sudo systemctl restart containerdOnce again, this process needs to be done for all of the nodes.
I can’t guarantee this will work for you, but it did for me.