我已经在我的kubelet 1.26.0机器上安装了Ubuntu 22.04。以前我有1.25.2版本,我用apt remove kubelet命令删除它,然后用apt install kubelet命令重新安装它。无论我在哪里搜索kubelet的S配置并查看它,它都会显示1.26.0版本,但是当我运行journalctl -xu kubelet.service时,它会显示以下结果:
Dec 06 22:14:42 a systemd[1]: Started kubelet: The Kubernetes Node Agent.
░░ Subject: A start job for unit kubelet.service has finished successfully
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ A start job for unit kubelet.service has finished successfully.
░░
░░ The job identifier is 11743.
Dec 06 22:14:43 a kubelet[85576]: I1206 22:14:43.254559 85576 server.go:413] "Kubelet version" kubeletVersion="v1.25.4"
Dec 06 22:14:43 a kubelet[85576]: I1206 22:14:43.254699 85576 server.go:415] "Golang settings" GOGC="" GOMAXPROCS="" GOTRACEBACK=""
Dec 06 22:14:43 a kubelet[85576]: I1206 22:14:43.255385 85576 server.go:576] "Standalone mode, no API client"
Dec 06 22:14:43 a kubelet[85576]: I1206 22:14:43.295733 85576 server.go:464] "No api server defined - no events will be sent to API server"
Dec 06 22:14:43 a kubelet[85576]: I1206 22:14:43.295813 85576 server.go:660] "--cgroups-per-qos enabled, but --cgroup-root was not specified. defaulting to /"
Dec 06 22:14:43 a kubelet[85576]: E1206 22:14:43.296299 85576 run.go:74] "command failed" err="failed to run Kubelet: running with swap on is not supported, please disable swap! or set --fail-swa>
Dec 06 22:14:43 a systemd[1]: kubelet.service: Current command vanished from the unit file, execution of the command list won't be resumed.
Dec 06 22:14:43 a systemd[1]: kubelet.service: Main process exited, code=exited, status=1/FAILURE
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ An ExecStart= process belonging to unit kubelet.service has exited.
░░
░░ The process' exit code is 'exited' and its exit status is 1.这表明,"Kubelet version" kubeletVersion="v1.25.4"和我也怀疑配置是否像我预期的那样,因此kubelet不能正常工作。但是我不知道这个错误的配置是从哪里来的,我如何修复它呢?
发布于 2022-12-12 04:34:56
journalctl -xu kubelet.service显示当前存储在系统上的来自kubelet.service的所有记录日志。删除服务不会自动删除它生成的日志条目。
请注意,您正在查看的消息日期为12月6日;如果在该日期尚未安装kubelet 1.26.0,则这些消息是由旧版本生成的,并且尚未从系统日志中过期。如果您在12月6日之后的某个时候安装了较新的kubelet版本,那么一旦您在日记中前进,超过重新安装的时间,您就会看到一个较新的版本。
按空格键或使用journalctl中的向下箭头键查看更多最近的日志,或使用journalctl -xeu kubelet.service立即跳转到清单末尾的最新日志。
journalctl从/etc/systemd/journald.conf读取其配置,但这对您没有多大帮助,因为它只处理日志的存储、日志条目的过期以及将日志消息转发给其他日志服务(如果配置的话)。它通常没有特定于单个服务(如kubelet.service )的设置。
如果您想确切地了解kubelet.service是如何定义的,则应该使用systemctl cat kubelet.service。此命令的优点是,无论服务定义文件位于何处,或者是否在其之上应用了任何覆盖文件,它都会按照systemd的观点列出完整的服务定义。
另外,请注意以下信息:
"command failed" err="failed to run Kubelet: running with swap on is not supported, please disable swap! or set --fail-swa>Kubelet1.25.2显然失败了,因为您在系统上启用了交换。
我希望Kubelet1.26.0也会在同样的问题上失败,除非您在12月6日到现在之间的某个时间点也禁用了交换,或者添加了
failSwapOn: false设置为kubelet节点的配置,或将完整错误消息中推荐的选项添加到kubelet.service的D14行(S)中。
上面消息末尾的>表示该消息的长度超过了您的终端所能容纳的长度,通过在journalctl中使用正确的箭头键,您可以看到消息的其余部分。这也使得从journalctl输出中复制长日志消息变得更加困难,这在我看来是很烦人的。
如果您(像我一样)不喜欢这种journalctl行为,您可能需要设置一个环境变量
export SYSTEMD_LESS=FRXMK允许长行包装(允许简单地复制/粘贴完整的日志消息),而不需要左右滚动查看整个日志消息。
https://unix.stackexchange.com/questions/728136
复制相似问题