Kubernetes主节点Node Kubeadm加入问题

时间:2019-04-19 20:44:06

标签: kubernetes installation virtualbox worker master

我正在使用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在使用中的错误”。

它是一种鸡肉和鸡蛋的东西

对我如何解决它有任何看法吗?

3 个答案:

答案 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)

加入应该在工作节点上执行;)) !!!

enter image description here