<p>I'm using kubeadm <code>1.15.3</code>, docker-ce <code>18.09</code> on Debian 10 buster <code>5.2.9-2</code>, and seeing errors in <code>journalctl -xe | grep kubelet</code>:</p>

<blockquote>
  <p>server.go:273] failed to run Kubelet: mountpoint for cpu not found</p>
</blockquote>

<p>My <code>/sys/fs/cgroup</code> contains:</p>

<pre><code>-r--r--r--  1 root root 0 Sep  2 18:49 cgroup.controllers
-rw-r--r--  1 root root 0 Sep  2 18:50 cgroup.max.depth
-rw-r--r--  1 root root 0 Sep  2 18:50 cgroup.max.descendants
-rw-r--r--  1 root root 0 Sep  2 18:49 cgroup.procs
-r--r--r--  1 root root 0 Sep  2 18:50 cgroup.stat
-rw-r--r--  1 root root 0 Sep  2 18:49 cgroup.subtree_control
-rw-r--r--  1 root root 0 Sep  2 18:50 cgroup.threads
-rw-r--r--  1 root root 0 Sep  2 18:50 cpu.pressure
-r--r--r--  1 root root 0 Sep  2 18:50 cpuset.cpus.effective
-r--r--r--  1 root root 0 Sep  2 18:50 cpuset.mems.effective
drwxr-xr-x  2 root root 0 Sep  2 18:49 init.scope
-rw-r--r--  1 root root 0 Sep  2 18:50 io.pressure
-rw-r--r--  1 root root 0 Sep  2 18:50 memory.pressure
drwxr-xr-x 20 root root 0 Sep  2 18:49 system.slice
drwxr-xr-x  2 root root 0 Sep  2 18:49 user.slice
</code></pre>

<p><code>docker.service</code> is running okay and has <code>/etc/docker/daemon.json</code>:</p>

