环境说明

服务器:Centos 7
Docker :20.10.12
kubeadm:v1.23.1
Kubernetes:v1.23.1

异常说明

Docker 和 k8s 相关组件都安装完毕后,执行 kubeadm init 初始化主节点时出现问题
执行语句

kubeadm init \
--apiserver-advertise-address=服务器IP \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version=v1.23.1 \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12 

报错异常

[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10248/healthz' failed with error: Get "http://localhost:10248/healthz": dial tcp 127.0.0.1:10248: connect: connection refused.

根据报错后续的提示,可使用 journalctl -xeu kubelet 或者 journalctl -xeu kubelet -l 查看详细错误信息,如果看得不全,可以直接用方向键左右调整错误信息。

这是

[root@k8s-node01 ~]# journalctl -xeu kubelet
Dec 24 20:24:13 k8s-node01 kubelet[9127]: I1224 20:24:13.456712    9127 cni.go:240] "Unable to update cni config" err="no 
Dec 24 20:24:13 k8s-node01 kubelet[9127]: I1224 20:24:13.476156    9127 docker_service.go:264] "Docker Info" dockerInfo=&{
Dec 24 20:24:13 k8s-node01 kubelet[9127]: E1224 20:24:13.476236    9127 server.go:302] "Failed to run kubelet" err="failed
Dec 24 20:24:13 k8s-node01 systemd[1]: kubelet.service: main process exited, code=exited, status=1/FAILURE
Dec 24 20:24:13 k8s-node01 systemd[1]: Unit kubelet.service entered failed state.
Dec 24 20:24:13 k8s-node01 systemd[1]: kubelet.service failed.

向右移动方向键,查看第四行详情,可得

ID:ZYIL:OO24:BWLY:DTTB:TDKT:D3MZ:YGJ4:3ZOU:7DDY:YYPQ:DPWM:ERFV Containers:0 ContainersRunning:0 ContainersPaused:0 Contain
 to run Kubelet: misconfiguration: kubelet cgroup driver: \"systemd\" is different from docker cgroup driver: \"cgroupfs\"

报错原因

其实根据上面的错误信息可知,是因为 k8s 和docker 的 cgroup driver 不一致导致的。
k8s 的是 systemd ,而 docker 是cgroupfs。
可以通过

docker info

查看其中的 Cgroup Driver: 显示的是 systemd 或者 cgroupfs。k8s 默认就是cgroupfs。
具体作用详情,可以参考 linux(centos):配置docker的cgroup driver为systemd

解决方法

修改docker的cgroup driver为systemd
编辑docker的配置文件,如果不存在就创建

vi /etc/docker/daemon.json

修改为内容如下:

{

“exec-opts”: [“native.cgroupdriver=systemd”]

}

然后重启 docker

systemctl restart docker 

重新 kubeadm init …

备注1:以上只是我个人在安装过程中遇到的问题,可能其他情况的原因不大相同,主要是需要查看报错日志详情,仅供参考。也有其他很优秀的文章,可供一并参考。
报错信息相似,但是原因不同的:

备注2:文章内引用内容,链接,如果有侵权,请联系删除

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