【问题标题】:microk8s join node has no effectmicrok8s加入节点没有效果
【发布时间】:2021-06-02 09:25:58
【问题描述】:

我做了 om 主节点的命令

microk8s add-node
From the node you wish to join to this cluster, run the following:
microk8s join 192.168.0.xxx:25000/token

If the node you are adding is not reachable through the default interface you can use one of the following:
 microk8s join 192.168.0.yyy:25000/token
 microk8s join 192.168.0.xxx:25000/token
 microk8s join 172.17.0.1:25000/token

在另一台机器上我做了

microk8s join 192.168.0.xxx:25000/token
Contacting cluster at 192.168.0.xxx
Waiting for this node to finish joining the cluster. .. .. .. .. .. .. .. .. .. ..

它在没有消息的情况下结束,但在主节点命令输出 microk8s.kubectl get no 不显示此节点仅默认节点

【问题讨论】:

  • 请执行命令 microk8s status 和 microk8s inspect 进行更深入的检查。您是否打开了防火墙(ufw)?如果是,请考虑允许所有节点 ip,例如:ufw allow from xxx.xxx.xxx.xxx(对包括当前节点在内的所有节点重复)?您的实例实例是否同时具有内部网络和公共网络?有时他们会尝试与错误的人交谈。当你将外部接口拿走时,它会正常工作。
  • 现在我将 microk8s 降级到 1.18 并且有节点加入并存在于节点列表中。

标签: kubernetes microk8s


【解决方案1】:

解决方案可能如@Sultan Zhumatayev 所说,将microk8s 降级为1.18,节点将加入并出现在节点列表中。

但是首先要检查问题出在哪里,您可以执行命令:$ microk8s status$ microk8s inspect 进行更深入的检查

另一种可能的解决方案:

1. 如果您打开防火墙 (ufw),请考虑允许所有节点 ip,例如:ufw allow from xxx.xxx.xxx.xxx(对包括当前节点在内的所有节点重复)。如果您的实例实例同时具有内部网络和公共网络,它们可能会尝试与错误的实例通信。去掉外部接口后,就可以正常工作了。看一看:microk8s-join-stuck.

2. 尝试断开节点与集群的连接。在节点上运行以下命令:

$ sudo microk8s leave

然后你可以尝试再次连接它,通过在 master 上运行 add-node:

$ sudo microk8s add-node

然后在节点上再次执行相应的命令:

$ sudo microk8s join

阅读更多:microk8s-join

另请参阅:microk8s

【讨论】:

  • 不,因为我做了检查,有一个关于 iptables 的警告,然后我修复了它,但是节点没有加入,我尝试离开,它是无穷无尽的确实添加了不同 url 的节点没有效果。只有降级有帮助。
  • 我已经提到了您的解决方案作为可能的解决方案,但对于此类问题,点 1/2 也可以提供帮助。我还为社区提供了如何调试和查找问题原因的提示(正确的命令)。
  • 搜遍了 GitHub 和 Stackoverflow,这是最好的答案。专门运行sudo ufw allow from xxx.xxx.xxx.xxx
【解决方案2】:

我在列出 microk8s 节点时也遇到了一些麻烦,对我有用的是在 /etc/hostname 文件中为每个 pie 提供唯一的主机名(安装后所有 pie 中的默认主机名都是 ubuntu)。在我重新启动每个节点后,它们在主节点上显示为 microk8s kubectl get no

似乎 microk8s 使用主机名作为节点的标识符,或者在列表中使用 kubectl get node,而不是他们的 ip,在我的情况下,我更喜欢。至少在我的情况下,我在本地网络中使用静态 ips。

【讨论】:

  • 可以确认,我有一个由 3 个 Raspberry Pi 4 B 组成的集群。在全新的 Ubuntu 安装中,它们都使用了主机名 ubuntu,所以我在每个 Pi 上都使用了 sudo hostnamectl set-hostname <unique hostname>,并给了它们唯一的主机名。现在所有节点都显示在kubectl get nodes
猜你喜欢
  • 2018-08-01
  • 2020-10-03
  • 2022-10-03
  • 2020-09-09
  • 2021-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多