Выдает ошибку, говорящую о неподдерживаемом графическом драйвере: btrfs в SLES при попытке инициализации Kubeadm

Я пытаюсь установить кластер Kuberneties на SLES. Но когда я запускаю Kubeadm init с помощью приведенной ниже команды, он выдает данную ошибку.

Инициализация Кубадм

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 EE для 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/filesystems | grep btrfs

# sudo cat /proc/filesystems | grep btrfs
    btrfs

Отредактировал /etc/docker/daemon.json, как показано ниже.

{
  "storage-driver": "btrfs"
}

Благодарю вас


person Kasun Palihakkara    schedule 21.08.2019    source источник


Ответы (2)


Ошибки в основном возникают, когда необходимые шаги из документации не описаны, поэтому пожалуйста, проверьте, есть ли они у вас:

  • установить докер ЕЕ
  • Для btrfs требуется выделенное блочное устройство (например, физический диск), которое должно быть отформатировано для Btrfs и смонтировано в /var/lib/docker/
  • Поддержка btrfs должна существовать в вашем ядре. Чтобы проверить это, выполните следующую команду: $ sudo cat /proc/filesystems | grep btrfs
  • вам нужна команда btrfs. Если у вас нет этой команды, установите пакет btrfsprogs (для SLES)

Затем выполните шаги из раздела Настройка Docker для использования драйвера хранилища btrfs и сообщите мне, если проблема не устранена.

person Ines    schedule 22.08.2019
comment
Я только что отредактировал вопрос. Я просто следую официальной документации по докеру. Но ошибка все еще выходит. PS: команды brtfs доступны на сервере. - person Kasun Palihakkara; 22.08.2019
comment
Хорошо, также вы можете попробовать использовать «sudo» в команде «kubeadm init». Временным решением этой проблемы является «sudo kubeadm init --skip-preflight-checks». Буду искать другое решение. - person Ines; 22.08.2019
comment
если у кого-то есть проблемы с --skip-preflight-checks, у меня сработала другая команда kubeadm init --ignore-preflight-errors=SystemVerification для kubeadm 1.17.9-0. Если вы используете minikube, используйте вместо него --extra-config=kubeadm.ignore-preflight-errors=SystemVerification. - person khan; 15.09.2020

Вот в чем проблема.

SLES по умолчанию использует btrfs. Драйвер «оверлея» докера не поддерживается этой файловой системой, поэтому разумно использовать etx4 в /var/lib/docker.

Даже если мы скажем Докеру о BTRFS:

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

Kubeadm все равно будет жаловаться.

Так что используйте etx4 в /var/lib/docker.

person Kasun Palihakkara    schedule 23.08.2019