7.3. 为 OpenShift 沙盒容器启用调试日志
作为集群管理员,您可以为 OpenShift 沙盒容器收集更详细的日志级别。您还可以通过更改 KataConfig
CR 中的 logLevel
字段来增强日志记录。这会更改运行 OpenShift 沙盒容器的 worker 节点的 CRI-O 运行时中的 log_level
。
流程
-
将现有
KataConfig
CR 中的logLevel
字段更改为debug
:
$ oc patch kataconfig <name_of_kataconfig_file> --type merge --patch '{"spec":{"logLevel":"debug"}}'
运行此命令时,引用 KataConfig
CR 的名称。这是设置 OpenShift 沙盒容器时用于创建 CR 的名称。
验证
监控
kata-oc
机器配置池,直到UPDATED
字段显示为True
,这意味着所有 worker 节点都已更新:$ oc get mcp kata-oc
输出示例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE kata-oc rendered-kata-oc-169 False True False 3 1 1 0 9h
验证
log_level
是否在 CRI-O 中更新:打开到机器配置池中节点的
oc debug
会话,并运行chroot /host
。$ oc debug node/<node_name>
sh-4.4# chroot /host
验证
crio.conf
文件中的更改:sh-4.4# crio config | egrep 'log_level
输出示例
log_level = "debug"
7.3.1. 查看 OpenShift 沙盒容器的调试日志
集群管理员可以使用 OpenShift 沙盒容器增强的调试日志来排除问题。每个节点的日志会输出到节点日志中。
您可以查看以下 OpenShift 沙盒容器组件的日志:
- Kata 代理
-
Kata runtime (
containerd-shim-kata-v2
) - virtiofsd
QEMU 仅生成警告和错误日志。这些警告和错误会在 Kata 运行时日志和带有额外的 qemuPid
字段的 CRI-O 日志中打印到节点日志。
QEMU 日志示例
Mar 11 11:57:28 openshift-worker-0 kata[2241647]: time="2023-03-11T11:57:28.587116986Z" level=info msg="Start logging QEMU (qemuPid=2241693)" name=containerd-shim-v2 pid=2241647 sandbox=d1d4d68efc35e5ccb4331af73da459c13f46269b512774aa6bde7da34db48987 source=virtcontainers/hypervisor subsystem=qemu Mar 11 11:57:28 openshift-worker-0 kata[2241647]: time="2023-03-11T11:57:28.607339014Z" level=error msg="qemu-kvm: -machine q35,accel=kvm,kernel_irqchip=split,foo: Expected '=' after parameter 'foo'" name=containerd-shim-v2 pid=2241647 qemuPid=2241693 sandbox=d1d4d68efc35e5ccb4331af73da459c13f46269b512774aa6bde7da34db48987 source=virtcontainers/hypervisor subsystem=qemu Mar 11 11:57:28 openshift-worker-0 kata[2241647]: time="2023-03-11T11:57:28.60890737Z" level=info msg="Stop logging QEMU (qemuPid=2241693)" name=containerd-shim-v2 pid=2241647 sandbox=d1d4d68efc35e5ccb4331af73da459c13f46269b512774aa6bde7da34db48987 source=virtcontainers/hypervisor subsystem=qemu
当 QEMU 启动时,Kata 运行时会在 QEMU 启动时打印 Start logging QEMU
,并在 QEMU 停止时停止日志记录 QEMU
。使用 qemuPid
字段的两个日志消息之间会出现这个错误。QEMU 的实际错误消息以红色显示。
QEMU 客户机的控制台也会输出到节点日志中。您可以查看客户机控制台日志以及 Kata 代理日志。
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
您可以使用具有
cluster-admin
角色的用户访问集群。
流程
要查看 Kata 代理日志和客户机控制台日志,请运行:
$ oc debug node/<nodename> -- journalctl -D /host/var/log/journal -t kata -g “reading guest console”
要查看 kata 运行时日志,请运行:
$ oc debug node/<nodename> -- journalctl -D /host/var/log/journal -t kata
要查看 virtiofsd 日志,请运行:
$ oc debug node/<nodename> -- journalctl -D /host/var/log/journal -t virtiofsd
要查看 QEMU 日志,请运行:
$ oc debug node/<nodename> -- journalctl -D /host/var/log/journal -t kata -g "qemuPid=\d+"