如何在现有集群中加入工作程序节点?

时间:2019-06-07 11:58:41

标签: kubernetes kubeadm kubelet

在现有集群中加入工作程序节点时遇到一些问题。 请在下面找到我的情况的详细信息 我创建了具有4个主节点和3个工作节点的HA群集。 我删除了1个主节点。被删除的节点现在不是集群的一部分,并且重置成功。 现在将已删除的节点作为工作节点加入现有集群中。

我在命令下射击

kubeadm join --token giify2.4i6n2jmc7v50c8st 192.168.230.207:6443 --discovery-token-ca-cert-hash sha256:dd431e6e19db45672add3ab0f0b711da29f1894231dbeb10d823ad833b2f6e1b 在上面的命令中-192.168.230.207是群集IP

上述命令的结果

[preflight]运行飞行前检查     [WARNING Service-Docker]:未启用docker服务,请运行'systemctl enable docker.service'     [警告IsDockerSystemdCheck]:检测到“ cgroupfs”作为Docker cgroup驱动程序。推荐的驱动程序是“ systemd”。请遵循https://kubernetes.io/docs/setup/cri/上的指南     [WARNING FileExisting-tc]:在系统路径中找不到tc     [WARNING Service-Kubelet]:未启用kubelet服务,请运行'systemctl enable kubelet.service' [预检]正在从集群读取配置... 仅供参考:您可以使用'kubectl -n kube-system get cm kubeadm-config -oyaml'查看此配置文件 错误执行阶段预检:无法获取kubeadm-config ConfigMap:无法获取配置图:获取https://192.168.230.206:6443/api/v1/namespaces/kube-system/configmaps/kubeadm-config:拨打tcp 192.168.230.206:6443:connect:连接被拒绝

已经尝试过的步骤 1.使用kubeadm修补程序将此文件(kubectl -n kube-system获取cm kubeadm-config -oyaml)并删除已删除节点的引用(“ 192.168.230.206”) 2.我们正在使用外部etcd,因此检查成员列表以确认已删除的节点现在不属于etcd。     etcdctl --endpoints = https://cluster-ip --ca-file = / etc / etcd / pki / ca.pem --cert-file = / etc / etcd / pki / client.pem --key-file = / etc /etcd/pki/client-key.pem成员列表

由于我无法加入此节点,有人可以帮我解决此问题吗?

4 个答案:

答案 0 :(得分:0)

解决这些问题并运行加入命令

  1. docker服务未启用,请运行'systemctl enable docker.service'

  2. 将“ cgroupfs”检测为Docker cgroup驱动程序。推荐的驱动程序是“ systemd”。

  3. 未启用kubelet服务,请运行'systemctl enable kubelet.service

答案 1 :(得分:0)

除了@P Ekambaram答案之外,我还假定您可能已经完全处置了先前kubeadm join设置中的所有冗余数据。

  1. 通过工作节点:kubeadm上的kubeadm reset命令删除群集条目;

  2. 擦除工作节点上所有驻留的冗余数据:rm -rf /etc/kubernetes; rm -rf ~/.kube;

  3. 尝试重新加入工作程序节点。

答案 2 :(得分:0)

一个接一个地使用这些说明来完全删除工作节点上的所有旧安装.....

kubeadm reset

systemctl stop kubelet

systemctl stop docker

rm -rf /var/lib/cni/

rm -rf /var/lib/kubelet/*

rm -rf /etc/cni/

ifconfig cni0 down

ifconfig flannel.1 down

ifconfig docker0 down

ip link delete cni0

ip link delete flannel.1

systemctl start docker.service

yum remove kubeadm kubectl kubelet kubernetes-cni kube*

yum autoremove

rm -rf ~/.kube

然后使用重新安装

yum install -y kubelet kubeadm kubectl

reboot

systemctl start docker && systemctl enable docker
systemctl start kubelet && systemctl enable kubelet

然后使用kubeadm连接命令

答案 3 :(得分:0)

kubeadm join 尝试访问 192.168.230.206,而新 IP 为 192.168.230.207。

除了在 cm kubeadm-config 中更改之外,您还可以在此 configmap 中更改您的集群 IP 地址(cluster.server)

kubectl edit cm -n kube-public cluster-info