第 3 章 编辑 kubelet 日志级别详细程度和收集日志
要排除节点的一些问题,请根据要跟踪的问题建立 kubelet 的日志级别详细程度。
3.1. 将 kubelet 修改为一次性场景
要在不重启节点的一次性场景中修改 kubelet,因为 machine-config(spec":{"paused":false}})
的变化,允许您在不影响该服务的情况下修改 kubelet,请按照以下步骤执行。
流程
以 debug 模式连接到节点:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc debug node/<node>
$ oc debug node/<node>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow chroot /host
$ chroot /host
或者,也可以 SSH 连接到节点,并成为 root 用户。
建立访问后,检查默认日志级别:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl cat kubelet
$ systemctl cat kubelet
输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/systemd/system/kubelet.service.d/20-logging.conf
# /etc/systemd/system/kubelet.service.d/20-logging.conf [Service] Environment="KUBELET_LOG_LEVEL=2"
定义新的
/etc/systemd/system/kubelet.service.d/30-logging.conf
文件中所需的新详细程度,该文件会覆盖/etc/systemd/system/kubelet.service.d/20-logging.conf
。在本例中,详细程度从2
改为8
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo -e "[Service]\nEnvironment=\"KUBELET_LOG_LEVEL=8\"" > /etc/systemd/system/kubelet.service.d/30-logging.conf
$ echo -e "[Service]\nEnvironment=\"KUBELET_LOG_LEVEL=8\"" > /etc/systemd/system/kubelet.service.d/30-logging.conf
重新载入 systemd 并重启服务:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl daemon-reload
$ systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart kubelet
$ systemctl restart kubelet
收集日志,然后恢复日志级别增加:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rm -f /etc/systemd/system/kubelet.service.d/30-logging.conf
$ rm -f /etc/systemd/system/kubelet.service.d/30-logging.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl daemon-reload
$ systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl restart kubelet
$ systemctl restart kubelet