我正在尝试设置本地 Kubernetes 集群。首先,我使用 kubeadm 在一个节点上初始化我的控制平面。但是所有 kube-system pod 都会不断崩溃。我通过 crictl 深入研究了 pod 日志,结果发现大多数 pod 崩溃是因为它们无法到达 上的 kube-apiserver <node IP>:6443
。而 kube-apiserver 似乎崩溃了,因为它无法到达 上的 etcd 127.0.0.1: 2379
。而 etcd '崩溃' 是因为它在几分钟后毫无原因地收到了一个 sigterm。在 etcd 容器进程上使用 strace 得到:
--- SIGTERM {si_signo=SIGTERM, si_code=SI_USER, si_pid=0, si_uid=0} ---
我尝试过使用 flanneld、calico 和 weave net 作为 CNI,但都没有成功。Swap 从一开始就被禁用了。防火墙没有任何自定义规则。作为 kubernetes 新手,我想不出其他可能的原因,如果能提供任何提示,我将不胜感激。
系统信息:
答案1
与 etcd 有同样的问题。您是否正在使用--upload-certs
并拥有多主环境?
尝试添加:
GRUB_CMDLINE_LINUX_DEFAULT="systemd.unified_cgroup_hierarchy=0"
转到您的/etc/default/grub
文件然后运行update-grub
,重新启动并查看是否有帮助。
答案2
我遇到了同样的问题,在 ubuntu 22.04.2 LTS 上安装了 HA 集群后,尽管按照完全相同的步骤在 kubernetes 和 containerd 上配置 cgroup,但新加入的节点 pod 不断崩溃,直到我按照 slyke 上的建议进行操作