温馨提示×

如何查看centos k8s日志

小樊
47
2026-10-06 08:06:37
栏目: 智能运维

在 CentOS 上查看 Kubernetes(k8s)日志,通常分为 集群组件日志、Pod/容器日志 和 系统服务日志 三类。下面按常见场景说明。


一、查看 Pod / 容器日志(最常用)

1. 查看某个 Pod 日志

kubectl logs <pod-name>

指定命名空间:

kubectl logs <pod-name> -n <namespace>

2. 查看上一个容器日志(容器重启过)

kubectl logs <pod-name> --previous

3. 查看多容器 Pod 中某个容器

kubectl logs <pod-name> -c <container-name>

4. 实时查看日志

kubectl logs -f <pod-name>

5. 查看 Deployment 关联的 Pod 日志

kubectl logs deployment/<deployment-name> -n <namespace>

二、查看节点上的容器日志文件(CentOS 文件系统)

如果是 containerd(CentOS 8 / 新版本 k8s):

/var/log/pods/
/var/log/containers/

示例:

ls /var/log/pods/
tail -f /var/log/pods/<namespace>_<pod>_<id>/<container>/0.log

如果是 Docker(老版本):

/var/lib/docker/containers/
journalctl -u docker

三、查看 Kubernetes 系统组件日志

1. kubeadm 安装(static pod)

组件(kube-apiserver、kube-controller-manager、kube-scheduler、etcd)以 Pod 运行:

kubectl logs -n kube-system kube-apiserver-<node>
kubectl logs -n kube-system kube-controller-manager-<node>
kubectl logs -n kube-system kube-scheduler-<node>
kubectl logs -n kube-system etcd-<node>

2. 二进制安装(systemd)

journalctl -u kube-apiserver
journalctl -u kube-controller-manager
journalctl -u kube-scheduler
journalctl -u kubelet -f
journalctl -u etcd

四、kubelet 日志(非常重要)

journalctl -u kubelet -f

或:

less /var/log/messages | grep kubelet

五、节点系统日志(CentOS)

tail -f /var/log/messages
dmesg -T | tail

六、集中式日志方案(生产推荐)

  • EFK:Elasticsearch + Fluentd + Kibana
  • Loki + Grafana
  • Filebeat + ELK

七、常见问题排查示例

Pod 起不来

kubectl describe pod <pod-name> -n <ns>
kubectl logs <pod-name> --previous

节点 NotReady

journalctl -u kubelet
systemctl status kubelet

如果你能告诉我:

  • k8s 安装方式(kubeadm / 二进制 / 云厂商)
  • 容器运行时(Docker / containerd)
  • 具体想查哪类日志(Pod / 节点 / 组件)

我可以给你更精确的命令。

0 踩