企业网站建设公司哪家好,盘多多百度网盘搜索引擎,长岛网站建设费用,设计教育网站这篇文章也可以在我的博客中查看
今天废话不多说直接解决一个阴间问题
问题
在部署kubernetes后#xff08;执行完kubeadm init后#xff09;#xff0c;执行任何kubectl命令#xff0c;都会报以下错误#xff1a;
The connection to the server xxx.xxx.xxx.xxx:6443…这篇文章也可以在我的博客中查看
今天废话不多说直接解决一个阴间问题
问题
在部署kubernetes后执行完kubeadm init后执行任何kubectl命令都会报以下错误
The connection to the server xxx.xxx.xxx.xxx:6443 was refused - did you specify the right host or port?此后执行kubectl get pods -A 你会看到一些容器在无规律地被摧毁在过一段时间后Api-server直接开摆你无法再连接上Kubernetes直接Connection refused。
环境
如果你目前遇到类似问题而且处于以下环境那本文很可能可以帮你渡过难关
你使用的是Debian系统Debian12/11 我不确定其它系统会不会有相同错误但不妨试试 你使用Kubeadm部署Kubernetes 目前的最新版v1.28 我同样不确定其它的部署方式会不会有相同错误 你使用containerd作为container runtime 如果你是通过Docker官方教程安装的Docker那个教程会连带安装containerd所以如果你印象中没有专门安装过任何container runtime那很可能就是containerd 你找过许多相同错误的解决方案但最后都无法解决问题
原因
简单来说containerd与kubelet使用的cgourp driver版本对不上 Debian安装的conainerd的默认cgroup driver还是v1但是kubelet使用的是v2
但说实话详细的我也不太懂也不太想去懂…… 如果你对具体解释感兴趣不妨查阅以下链接
Why does etcd fail with Debian/bullseye kernel?cgroups-k8s
解决
但要解决这个问题还是比较简单只要指定containerd使用cgroup driver v2就可以
打开containerd配置文件
vi /etc/containerd/config.toml加入以下内容并保存退出
version 2
[plugins][plugins.io.containerd.grpc.v1.cri][plugins.io.containerd.grpc.v1.cri.containerd][plugins.io.containerd.grpc.v1.cri.containerd.runtimes][plugins.io.containerd.grpc.v1.cri.containerd.runtimes.runc]runtime_type io.containerd.runc.v2[plugins.io.containerd.grpc.v1.cri.containerd.runtimes.runc.options]SystemdCgroup true重启containerd
systemctl restart containerd重启kubelet
systemctl restart kubelet结束了哥们这就完事儿了。 真不敢相信被这个问题折磨了将近两天