【问题标题】:Kubernetes: unable to join a remote master nodeKubernetes:无法加入远程主节点
【发布时间】:2020-08-04 17:04:34
【问题描述】:

您好,我在远程服务器上遇到 kubeadm 连接问题。

我想创建一个多服务器、多节点的 Kubernetes 集群。 我创建了一个 vagrantfile 来创建一个主节点和 N 个工作人员。 它适用于单个服务器。

主虚拟机是一个桥接虚拟机,以便网络上其他可用的虚拟机可以访问它。

我选择 Calico 作为网络提供商。

对于主节点,这就是我所做的: 使用 ansible :

  1. 初始化 Kubeadm。

  2. 安装网络提供商。

  3. 创建连接命令。

对于工作节点:

  1. 我执行join命令加入正在运行的master。

我在一台硬件服务器上成功创建了集群。 我正在尝试在同一 LAN 上的另一台服务器上创建常规工作节点,我成功 ping 到主节点。

使用生成的命令加入主节点。

kubeadm join 192.168.2.50:6443 --token ecqb8f.jffj0hzau45b4ro2   
--ignore-preflight-errors all  
--discovery-token-ca-cert-hash 
sha256:94a0144fe419cfb0cb70b868cd43pbd7a7bf45432b3e586713b995b111bf134b

但它显示了这个错误:

error execution phase preflight: couldn't validate the identity of the API Server: 
could not find a JWS signature in the cluster-info ConfigMap for token ID "ecqb8f"

我在问是否有任何特定的网络配置可以加入远程主节点。

【问题讨论】:

  • 您能否运行kubeadm token list 并检查ecqb8f.jffj0hzau45b4ro2 是否存在于列表中?
  • 在主节点上,kubeadm 令牌列表为空。在工作节点上 ''no such file '' /home/.kube/config'''' 。我应该手动创建令牌?
  • 是的。在 master 上运行 kubeadm token create 并在 join 命令中使用它。或运行kubeadm token create --print-join-command 并使用命令。
  • 谢谢你,它正在工作
  • 好的。我将其发布为答案:)

标签: kubernetes kubeadm


【解决方案1】:

令牌似乎已过期或被删除。您可以通过运行手动创建令牌:

kubeadm token create --print-join-command

使用输出作为连接命令。

【讨论】:

    【解决方案2】:

    如果您看到输出为: " 错误执行阶段预检:无法验证 API 服务器的身份:在集群信息 ConfigMap 中找不到令牌 ID“s1isfw”的 JWS 签名 要查看此错误的堆栈跟踪,请使用 --v=5 或更高版本执行 " 在加入 k8s 集群时在一个节点上。

    原因: 令牌过期时会出现此问题。默认情况下,令牌的 TTL 为 23 小时,因为它们已经生成,无论是在 kubeadm init 完成还是单独生成时。

    在这种情况下,您可以首先检查您用于将worker加入master的令牌是否可以通过master上的命令检索:

    kubeadm 令牌列表

    步骤

    案例 1)。如果您看到上述命令的 NO OUTPUT,那么最好的办法是再次从 master 生成令牌:

    1. 在 master 上执行:kubeadm token create --print-join-command

    2. 如有必要,复制所有内容和结构,并将其作为命令在工作节点上执行。

    3. 检查来自 master 的节点。该工作人员现在应该已加入集群。

    案例 2)。如果您看到带有

    的输出

    令牌、TTL、到期、用法、描述、额外组。

    1. 检查主机条目和节点(主节点和工作节点)之间的 ping。 (防火墙也可能导致这种情况。) 再次在工人身上使用这个令牌。

    或者选择案例 1。

    只是想再添加 1 件事:
    不要使用 --ignore-preflight-errors all

    as nodes(master to work) 命令稍后会显示错误。在我的环境中,我不使用它。

    【讨论】:

      猜你喜欢
      • 2019-07-14
      • 2017-10-23
      • 1970-01-01
      • 2020-09-27
      • 1970-01-01
      • 2020-05-01
      • 2019-07-13
      • 2020-09-02
      • 2023-02-09
      相关资源
      最近更新 更多