执行 kubeadm join 报错ERROR FileAvailable–etc-kubernetes-kubelet.conf
[root@k8snode2 ~]# kubeadm join apiserver.demo:6443 --token c4nezq.ecv2kg9ok6gsresw --discovery-token-ca-cert-hash sha256:be1a55bea6b5bb5c8810434d3905a9cd0bbc33181862f7ad601346e1ab09572f
[preflight] Running pre-flight checks
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR FileAvailable--etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists
[ERROR FileAvailable--etc-kubernetes-bootstrap-kubelet.conf]: /etc/kubernetes/bootstrap-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=...`
[root@k8snode2 ~]#
这个错误信息表明在加入 Kubernetes 集群时出现了几个问题:
/etc/kubernetes/kubelet.conf 和 /etc/kubernetes/bootstrap-kubelet.conf 文件已经存在。
端口 10250 已经被占用。
/etc/kubernetes/pki/ca.crt 文件已经存在。
解决方案:
1、删除已存在的文件:你可以备份这些文件,然后删除它们,再重新运行 kubeadm join 命令。删除命令示例:
rm /etc/kubernetes/kubelet.conf /etc/kubernetes/bootstrap-kubelet.conf /etc/kubernetes/pki/ca.crt
2、释放端口 10250:查找并终止占用 10250 端口的进程,或者修改 Kubernetes 使用的端口号。你可以使用 netstat 或 lsof 命令来查找占用 10250 端口的进程,然后终止它。例如:
lsof -i :10250
通过 kill 命令终止相关进程。
3、备份已存在的文件:如果这些文件包含了重要信息,你可以备份它们,然后重新运行 kubeadm join 命令。备份命令示例:
mv /etc/kubernetes/kubelet.conf /etc/kubernetes/kubelet.conf.bak
mv /etc/kubernetes/bootstrap-kubelet.conf /etc/kubernetes/bootstrap-kubelet.conf.bak
mv /etc/kubernetes/pki/ca.crt /etc/kubernetes/pki/ca.crt.bak
在解决了上述问题之后,再次尝试运行 kubeadm join 命令应该就可以成功了。