「kubeadm init」が高可用性クラスタの設定に失敗する

「kubeadm init」が高可用性クラスタの設定に失敗する

私はKubernetes用のhaproxyマルチマスターノードセットアップをセットアップしようとしています。[1私のネットワーク構成は次のとおりです。

  • ハプロキシ = 192.168.1.213
  • マスター0|1|2 = 192.168.1.210|211|212
  • worker0|1|2 = 192.168.1.220|221|222 (この時点では興味ありません)

すべてのホストは相互に接続できます(各ノードのDNSが解決されます)。各ノードはUbuntu 18.04.3(LTS)を実行しています。Dockerは次のようにインストールされています。

  • docker.io/bionic-updates、bionic-security、現在 18.09.7-0ubuntu1~18.04.4 amd64 [インストール済み]

現在インストールされているKubernetesパッケージは

  • kubeadm/kubernetes-xenial、現在 1.16.3-00 amd64 [インストール済み]
  • kubectl/kubernetes-xenial、現在 1.16.3-00 amd64 [インストール済み]
  • kubelet/kubernetes-xenial、現在 1.16.3-00 amd64 [インストール済み、自動]
  • kubernetes-cni/kubernetes-xenial、現在 0.7.5-00 amd64 [インストール済み、自動]

[で説明されている追加のリポジトリを使用する2] (自分の VM にインストールしたことは承知していますbionicが、利用可能な「最新」のリポジトリはまだ ですxenial)。

私のhaproxyはhaproxy/bionic,now 2.0.9-1ppa1~bionic amd64 [installed][3] リポジトリ。

global
    log /dev/log        local0
    log /dev/log        local1 notice
    chroot /var/lib/haproxy
    stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners
    stats timeout 30s
    user haproxy
    group haproxy
    daemon

defaults
    log global
    mode http
    retries 2
    timeout connect 3000ms
    timeout client  5000ms
    timeout server  5000ms

frontend kubernetes
    bind        *:6443
    option      tcplog
    mode        tcp
    default_backend kubernetes-master-nodes

backend kubernetes-master-nodes
    mode    tcp
    balance roundrobin
    option  tcp-check
    server  master0 192.168.1.210:6443 check fall 3 rise 2
    server  master1 192.168.1.211:6443 check fall 3 rise 2
    server  master2 192.168.1.212:6443 check fall 3 rise 2

最初のコントロールプレーンをセットアップしようとして、kubeadm init --control-plane-endpoint "haproxy.my.lan:6443" --upload-certs -v=6[4] は次のエラーが発生します:

Error writing Crisocket information for the control-plane node

フルログイン[5]。haproxy の設定に間違いがあるのか​​、それとも docker または kubernetes 自体に何らかの障害があるのか​​、まったくわかりません。

私のは/etc/docker/daemon.jsonこんな感じです:

{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}

答え1

適切な解決策が見つからず、github の元の「kubeadm」プロジェクトで問題が発生した場合は、こちらをご覧ください。https://github.com/kubernetes/kubeadm/issues/1930

この問題で提案されている「トリアージ」は私にとっては実行不可能だったため (Ubuntu はほぼ「設定済み」)、ここで説明されているように、別の Docker ディストリビューションを設定することになりました。Ubuntu 16.04 をインストールします。新しいセットアップを開始する前に、インストールされているディストリビューションを消去します。

v19.03.5kubeadm 経由でDocker (Community) を実行すると、v1.16.3次の警告が表示されます。

[WARNING SystemVerification]: this Docker version is not on the list of validated versions: 19.03.5. Latest validated version: 18.09

結果は非常に良好で、元のドキュメントに記載されているとおりに HA クラスターをセットアップできました。

つまり、これは回避策ない私の元々の問題に対する解決策として!

関連情報