云服务器k3s工作节点加入其他k3s控制平面的踩坑之旅
在部署k3s集群时,将本地Windows Server作为控制平面,并使用frpc将控制平面暴露到公网后,尝试让远程云服务器作为工作节点加入控制平面时遇到了一系列挑战。
最初,只暴露了6443端口,尝试使用标准命令加入工作节点时未能成功。经过分析,发现还需要暴露6444、10250、8472(udp/tcp)、10251和10252端口。
在暴露了所有必需端口后,云工作节点又报出了"Node password rejected"的错误,提示节点密码被拒绝或主机名重复。这个问题是由于k3s默认使用节点主机名作为节点ID,而在不同环境下主机名可能重复造成的。
为解决这个问题,需要在控制平面的k3s服务配置中添加"--node-external-ip"参数,指定节点的外部IP地址。但在做了这个修改后,又遇到了6444端口的CA证书错误。
最终,在重启k3s服务后,使用"--with-node-id"参数强制为工作节点指定唯一ID,云工作节点终于成功加入了控制平面集群。
这一过程充分展示了在异构环境下部署k3s集群时可能遇到的各种棘手问题,需要对k3s的工作原理、网络拓扑和证书管理有深入的理解,并具备相当的故障排查能力,才能应对遇到的各种挑战。