7.3. OpenShift 샌드박스 컨테이너에 대한 디버그 로그 활성화

클러스터 관리자는 OpenShift 샌드박스 컨테이너에 대한 보다 자세한 로그 수준을 수집할 수 있습니다. KataConfig CR에서 logLevel 필드를 변경하여 로깅을 개선할 수도 있습니다. 이렇게 하면 OpenShift 샌드박스 컨테이너를 실행하는 작업자 노드의 CRI-O 런타임의 log_level 이 변경됩니다.

절차

  1. 기존 KataConfig CR의 logLevel 필드를 debug 로 변경합니다.
$ oc patch kataconfig <name_of_kataconfig_file> --type merge --patch '{"spec":{"logLevel":"debug"}}'
참고

이 명령을 실행하는 경우 KataConfig CR의 이름을 참조합니다. OpenShift 샌드박스 컨테이너를 설정할 때 CR을 생성하는 데 사용한 이름입니다.

검증

  1. UPDATED 필드가 True 로 표시될 때까지 kata-oc 머신 구성 풀을 모니터링합니다. 즉, 모든 작업자 노드가 업데이트됩니다.

    $ 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

  2. log_level 이 CRI-O에서 업데이트되었는지 확인합니다.

    1. 머신 구성 풀의 노드에 oc debug 세션을 열고 chroot /host를 실행합니다.

      $ oc debug node/<node_name>
      sh-4.4# chroot /host
    2. crio.conf 파일의 변경 사항을 확인합니다.

      sh-4.4# crio config | egrep 'log_level

      출력 예

      log_level = "debug"

7.3.1. OpenShift 샌드박스 컨테이너에 대한 디버그 로그 보기

클러스터 관리자는 OpenShift 샌드박스 컨테이너의 향상된 디버그 로그를 사용하여 문제를 해결할 수 있습니다. 각 노드의 로그가 노드 저널에 출력됩니다.

다음 OpenShift 샌드박스 컨테이너 구성 요소의 로그를 확인할 수 있습니다.

  • Kata 에이전트
  • Kata 런타임 (containerd-shim-kata-v2)
  • virtiofsd

QEMU는 경고 및 오류 로그만 생성합니다. 이러한 경고 및 오류는 추가 qemuPid 필드를 사용하여 Kata 런타임 로그와 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

Kata 런타임은 QEMU가 시작될 때 로깅 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+"