“ kubeadm init”在设置高可用性集群时失败

时间:2019-11-20 15:28:17

标签: docker ubuntu kubernetes ubuntu-18.04

我尝试为Kubernetes设置一个haproxy'd多主节点设置,如[1]中所述。我的网络配置是:

  • haproxy = 192.168.1.213
  • master0 | 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中所述的其他存储库(我知道我在虚拟机上安装了bionic,但是可用的“最新”存储库仍然是xenial )。

我的haproxy已从[3]存储库中以haproxy/bionic,now 2.0.9-1ppa1~bionic amd64 [installed]的形式安装。

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

在尝试设置我的第一个控制平面时,如[4]中所述运行kubeadm init --control-plane-endpoint "haproxy.my.lan:6443" --upload-certs -v=6会导致此错误:

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 个答案:

答案 0 :(得分:1)

虽然找不到合适的解决方案并在github上的原始“ kubeadm”项目中创建了问题,请参见此处:https://github.com/kubernetes/kubeadm/issues/1930

由于该问题中建议的“分类”不可行(Ubuntu几乎已“设置”),因此我最终建立了另一个Docker发行版,如此处所述:https://docs.docker.com/install/linux/docker-ce/ubuntu/,在此之前清除已安装的发行版开始新的设置。

通过kubeadm v19.03.5运行Docker(社区)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集群。

因此,这可以看作是解决方法不是,可以解决我的原始问题!