0

我尝试在 SLES 上安装 Kubernetes 集群。但是当我使用以下命令执行 Kubeadm init 时,它会给出错误。

Kubeadm 初始化

kubeadm init  --pod-network-cidr=10.244.0.0/16 --kubernetes-version=1.15.3

错误

error execution phase preflight: [preflight] Some fatal errors occurred:
        [ERROR SystemVerification]: unsupported graph driver: btrfs
    [preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`

在 SLES 中,默认文件系统是 btrfs。因此,根据官方 docker 文档Get Docker EE for SLES 我在 /etc/docker/daemon.json 中添加以下内容

{
  "storage-driver": "btrfs"
}

那么会有什么问题呢?需要你的帮助。

************************************已编辑**************** ************************

码头工人状态

systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/docker.service.d
           └─flannel.conf
   Active: active (running) since Thu 2019-08-22 17:21:59 CST; 1h 21min ago
     Docs: https://docs.docker.com
 Main PID: 3188 (dockerd)
    Tasks: 24
   Memory: 52.9M
      CPU: 1.723s
   CGroup: /system.slice/docker.service
           └─3188 /usr/bin/dockerd --insecure-registry 192.***.***.***:***

码头工人信息

Containers: 2
 Running: 0
 Paused: 0
 Stopped: 2
Images: 1
Server Version: 18.09.4
Storage Driver: btrfs
 Build Version: Btrfs v4.9.1
 Library Version: 102
Logging Driver: json-file
Cgroup Driver: cgroupfs

Docker-ee 版本。

Client:
 Version:           18.09.4
 API version:       1.39
 Go version:        go1.10.6
 Git commit:        c3516c4
 Built:             Wed Mar 27 18:11:35 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Enterprise
 Engine:
  Version:          18.09.4
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       c3516c4
  Built:            Wed Mar 27 18:05:47 2019
  OS/Arch:          linux/amd64
  Experimental:     false

df -Th

/dev/mapper/data_vg-var            btrfs      **G  407M   **G   1% /var
/dev/mapper/data_vg-var_lib        btrfs      **G  232M   **G   1% /var/lib
/dev/mapper/data_vg-var_lib_docker btrfs      **G   17M   **G   1% /var/lib/docker

sudo cat /proc/文件系统 | grep btrfs

# sudo cat /proc/filesystems | grep btrfs
    btrfs

编辑 /etc/docker/daemon.json 如下

{
  "storage-driver": "btrfs"
}

谢谢你

4

2 回答 2

0

Here is the issue.

SLES uses btrfs by default. The docker “overlay” driver is not supported with this file-system, so it is sensible to use etx4 in /var/lib/docker.

Even if we tell Docker about BTRFS :

https://docs.docker.com/storage/storagedriver/btrfs-driver/

Kubeadm will still complain.

So use use etx4 in /var/lib/docker.

于 2019-08-23T08:52:42.620 回答
0

当文档中的先决条件步骤未涵盖时,通常会发生错误,因此请检查您是否拥有所有这些步骤:

  • 安装 Docker EE
  • btrfs 需要专用的块设备(例如物理磁盘),必须为 Btrfs 格式化并挂载到 /var/lib/docker/
  • btrfs 支持必须存在于您的内核中。要检查这一点,请运行以下命令:$ sudo cat /proc/filesystems | grep btrfs
  • 你需要 btrfs 命令。如果您没有此命令,请安装 btrfsprogs 软件包(用于 SLES)

然后请按照配置 Docker 中的步骤使用 btrfs 存储驱动程序部分,如果问题仍然存在,请告诉我。

于 2019-08-22T09:36:07.903 回答