一、Kubernetes里有哪些日志和事件
常见信息来源包括:
- 容器标准输出日志
- Pod 事件
- Deployment、ReplicaSet 等资源事件
- kubelet 日志
- 容器运行时日志
- Ingress Controller 日志
- 集中式日志系统中的业务日志
这些信息分别对应不同排查层级。
二、kubectl logs适合看什么
kubectl logs 主要用于查看容器标准输出和错误输出。它适合排查:
- 应用启动报错
- 接口异常日志
- 业务异常堆栈
- 容器运行过程中的错误输出
如果 Pod 里有多个容器,需要指定具体容器。如果容器刚刚重启过,还要注意查看上一次容器日志,避免只看到重启后的新日志。
三、事件和日志有什么区别
日志更多来自应用或组件输出,事件更多来自 Kubernetes 对资源状态变化的记录。
例如:
- 镜像拉取失败
- 调度失败
- PVC 未绑定
- 探针检查失败
- Pod 被驱逐
这些问题通常在事件中更容易第一时间看到。因此排障时,不要只看日志,也要看 describe 输出中的 Events。

图1:Kubernetes可观测性体系
四、Pod启动失败怎么查看
Pod 启动失败时,可以按这个顺序看:
- Pod 当前状态
- Pod 事件
- 容器日志
- 上一次容器日志
- 配置、镜像、Secret 和 PVC 依赖
如果是 ImagePullBackOff,重点看镜像地址和仓库凭证;如果是 CrashLoopBackOff,重点看应用日志、启动配置和资源限制。
五、Service访问异常看哪些日志
Service 访问异常不一定能在应用日志中看到。还需要检查:
- Service selector 是否匹配 Pod
- Endpoints 是否存在
- 后端 Pod 是否 Ready
- Ingress Controller 日志
- 网络策略是否阻断
- DNS 是否解析正常
如果请求根本没有到达业务 Pod,应用日志里可能没有任何记录。
六、为什么需要集中式日志系统
kubectl logs 适合临时排查,但不适合长期分析和跨服务追踪。生产环境通常需要集中式日志系统,把不同节点、不同 Pod、不同命名空间的日志统一采集、索引和检索。
集中式日志系统的价值包括:
- 保留历史日志
- 支持按应用、环境、Trace ID 查询
- 便于跨服务排障
- 支持告警和审计
- 避免 Pod 删除后日志丢失
这也是 Kubernetes 可观测性建设的重要部分。
七、日志排查常见误区
常见误区包括:
- 只看当前日志,不看上一次容器日志
- 只看应用日志,不看事件
- Pod 删除后才发现没有集中式日志
- 不按 Namespace 和标签过滤
- 没有统一日志字段和 Trace ID
这些问题会让排障效率大幅降低。
结语
Kubernetes日志怎么查看,不只是掌握 kubectl logs 一个命令,而是理解日志、事件、节点组件和集中式日志体系各自适合解决什么问题。排查时建议先看状态和事件,再结合容器日志、Ingress 日志、节点日志和监控指标逐层定位。生产环境中,集中式日志系统几乎是必备能力。
FAQ
Pod重启后还能看之前日志吗?
可以查看上一次容器日志,但如果 Pod 被删除或日志未集中采集,历史日志可能丢失。
为什么应用日志里没有错误但服务访问失败?
请求可能没有到达应用 Pod。需要检查 Ingress、Service、Endpoints、网络策略和 DNS。
生产环境只用kubectl logs够吗?
不够。生产环境建议建设集中式日志系统,支持历史查询、跨服务排障和告警审计。
转载请注明出处:https://www.cloudnative-tech.com/p/6267/