【问题标题】:"kubeadm init" fails on setting up Highly Available clusters“kubeadm init”设置高可用集群失败
【发布时间】:2020-03-16 09:11:27
【问题描述】:

我尝试为 Kubernetes 设置一个 haproxy 的多主节点设置,如 [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,now 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 安装为来自 [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.你能指定你使用的是什么 --cgroup-driver 吗? 2. 你有没有尝试过打开 swat 并重置 kubeadm,执行sudo systemctl enable docker、sudo systemctl enable kubelet、systemctl daemon-reload、systemctl restart docker 之类的命令并重置 iptables? 3. 使用--ignore-preflight-errors=all 标志会得到什么输出? 4、你在其他节点上试过kubeadm init吗?
  • 嗨@PjoterS,我将daemon.json 添加到我的原始帖子中,在这里使用“systemd”,2.) 你到底是什么意思? 3.) 错误日志保持不变。 4.) 我尝试在我的第二个主节点上执行此操作 - 与第一个节点上的行为相同。

标签: docker ubuntu kubernetes ubuntu-18.04


【解决方案1】:

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

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

通过 kubeadm v1.16.3 运行 Docker(社区)v19.03.5 时会引发以下警告:

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

结果非常好,我设法设置了我的 ha 集群,如原始文档中所述。

因此,这可以被视为解决方法,不是作为我原来问题的解决方案!

【讨论】:

    猜你喜欢
    • 2018-09-17
    • 2019-05-23
    • 2021-08-08
    • 1970-01-01
    • 2019-11-28
    • 2018-06-30
    • 2018-09-18
    • 2020-10-28
    • 2020-09-09
    相关资源
    最近更新 更多