k8s部署node节点假如master节点出问题

img


我真的试了很多方法都不行,有没有人来帮帮我,master节点init是没问题的就是node有问题

【以下回答由 GPT 生成】

答案:

根据错误信息提示,可以看到问题是由于配置文件的版本不匹配导致的。具体来说,报错信息中出现了"no kind "clusterconfiguration" is registered for version "kubeadm.k8s.io/vlbeta2"",这说明当前集群使用的是kubeadm的vlbeta2版本,而你尝试加入集群的node节点使用的是vlbeta3版本,版本不一致导致了错误。

解决该问题的方法是将node节点的kubeadm版本降级到与master节点一致的版本。以下是具体的解决步骤:

  1. 首先,通过以下命令查看集群master节点的kubeadm版本:

    $ kubeadm version

    得到类似的输出:

    kubeadm version: vX.Y.Z

    记录下master节点的kubeadm版本号。

  2. 在node节点上,查看当前安装的kubeadm版本:

    $ kubeadm version

    得到类似的输出:

    kubeadm version: vX.Y.Z

    如果node节点的kubeadm版本与master节点的版本不一致,则需要将node节点的kubeadm版本降级。

  3. 在node节点上,卸载当前版本的kubeadm:

    $ sudo apt remove kubeadm kubelet kubectl

  4. 安装与master节点相同版本的kubeadm。以vX.Y.Z为例,执行以下命令:

    $ sudo apt update $ sudo apt install kubeadm=X.Y.Z-00 kubelet=X.Y.Z-00 kubectl=X.Y.Z-00

    注意将X.Y.Z替换为与master节点一致的版本号。

  5. 下载与当前安装的kubeadm版本一致的kubelet配置文件。以vX.Y.Z为例,执行以下命令:

    $ curl -LO https://storage.googleapis.com/kubernetes-release/release/vX.Y.Z/bin/linux/amd64/kubelet $ chmod +x kubelet

    注意将X.Y.Z替换为与当前安装的kubeadm版本一致的版本号。

  6. 修改kubelet配置文件,指定与master节点一致的版本号。以vX.Y.Z为例,执行以下命令:

    $ sudo mkdir -p /etc/kubernetes/manifests $ sudo mv kubelet /etc/kubernetes/kubelet.conf $ sudo sed -i 's/--pod-infra-container-image=k8s.gcr.io\/pause:3.4/--pod-infra-container-image=k8s.gcr.io\/pause:3.5/g' /etc/kubernetes/kubelet.conf

    注意将X.Y.Z替换为与master节点一致的版本号。

  7. 重新加载kubelet配置并启动kubelet服务:

    $ sudo systemctl daemon-reload $ sudo systemctl restart kubelet

  8. 最后,再次执行kubeadm join命令尝试加入集群:

    $ sudo kubeadm join 10.3.148.12:6443 --token 773t7g.ta8fyyvOhhk4amgw --discovery-token-ca-cert-hash sha256:48c11b5923eea8df71bf5b433950b7960f61998dfbf1086063f66873c14ab40e

这些步骤应该可以解决你遇到的"no kind "clusterconfiguration" is registered for version "kubeadm.k8s.io/vlbeta2"的问题。如果还有其他问题,请提供更多相关信息。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^