CentOS 7及以上版本使用systemd作为初始化系统,Kubernetes的核心组件(如kubelet、kube-apiserver、kube-controller-manager等)通常以systemd服务运行。journalctl是查看这些服务日志的专用工具,可通过服务名称过滤安装过程中的日志。
journalctl -u kubelet
若需实时跟踪日志,添加-f参数:journalctl -u kubelet -f
journalctl -u kube-apiserver
journalctl -u kube-controller-manager
journalctl --since "2025-10-01" -u kubelet
或过滤包含“install”关键字的日志(适用于安装过程):journalctl -u kubelet | grep -i 'install'
若Kubernetes组件以Pod形式运行(如某些附加组件或自定义部署),可使用kubectl logs命令查看其日志。需先确认Pod所在命名空间(通常为kube-system)。
kubectl get pods -n kube-system
kube-apiserver-master-node的Pod日志:kubectl logs -n kube-system kube-apiserver-master-node
-f参数实时查看日志输出:kubectl logs -f -n kube-system kube-apiserver-master-node
--previous参数查看其历史日志:kubectl logs --previous -n kube-system kube-apiserver-master-node
部分Kubernetes组件的日志会直接写入系统日志目录,可通过文件路径直接查看:
/var/log/kubelet.log:kubelet组件的日志(工作节点)。/var/log/kube-proxy.log:kube-proxy组件的日志(网络代理)。/var/log/messages:系统通用日志,包含Kubernetes安装过程中的系统级信息(如服务启动失败等)。cat /var/log/kubelet.log
或使用tail查看最新日志:tail -n 100 /var/log/kubelet.log
sudo执行命令(如sudo journalctl -u kubelet)。--log-dir参数指定了自定义路径),需检查组件的启动参数或配置文件。/var/log/pods/或/var/lib/containerd/io.containerd.runtime.v2.task/等目录下,可通过crictl logs命令查看(需安装crictl工具)。