本页面简要介绍如何查找和使用 Google Kubernetes Engine (GKE) 日志。
访问日志
您可以通过多种方式访问 GKE 日志:
在 Google Cloud 控制台中,您可以通过以下页面查看日志:
Kubernetes Engine:
- 在集群页面上选择一个集群,然后选择日志标签页。此标签页还会提供针对集群日志的建议查询。
- 在工作负载页面上选择一个工作负载。然后,点击概览标签页上的容器日志或审核日志链接以在日志浏览器中查看日志,或选择日志标签页以在上下文中查看日志。
日志记录:选择日志浏览器,然后使用日志记录过滤条件来选择 Kubernetes 资源,例如集群、节点、命名空间、pod 或容器日志。如需查看查询示例来帮助您开始使用,请参阅 Kubernetes 相关查询。
监控:GKE 信息中心显示 GKE 资源(例如集群、节点和 pod)的指标和日志。如需了解详情,请参阅查看可观测性指标。
在 Google Cloud CLI 中:使用
gcloud logging read
命令查询来自集群、节点、pod 和容器的日志。
对于自定义日志汇总、日志分析或与第三方系统的集成,您还可以使用日志记录接收器功能将日志导出到 BigQuery、Cloud Storage 和 Pub/Sub。
了解日志
Cloud Logging 中的日志是日志条目的集合,每个日志条目适用于特定类型的日志记录资源。
资源类型
以下是 GKE 集群特有的资源类型:
资源类型 | 显示名 |
---|---|
k8s_cluster |
Kubernetes 集群日志 |
k8s_node |
GKE 节点池日志 |
k8s_pod |
GKE pod 日志 |
k8s_container |
GKE 容器日志 |
k8s_control_plane_component |
Kubernetes 控制平面组件 |
当 GKE 写入集群的日志时,每个日志条目都包含资源类型。通过了解日志的显示位置,您可以在需要时更轻松地查找日志。
系统日志
这些日志包括集群的审核日志,包括管理员活动日志、数据访问日志和事件日志。
系统会捕获以下资源类型的系统日志:
k8s_cluster
类型的集群日志k8s_node
类型的节点日志k8s_pod
类型的 podk8s_container
类型的系统应用
您的系统审核日志在 Cloud Logging 中显示为以下名称:
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access – 数据访问日志
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity – 管理员活动日志
projects/PROJECT_ID/logs/events – 事件日志
如需详细了解适用于 Kubernetes 集群和 GKE 集群操作资源类型的日志条目,请参阅审核日志记录文档。
还有一些其他系统日志(如写入的 kube-system 日志),如控制应用日志的收集中所述。
应用日志
Kubernetes 容器收集写入 STDOUT
和 STDERR
的工作负载的日志。您可以使用 k8s_container
或 gke_cluster
资源类型查找工作负载应用日志。您的日志在 Logging 中将显示为如下名称:
projects/PROJECT_ID/logs/stderr – 写入标准错误的日志
projects/PROJECT_ID/logs/stdout – 写入标准输出的日志
控制平面日志
如果为 GKE 集群启用了控制平面日志,则某些 Kubernetes 控制平面组件(例如 API 服务器、调度器和控制器管理器)发出的日志将导出到 Cloud Logging。
这些日志使用 k8s_control_plane_component
资源类型,并在 Cloud Logging 中显示为以下名称:
projects/PROJECT_ID/logs/container.googleapis.com%2Fapiserver
projects/PROJECT_ID/logs/container.googleapis.com%2Fscheduler
projects/PROJECT_ID/logs/container.googleapis.com%2Fcontroller-manager
在 Logging 界面中查找日志
您可以使用 Logging 界面中的日志浏览器查看日志。
Logs Explorer
利用查询构建器,您可以从下拉菜单中选择字段,也可以手动添加查询参数来构建查询。 例如,如果您要查看 GKE 集群的日志,可以先选择或搜索 Kubernetes 集群资源类型,然后选择位置和集群名称。然后,您可以通过选择日志名称选择器中的活动日志来优化搜索。
日志浏览器提供了另一种使用日志字段浏览器构建搜索查询的方法。它会显示给定日志字段的日志条目数量(按递减顺序排序)。使用日志字段浏览器对 GKE 日志特别有用,因为日志字段浏览器提供了一种为资源选择 Kubernetes 值以构建查询的方法。例如,利用日志字段浏览器,您可以选择特定集群、命名空间、pod 名称和容器名称的日志。
如需详细了解如何使用日志浏览器,请参阅 Logging 文档。
查询示例
如果您要查找特定日志,则可以通过以下示例查询来帮助您查找 GKE 日志:
排查日志问题
如果您从 GKE 集群中写入大量日志,可能会发现其中许多日志始终不会显示在 Cloud Logging 中。一个可能的原因是日志记录量超过 GKE 支持的日志记录吞吐量。
Logging 支持的每节点日志记录吞吐量最高为 100KB/s。如果 GKE 集群中的任何节点需要更高的日志记录吞吐量,我们建议提高日志记录代理吞吐量。