<pre><code>{
  "exec-opts": [
    "native.cgroupdriver=systemd"
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
</code></pre>

<p>The kubeadm docs say if using docker the cgroup driver will be autodetected, but I tried supplying it anyway for good measure - no change.</p>

<p>With <code>mount</code> or <code>cgroupfs-mount</code>:</p>

<pre><code>$ mount -t cgroup -o all cgroup /sys/fs/cgroup
mount: /sys/fs/cgroup: cgroup already mounted on /sys/fs/cgroup/cpuset.
$ cgroupfs-mount
mount: /sys/fs/cgroup/cpu: cgroup already mounted on /sys/fs/cgroup/cpuset.
mount: /sys/fs/cgroup/blkio: cgroup already mounted on /sys/fs/cgroup/cpuset.
mount: /sys/fs/cgroup/memory: cgroup already mounted on /sys/fs/cgroup/cpuset.
mount: /sys/fs/cgroup/pids: cgroup already mounted on /sys/fs/cgroup/cpuset.
</code></pre>

<p>Is the problem that it's at <code>cpuset</code> rather than <code>cpu</code>? I tried to create a symlink, but root does not have write permission for <code>/sys/fs/cgroup</code>. (Presumably I can change it, but I took that as enough warning not to meddle.)</p>

<p>How can let kubelet find my CPU cgroup mount?</p>

<p>I would say that something very weird with your <code>docker-ce</code> installation and not <code>kubelet</code>. You are looking into the right direction showing mapping problem.</p>

<p>I have tried 3 different <code>docker</code> versions on both <a href="https://cloud.google.com/" rel="nofollow noreferrer">GCP</a> and <a href="https://console.aws.amazon.com/" rel="nofollow noreferrer">AWS</a> environments instances.
What I have noticed comparing our results - you have wrong folder structure under <code>/sys/fs/cgroup</code>. Pay attention that I have much more permissions in <code>/sys/fs/cgroup</code> comparing to your output. This is how my results looks like:</p>

<pre><code>root@instance-3:~# docker version
Client: Docker Engine - Community
 Version:           19.03.1
 API version:       1.39 (downgraded from 1.40)
 Go version:        go1.12.5
 Git commit:        74b1e89
 Built:             Thu Jul 25 21:21:24 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.1
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.6
  Git commit:       4c52b90
  Built:            Wed Jan  9 19:02:44 2019
  OS/Arch:          linux/amd64
  Experimental:     false


root@instance-3:~# ls -la /sys/fs/cgroup
total 0
drwxr-xr-x 14 root root 360 Sep  3 11:30 .
drwxr-xr-x  6 root root   0 Sep  3 11:30 ..
dr-xr-xr-x  5 root root   0 Sep  3 11:30 blkio
lrwxrwxrwx  1 root root  11 Sep  3 11:30 cpu -&gt; cpu,cpuacct
dr-xr-xr-x  5 root root   0 Sep  3 11:30 cpu,cpuacct
lrwxrwxrwx  1 root root  11 Sep  3 11:30 cpuacct -&gt; cpu,cpuacct
dr-xr-xr-x  2 root root   0 Sep  3 11:30 cpuset
dr-xr-xr-x  5 root root   0 Sep  3 11:30 devices
dr-xr-xr-x  2 root root   0 Sep  3 11:30 freezer
dr-xr-xr-x  5 root root   0 Sep  3 11:30 memory
lrwxrwxrwx  1 root root  16 Sep  3 11:30 net_cls -&gt; net_cls,net_prio
dr-xr-xr-x  2 root root   0 Sep  3 11:30 net_cls,net_prio
lrwxrwxrwx  1 root root  16 Sep  3 11:30 net_prio -&gt; net_cls,net_prio
dr-xr-xr-x  2 root root   0 Sep  3 11:30 perf_event
dr-xr-xr-x  5 root root   0 Sep  3 11:30 pids
dr-xr-xr-x  2 root root   0 Sep  3 11:30 rdma
dr-xr-xr-x  5 root root   0 Sep  3 11:30 systemd
dr-xr-xr-x  5 root root   0 Sep  3 11:30 unified



root@instance-3:~# ls -la /sys/fs/cgroup/unified/
total 0
dr-xr-xr-x  5 root root   0 Sep  3 11:37 .
drwxr-xr-x 14 root root 360 Sep  3 11:30 ..
-r--r--r--  1 root root   0 Sep  3 11:42 cgroup.controllers
-rw-r--r--  1 root root   0 Sep  3 11:42 cgroup.max.depth
-rw-r--r--  1 root root   0 Sep  3 11:42 cgroup.max.descendants
-rw-r--r--  1 root root   0 Sep  3 11:30 cgroup.procs
-r--r--r--  1 root root   0 Sep  3 11:42 cgroup.stat
-rw-r--r--  1 root root   0 Sep  3 11:42 cgroup.subtree_control
-rw-r--r--  1 root root   0 Sep  3 11:42 cgroup.threads
drwxr-xr-x  2 root root   0 Sep  3 11:30 init.scope
drwxr-xr-x 52 root root   0 Sep  3 11:30 system.slice
drwxr-xr-x  3 root root   0 Sep  3 11:30 user.slice
</code></pre>

<p>Encourage you completely  reinstall docker from scratch(or recreate instance and install docker again). That should help.
Let me share with you my <code>docker-ce</code> installation steps:</p>

<pre><code>$ sudo apt update
$ sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
$ sudo apt update
$ apt-cache policy docker-ce
$ sudo apt install docker-ce=5:18.09.1~3-0~debian-buster
</code></pre>

<p>I have also seen a workaroung in <a href="https://github.com/cloudfoundry-incubator/kubo-deployment/issues/346#issuecomment-423246822" rel="nofollow noreferrer">Kubelet: mountpoint for cpu not found</a> issue answer, but also dont have a permission under root to fix it:</p>

<pre><code>mkdir /sys/fs/cgroup/cpu,cpuacct
mount -t cgroup -o cpu,cpuacct none /sys/fs/cgroup/cpu,cpuacct
</code></pre>
