"journalctl"はどこで設定を読みますか?

kubelet 1.26.0私のUbuntu 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

長い改行を許可する(簡単なコピー/貼り付けのため)十分ログメッセージ)完全な長いログメッセージを表示するには、右/左スクロールは必要ありません。

おすすめ記事