Since v1.35 , the kubelet setting failCgroupV1 defaults to true . On a node that still runs cgroup v1, the kubelet refuses to start, so the node goes NotReady and stays there. On a control-plane node it is worse: the kubelet starts the API server and etcd as static pods, so after a reboot they do not come back either. kubeadm warns you first: its SystemVerification preflight check errors on init , join and upgrade once the kubelet is v1.35 or later. Do not skip it with --...