阶段:一台控制平面机器,裸机Ubuntu 22.04上的kubernetes 1.24.3,安装了kubeadm,还有一个工作节点。整个设置像魅力一样工作了 4 个月,直到昨天出现了一些未知的无声 kaboom(我实际上不排除突然的硬件问题)
问题:控制平面机器启动后的最初几分钟,netstat 列出了端口 6443,然后就消失了。当它打开时,apiserver 无论如何都没有响应 - 任何对它的连接尝试都会被对等方重置。即 kube-apiserver 端应该有一些严重的问题,但我不知道它对什么不满意。
我检查了一些明显的东西 - ip地址没有改变,足够的磁盘空间,k8s的证书没有过期。所以我需要以kube-apiserver
某种方式检查日志。
至于日志,官方页面说:
在基于 systemd 的系统上,您可能需要使用 journalctl 而不是检查日志文件。
但是......我应该为什么组件运行 journalctl ?如果我为 kubelet ( journalctl -u kubelet
) 运行它,除了“无法连接到:6443”之外,我看不到很多与 apiserver 相关的日志
而且我在运行时看不到任何命名kube-apiserver
或类似的服务,例如systemctl
...此外,没有登录/var/log/
(这并不奇怪,因为它是一个基于 systemd 的系统,但我还是检查了)
我想知道有没有办法检查 apiserver 的日志,还是有一些我遗漏的问题?将不胜感激有关此主题的任何帮助!
在我的集群上,kube-apiserver 在一个 pod 中运行(并且可以通过 kubectl 日志获得日志)。
如果 apiserver 已关闭,我将直接登录到节点并使用容器运行时检查容器日志(例如,crictl 日志或 docker 日志或任何适合您系统的内容)。
例如: