从节点运行 join 指令报错:xxx already exists;Port xxx is in use

问题场景:

之前join过一次,取消了,再次加入提示:

[root@node1 ~]# kubeadm join 192.168.1.100:6443 --node-name=node1 -v=2 --token xjmviq.6n3egsksc2mkozdf     --discovery-token-ca-cert-hash sha256:5dbadae0514d1710728ba7121bd6cd1e15bab032f1ddf1df807aff6d93e58372
I0421 17:29:11.745836    9166 initconfiguration.go:103] detected and using CRI socket: /var/run/dockershim.sock
[preflight] Running pre-flight checks
...其他输出
I0421 17:29:11.976499    9166 checks.go:432] validating if the connectivity type is via proxy or direct
error execution phase preflight: [preflight] Some fatal errors occurred:
	[ERROR FileAvailable--etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists
	[ERROR Port-10250]: Port 10250 is in use
	[ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher

问题解决:

  • /etc/kubernetes/kubelet.conf 文件已经存在 —— 这通常意味着这个节点之前可能已经被添加到了另一个 Kubernetes 集群中,或者尝试加入集群的操作被中断,留下了配置文件,删除即可
  • /etc/kubernetes/bootstrap-kubelet.conf —— 文件也已经存在。这个文件是节点在初始连接集群时用于自举的配置文件。
  • 端口 10250 正在被使用 —— 在 Kubernetes 中,这个端口通常被 kubelet 使用来与 API 服务器通信。如果它已经被其他进程占用,kubelet 将无法启动。删除/var/lib/kubelet/*和/etc/kubernetes即可。
  • /etc/kubernetes/pki/ca.crt —— 文件已经存在。这表示可能有一个现有的 Kubernetes 集群的证书和密钥信息,删除即可

可以一键删除重新开始:

[root@192 ~]# kubeadm reset

也可以按照提示自己慢慢删除:

[root@node1 ~]# rm -rf /etc/kubernetes/kubelet.conf && rm -rf /etc/kubernetes/pki/ca.crt && sudo systemctl stop kubelet  && sudo rm -rf /var/lib/kubelet/* && sudo systemctl start kubelet

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值