为什么即使在禁用交换后 kubeadm 也无法启动?
Why does kubeadm not start even after disabling swap?
我正在尝试在我的笔记本电脑上安装带有 kubeadm 的 kubernetes,它有 Ubuntu 16.04。我禁用了交换,因为 kubelet 不能在交换打开时工作。我使用的命令是:
swapoff -a
我还在 /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
我确认交换已被 运行 以下内容关闭:
free -m
total used free shared buff/cache available
Mem: 15936 2108 9433 954 4394 12465
Swap: 0 0 0
当我启动 kubeadm 时,出现以下错误:
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=...`
我也试过重启我的笔记本电脑,但我得到了同样的错误。可能是什么原因?
你可以试试 kubeadm reset
,然后 kubeadm init --ignore-preflight-errors Swap
.
首先尝试使用 sudo
sudo swapoff -a
然后检查是否有任何交换
cat /proc/swaps
和
free -h
下面是根本原因。
检测到 "cgroupfs" 作为 Docker cgroup 驱动程序。推荐的驱动程序是 "systemd".
您需要更新 docker cgroup 驱动程序。
遵循以下修复
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
我正在尝试在我的笔记本电脑上安装带有 kubeadm 的 kubernetes,它有 Ubuntu 16.04。我禁用了交换,因为 kubelet 不能在交换打开时工作。我使用的命令是:
swapoff -a
我还在 /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
我确认交换已被 运行 以下内容关闭:
free -m
total used free shared buff/cache available
Mem: 15936 2108 9433 954 4394 12465
Swap: 0 0 0
当我启动 kubeadm 时,出现以下错误:
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=...`
我也试过重启我的笔记本电脑,但我得到了同样的错误。可能是什么原因?
你可以试试 kubeadm reset
,然后 kubeadm init --ignore-preflight-errors Swap
.
首先尝试使用 sudo
sudo swapoff -a
然后检查是否有任何交换
cat /proc/swaps
和
free -h
下面是根本原因。
检测到 "cgroupfs" 作为 Docker cgroup 驱动程序。推荐的驱动程序是 "systemd".
您需要更新 docker cgroup 驱动程序。
遵循以下修复
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