今天废话不多说直接解决一个阴间问题
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。如果你目前遇到类似问题,而且处于以下环境,那本文很可能可以帮你渡过难关:
containerd
作为container runtime
containerd
containerd
简单来说:containerd
与kubelet
使用的cgourp driver
版本对不上
Debian安装的conainerd
的默认cgroup driver
还是v1,但是kubelet
使用的是v2
但说实话,详细的我也不太懂,也不太想去懂……
如果你对具体解释感兴趣,不妨查阅以下链接:
但要解决这个问题还是比较简单,只要指定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
结束了哥们,这就完事儿了。
真不敢相信被这个问题折磨了将近两天