Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does kubeadm not start even after disabling swap?

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?

like image 289
Pravin Kumar Avatar asked May 24 '19 07:05

Pravin Kumar


2 Answers

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
like image 183
P Ekambaram Avatar answered Sep 29 '22 20:09

P Ekambaram


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

like image 43
Tom Avatar answered Sep 29 '22 18:09

Tom