我曾多次遇到过这种情况:
\n我更改了 /etc/kubernetes/manifests/kube-apiserver.yaml 中的某些内容并检查 API 服务器进程。我看到 Docker 容器退出,错误代码为 1。我检查了容器的日志,只有一行内容:
\nShutting down, got signal: Terminated\nRun Code Online (Sandbox Code Playgroud)\n我不知道从哪里开始解决这个问题,因为没有地方开始。在实验室环境中,我只是重新创建集群,但我\xe2\x80\x99m担心这可能会在生产环境中发生。
\n如何对无法像这样启动的 kube-apiserver 进行故障排除(除了代码之外没有退出原因)并且使用 kubeadm 部署并在容器中运行?
\n我也遇到了类似的问题,我的 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)
| 归档时间: |
|
| 查看次数: |
6906 次 |
| 最近记录: |