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工具)。