Why does kubeadm not start even after disabling swap?
Asked Answered
D

3

7

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?

Dannie answered 24/5, 2019 at 7:9 Comment(0)
D
6

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
Damarisdamarra answered 24/5, 2019 at 9:36 Comment(1)
This works. Not sure why though (IsDockerSystemdCheck was only a warning and not an error). But why was kubeadm still saying swap was turned on before I did this change? No idea about that.Dannie
F
2

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

Furculum answered 24/5, 2019 at 7:33 Comment(1)
Tried that. But kubelet is not starting. Checked the journactl logs: ` failed to run Kubelet: Running with swap on is not supported, please disable swap! or set --fail-swap-on flag to false `Dannie
W
1

first try with sudo

sudo swapoff -a

then check if there's anything swapped

cat /proc/swaps

and

free -h
Wyeth answered 24/5, 2019 at 8:43 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.