看起来像带日志的pod日志记录(“ kubectl logs”命令)不适用于kubernetesv1.18.x。有没有办法使v1.18.x起作用?我已经将docker日志记录驱动程序设置为'journald'(使用/etc/docker/daemon.json),并使用了带有pull方法的systemd-journal-gatewayd来聚合历史日志的多节点集群。但是,我对能够使用'kubectl日志'或'kubectl日志-l'app = label'--prefix -f'(适用于群集范围的日志)尾注当前日志非常感兴趣。
# kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.3", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.3", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
# docker version
Client:
Version: 18.03.1-ce
API version: 1.37
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:20:16 2018
OS/Arch: linux/amd64
Experimental: false
Orchestrator: swarm
Server:
Engine:
Version: 18.03.1-ce
API version: 1.37 (minimum version 1.12)
Go version: go1.9.5
Git commit: 9ee9f40
Built: Thu Apr 26 07:23:58 2018
OS/Arch: linux/amd64
Experimental: false
# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
运行“ kubectl日志”会出现以下错误:
# kubectl logs <pod-name>
failed to try resolving symlinks in path "/var/log/pods/default_<pod-name>_xxxx/<container-name>/0.log": lstat /var/log/pods/default_<pod-name>_xxxx/<container-name>/0.log: no such file or directory
答案 0 :(得分:1)
更改日志记录驱动程序后,日志的位置已更改为主机的日志。到目前为止,Docker可以检索日志,但是您必须让kubelet知道更改。
您可以通过将--log-dir=/var/log
传递到kubelet来实现。
添加标志后,您已经运行systemctl daemon-reload
并重新启动kubelet。它必须在所有节点上完成。