Kube-apiserver Docker 关闭,收到信号:终止

use*_*045 1 docker kubernetes

我曾多次遇到过这种情况:

\n

我更改了 /etc/kubernetes/manifests/kube-apiserver.yaml 中的某些内容并检查 API 服务器进程。我看到 Docker 容器退出,错误代码为 1。我检查了容器的日志,只有一行内容:

\n
Shutting down, got signal: Terminated\n
Run Code Online (Sandbox Code Playgroud)\n

我不知道从哪里开始解决这个问题,因为没有地方开始。在实验室环境中,我只是重新创建集群,但我\xe2\x80\x99m担心这可能会在生产环境中发生。

\n

如何对无法像这样启动的 kube-apiserver 进行故障排除(除了代码之外没有退出原因)并且使用 kubeadm 部署并在容器中运行?

\n

Jul*_*nCC 5

我也遇到了类似的问题,我的 kube 系统的 Pod 被随机终止,导致集群无法启动。

我在这里找到了解决方案:https://discuss.kubernetes.io/t/why-does-etcd-fail-with-debian-bullseye-kernel/19696

TLDR:这是一个 cgroup 驱动程序/版本问题。Kubelet 很难弄清楚什么正在运行,什么应该运行,并且正在杀死我的合法 Pod。以下配置修复了这个问题:

# Content of file /etc/containerd/config.toml
version = 2
[plugins]
  [plugins."io.containerd.grpc.v1.cri"]
   [plugins."io.containerd.grpc.v1.cri".containerd]
      [plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
        [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
          runtime_type = "io.containerd.runc.v2"
          [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
            SystemdCgroup = true
Run Code Online (Sandbox Code Playgroud)