首页 新闻 会员 周边 捐助

kubeadm 创建 k8s 高可用集群遇到问题:control plane 的 pod 无法正常启动

0
悬赏园豆:30 [已解决问题] 解决于 2025-09-07 22:54

通过下面的 kubeadm 命令创建 kubernetes 高可用集群

kubeadm init \
    --control-plane-endpoint "kube-api:6443" --upload-certs \
    --pod-network-cidr=10.0.0.0/8

在创建过程中出现 kube-apiserver 健康检查失败的错误

[control-plane-check] kube-apiserver is not healthy after 4m0.004742348s

A control plane component may have crashed or exited when started by the container runtime.
To troubleshoot, list all containers using your preferred container runtimes CLI.
Here is one example how you may list all running Kubernetes containers by using crictl:
	- 'crictl --runtime-endpoint unix:///var/run/containerd/containerd.sock ps -a | grep kube | grep -v pause'
	Once you have found the failing container, you can inspect its logs with:
	- 'crictl --runtime-endpoint unix:///var/run/containerd/containerd.sock logs CONTAINERID'

用下面的命令查看 pod 允许状态

crictl --runtime-endpoint unix:///var/run/containerd/containerd.sock ps -a

发现 control plane 的几个组件的 pod 都无法正常启动

请问如何解决这个问题?

问题补充:

Linux 用的是 Ubuntu 24.04, Kubernetes 版本是 1.33.4,containerd 版本是 1.7.27

dudu的主页 dudu | 高人七级 | 园豆:24779
提问于:2025-08-31 21:11
< >
分享
最佳答案
0

问题与 cgroup driver 有关,在 /etc/containerd/config.toml 中将 SystemdCgroup = flase 改为 SystemdCgroup = true,用 kubeadm init 命令重新创建集群,虽然还是会出现同样的错误,但 control plane 的4个 pod 可以正常启动

Screenshot 2025-09-02 at 07.15.04

dudu | 高人七级 |园豆:24779 | 2025-09-02 07:17

pod 成功启动后还是会出现同样的错误,与阿里云负载均衡有关,负载均衡中的服务器不能通过负载均衡与自己进行通信,详见 https://q.cnblogs.com/q/124859

在 /etc/hosts 中将 control-plane-endpoint 解析到本机地址可解决

127.0.0.1  kube-api
dudu | 园豆:24779 (高人七级) | 2025-09-07 22:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册