所有 kube-system pod 持续崩溃,etcd 收到信号

所有 kube-system pod 持续崩溃,etcd 收到信号

我正在尝试设置本地 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 新手,我想不出其他可能的原因,如果能提供任何提示,我将不胜感激。

系统信息:

  • VM 上的 Debian 11,2 个 CPU,8GB 内存
  • Kubernetes v1.25.0
  • kubeadm、kubectl、kubelet 版本:1.25.0-00,均通过 apt 安装kubeadm 安装文档
  • containerd v1.6.8,安装如下入门指南使用发行版中的二进制文件
    • runc v1.1.4 二进制文件来自GitHub
    • 容器网络插件 v1.1.1 来自GitHub
  • Cgroup systemd,按描述配置这里这里

答案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 上的建议进行操作

相关内容