Why does kubeadm not start even after disabling swap?

5/24/2019

I am trying to install kubernetes with kubeadm in my laptop which has Ubuntu 16.04. I have disabled swap, since kubelet does not work with swap on. The command I used is :

swapoff -a

I also commented out the reference to swap in /etc/fstab.

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>    <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=1d343a19-bd75-47a6-899d-7c8bc93e28ff /            ext4 errors=remount-ro 0    1
# swap was on /dev/sda5 during installation
#UUID=d0200036-b211-4e6e-a194-ac2e51dfb27d none         swap sw           0    0

I confirmed swap is turned off by running the following:

free -m
              total        used        free      shared  buff/cache   available
Mem:          15936        2108        9433         954        4394       12465
Swap:             0           0           0

When I start kubeadm, I get the following error:

kubeadm init --pod-network-cidr=10.244.0.0/16
[init] Using Kubernetes version: v1.14.2
[preflight] Running pre-flight checks
    [WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
error execution phase preflight: [preflight] Some fatal errors occurred:
    [ERROR Swap]: running with swap on is not supported. Please disable swap
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`

I also tried restarting my laptop, but I get the same error. What could the reason be?

-- Pravin Kumar
kubeadm
kubectl
kubelet
kubernetes

3 Answers

5/24/2019

first try with sudo

sudo swapoff -a

then check if there's anything swapped

cat /proc/swaps

and

free -h
-- A_Suh
Source: StackOverflow

5/24/2019

you could try kubeadm reset , then kubeadm init --ignore-preflight-errors Swap .

-- Tom
Source: StackOverflow

5/24/2019

below was the root cause.

detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd".

you need to update the docker cgroup driver.

follow the below fix

cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOF

mkdir -p /etc/systemd/system/docker.service.d

# Restart Docker
systemctl daemon-reload
systemctl restart docker
-- P Ekambaram
Source: StackOverflow