"journalctl"은 어디에서 구성을 읽나요?

"journalctl"은 어디에서 구성을 읽나요?

kubelet 1.26.0Ubuntu 22.04컴퓨터 에 설치했습니다 . 이전에는 1.25.2명령을 통해 제거 apt remove kubelet하고 명령을 사용하여 다시 설치한 버전이 있었습니다 apt install kubelet. 구성을 검색 kubelet하여 볼 때마다 버전이 표시되지만 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제대로 작동하지 않는 것으로 의심됩니다. 그런데 이 잘못된 구성이 어디서 왔는지, 어떻게 해결해야 할지 모르겠습니다.

답변1

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>

Kubelet 1.25.2는 시스템에서 스왑을 활성화했기 때문에 분명히 실패합니다.

12월 6일부터 현재까지 스왑을 비활성화하거나 추가하지 않는 한 Kubelet 1.26.0은 동일한 문제로 인해 실패할 것으로 예상됩니다.

failSwapOn: false

kubelet 노드의 구성으로 설정하거나 권장 옵션을 추가하세요.충분히ExecStart오류 메시지가 해당 행에 나타납니다 kubelet.service.


위의 메시지 끝 부분은 >메시지가 터미널에서 수용할 수 있는 것보다 길다는 의미이며 의 오른쪽 화살표 키를 사용하면 메시지의 나머지 부분을 볼 수 있습니다 journalctl. 또한 출력에서 ​​긴 로그 메시지를 복사하기가 더 어려워지는데 journalctl, 이것이 짜증스럽습니다.

나처럼 이 동작이 마음에 들지 않으면 journalctl환경 변수를 설정하는 것이 좋습니다.

export SYSTEMD_LESS=FRXMK

긴 줄 바꿈 허용(쉬운 복사/붙여넣기를 위해)충분히로그 메시지) 전체 긴 로그 메시지를 보려면 오른쪽/왼쪽 스크롤이 필요하지 않습니다.

관련 정보