0

SLES に Kuberneties クラスターをインストールしようとしています。しかし、以下のコマンドを使用して 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"
}

それで、何が間違っているでしょうか?あなたの親切な助けが必要です。

********************************編集**************** ********************

Docker ステータス

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.***.***.***:***

Docker 情報

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 猫 /proc/filesystems | grep btrfs

# sudo cat /proc/filesystems | grep btrfs
    btrfs

以下のように /etc/docker/daemon.json を編集

{
  "storage-driver": "btrfs"
}

ありがとうございました

4

2 に答える 2

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 に答える
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 に答える