问题现象
在安装部署Kubernetes 1.26版本时,通过kubeadm初始化集群后,发现执行kubectl命令报以下错误:
The connection to the server localhost:8080 was refused – did you specify the right host or port?
查看kubelet状态是否正常,发现无法连接apiserver的6443端口。
进而查看apiserver容器的状态,由于是基于containerd作为容器运行时,此时kubectl不可用的情况下,使用crictl ps -a命令可以查看所有容器的情况。
发现此时kube-apiserver容器已经退出,查看容器日志是否有异常信息。通过日志信息发现是kube-apiserver无法连接etcd的2379端口,那么问题应该是出在etcd了。
此时etcd容器也在不断地重启,查看其日志发现没有错误级别的信息。
但是,其中一行日志信息表示etcd收到了关闭的信号,并不是异常退出的。
解决问题
该问题为未正确设置cgroups导致,在containerd的配置文件/etc/containerd/config.toml中,修改SystemdCgroup配置为true。
重启containerd服务
etcd容器不再重启,其他容器也恢复正常,问题解决。
总结
到此这篇关于k8s集群部署时etcd容器不停重启问题以及处理方法的文章就介绍到这了,更多相关k8s集群部署etcd容器不停重启内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/ldjjbzh626/article/details/128400797