【问题标题】:kubeadm join fails with connection refused on one node onlykubeadm join 失败,仅在一个节点上拒绝连接
【发布时间】:2018-09-08 06:12:21
【问题描述】:

我有一个 Kubernetes 集群,有 1 个 master 和 5 个 worker, 当我尝试加入第 6 个工作节点时,出现此错误:

$ sudo kubeadm join 172.22.20.20:6443 --token xxxxx.yyyyyyyy --discovery-token-ca-cert-hash sha256:zzzzzzz
[preflight] Running pre-flight checks.
    [WARNING FileExisting-crictl]: crictl not found in system path
Suggestion: go get github.com/kubernetes-incubator/cri-tools/cmd/crictl
[discovery] Trying to connect to API Server "172.22.20.20:6443"
[discovery] Created cluster-info discovery client, requesting info from "https://172.22.20.20:6443"
[discovery] Failed to request cluster info, will try again: [Get https://172.22.20.20:6443/api/v1/namespaces/kube-public/configmaps/cluster-info: dial tcp 172.22.20.20:6443: getsockopt: connection refused]

所有工作节点都以完全相同的方式(脚本)在 Ubuntu Server 16.04 上构建。

加入有限制吗? 什么样的日志会有用?

【问题讨论】:

    标签: join kubernetes kubeadm


    【解决方案1】:

    不,加入集群没有限制。

    你得到了dial tcp 172.22.20.20:6443: getsockopt: connection refused,这意味着你的新节点无法连接到在master上工作的Kubernetes API服务器。

    尝试通过curl检查新节点和master之间的网络连接,例如curl https://172.22.20.20:6443,我想你会得到类似的错误。

    所以,检查并修复您的网络设置,应该会有帮助。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题。就我而言,我使用 vagrant 来建立一个专用网络。 启动 kubeadm 时,必须指定主机 IP。

      sudo kubeadm init --pod-network-cidr = 192.168.0.0 / 16 --apiserver-advertise-address = {Static_IP_ADRESS_HOST}
      

      例子:

      sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=172.16.94.10
      

      预期的输出将类似于

      我希望这会有所帮助。

      【讨论】:

      • 这解决了我的问题。但是我在主节点而不是主机中使用了私有 IP。 --apiserver-advertise-address=192.168.0.10
      猜你喜欢
      • 2019-02-07
      • 2018-06-30
      • 2019-07-10
      • 2019-01-06
      • 2019-08-22
      • 2020-08-15
      • 2014-01-07
      • 2021-04-23
      • 1970-01-01
      相关资源
      最近更新 更多