Kubernetes:无法加入远程主节点
您好,我在远程服务器上面临kubeadm连接问题 我想创建一个多服务器、多节点的Kubernetes集群。 我创建了一个vagrantfile来创建一个主节点和N个worker。 它在一台服务器上工作 主虚拟机是一个桥接虚拟机,使网络上的其他可用虚拟机可以访问它 我选择Calico作为网络供应商 对于主节点,这是我所做的: 使用ansible:Kubernetes:无法加入远程主节点,kubernetes,kubeadm,Kubernetes,Kubeadm,您好,我在远程服务器上面临kubeadm连接问题 我想创建一个多服务器、多节点的Kubernetes集群。 我创建了一个vagrantfile来创建一个主节点和N个worker。 它在一台服务器上工作 主虚拟机是一个桥接虚拟机,使网络上的其他可用虚拟机可以访问它 我选择Calico作为网络供应商 对于主节点,这是我所做的: 使用ansible: 初始化Kubeadm 安装网络提供商 创建join命令 对于工作节点: 我执行join命令以加入正在运行的主机 我在一台硬件服务器上成功创建了集群。 我
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 create --print-join-command
使用“输出为联接”命令。如果您将输出视为:
"
错误执行阶段预飞行:无法验证API服务器的标识:在令牌ID“s1isfw”的群集信息配置映射中找不到JWS签名
要查看此错误的堆栈跟踪,请使用--v=5或更高值执行
“在加入k8s群集时在节点上
原因:
令牌过期时会出现此问题。默认情况下,令牌的TTL为23小时,因为它们是在kubeadm init完成或单独生成时生成的
在这种情况下,您可以首先检查是否可以通过master上的命令检索用于将工作者加入master的令牌:
kubeadm令牌列表
步骤:
案例1)。如果您没有看到上述命令的输出,那么最好的方法是再次从master生成令牌:
不使用--忽略所有飞行前错误
as节点(master to work)命令稍后将显示错误。在我的环境中,我不使用它。请运行
kubeadm令牌列表
并检查ecqb8f。jffj0hzau45b4ro2
是否存在于列表中?在主节点上,kubeadm令牌列表为空。在工作节点“”上没有此类文件“”/home/.kube/config“”“”。我应该手动创建令牌吗?是的。在主机上运行kubeadm token create
,并在join命令中使用它。或者运行kubeadm-token-create--print-join命令并使用该命令。非常感谢,一切正常。我将此作为答案发布:)