我正在使用Kubeadm在笔记本电脑上的Oracle Virtualbox上安装Kubernetes。 一切正常,直到我在Kuberenets Worker节点上运行此命令以与Master节点一起加入 运行
后出现错误sudo kubeadm join 192.168.56.100:6443 --token 0i2osm.vsp2mk63v1ypeyjf --discovery-token-ca-cert-hash sha256:18511321fcc4b622628dd1ad2f56dbdd319bf024740d58127818720828cc7bf0
错误
[preflight] Running pre-flight checks
[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR DirAvailable--etc-kubernetes-manifests]: /etc/kubernetes/manifests is not empty
[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=...`
我尝试手动删除文件,然后再次运行命令,但是它不能解决端口问题。 并且每当我停止在10250端口上运行的kubectl并运行命令时,它都会向“需要启动kubectl发出错误;当我启动kubectl时,它将给出端口10250在使用中的错误”。
它是一种鸡肉和鸡蛋的东西
对我如何解决它有任何看法吗?
答案 0 :(得分:1)
您应该首先尝试
#kubeadm reset
因为您已经有kubernetes,它会出错。
答案 1 :(得分:0)
关于kubeadm reset
:
1)如here所述:
The "reset" command executes the following phases:
preflight Run reset pre-flight checks
update-cluster-status Remove this node from the ClusterStatus object.
remove-etcd-member Remove a local etcd member.
cleanup-node Run cleanup node.
因此,我建议先执行preflight
阶段(通过使用--skip-phases
标志),然后再一起执行所有阶段。
2)执行cleanup-node
阶段时,可以看到正在记录以下步骤:
.
.
[reset] Stopping the kubelet service
[reset] Unmounting mounted directories in "/var/lib/kubelet"
[reset] Deleting contents of config directories: [
/etc/kubernetes/manifests
/etc/kubernetes/pki
]
[reset] Deleting files: [
/etc/kubernetes/admin.conf
/etc/kubernetes/kubelet.conf
/etc/kubernetes/bootstrap-kubelet.conf
/etc/kubernetes/controller-manager.conf
/etc/kubernetes/scheduler.conf
]
.
.
让我们看一下[reset]
条目,看看它们如何解决您提到的4个错误:
A)第一个[reset]
条目将解决Port 10250 is in use
问题(Kubelet正在侦听此端口)。
B)第四个[reset]
条目将修复/etc/kubernetes/manifests is not empty
和/etc/kubernetes/kubelet.conf already exists
的两个错误。
C)然后我们遇到了/etc/kubernetes/pki/ca.crt already exists
错误。
我认为删除[reset]
的第三个/etc/kubernetes/pki
条目应该解决这个问题。
但是,就我而言,当我以详细程度为5运行kubeadm join
时(通过附加--v=5
标志),我遇到以下错误:
I0929 ... checks.go:432] validating if ...
[preflight] Some fatal errors occurred:
[ERROR FileAvailable-etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists
所以我不得不手动删除/etc/kubernetes/pki
文件夹,然后kubeadm join
再次成功。
答案 2 :(得分:0)