本文档介绍了 GKE 关联集群如何与 Cloud Logging 集成,以及如何访问日志。
概览
GKE 关联集群支持将 Cloud Logging 用于工作负载以及在工作器节点上运行的系统组件。
GKE 关联集群包括基于 Fluentbit 的日志记录代理,该代理作为 Daemonset 在工作器节点上运行。正如 Cloud Logging 文档所述,您可以像处理任何其他指标和日志数据一样,管理和删除日志记录代理收集的数据。
准备工作
满足 GKE 关联集群的前提条件。
为 Cloud Logging 和 Cloud Monitoring 授权以设置对 Google Cloud 可观测性的权限。
收集哪些数据
您可以将 GKE 关联集群配置为捕获以下任何或所有信息:
- 工作负载日志
启用日志记录
如果您在关联集群时未指定日志记录模式,则默认情况下,GKE 关联集群会启用系统日志记录。若要启用工作负载日志记录,您的集群必须使用 Kubernetes 1.23 或更高版本。
如需在关联集群时启用工作负载日志记录,请按照相关说明关联符合 CNCF 要求的集群,并在 gcloud container attached clusters register
命令中添加可选的 --logging
标志:
gcloud container attached clusters register CLUSTER_NAME ... --logging=LOGGING_FLAG
如需在已关联的集群上启用工作负载日志记录,请按照说明更新符合 CNCF 要求的集群,并在 gcloud container attached clusters update
命令中添加可选的 --logging
标志:
gcloud container attached clusters update CLUSTER_NAME ... --logging=LOGGING_FLAG
将 LOGGING_FLAG 替换为下面的某个标志,以指示您要启用的日志记录种类:
NONE
:停用日志记录。SYSTEM
:启用在特定命名空间中运行的系统工作负载的日志记录。SYSTEM,WORKLOAD
:在集群的工作器节点上同时启用系统和工作负载活动日志记录。
访问日志
您可以通过多种方式在 Cloud Logging 中访问 GKE 关联集群日志:
日志浏览器 - 您可以使用日志过滤条件选择 Kubernetes 资源(例如集群),直接从日志浏览器中查看日志节点、命名空间、pod 或容器日志。
Google Cloud CLI - 使用
gcloud logging read
命令,选择适当的集群、节点、pod 和容器日志。
了解日志
Cloud Logging 中的日志是日志条目的集合,每个日志条目适用于特定类型的日志记录资源。
资源类型
以下是 GKE 关联集群特有的资源类型:
资源类型 | 显示名称 |
---|---|
k8s_container |
工作负载容器日志 |
当 GKE 关联集群写入集群的日志时,每个日志条目都会包含相应的资源类型。通过了解日志的显示位置,您可以在需要时更轻松地查找日志。
系统应用日志
系统应用日志属于 k8s_container
资源类型。这些日志包括来自 GKE 关联集群安装在工作器节点上的 Pod 的日志。具体而言,包括在以下命名空间中运行的容器:
gke-connect
gke-system
gmp-system
asm-user-auth
cnrm-system
config-management-system
gatekeeper-system
gmp-public
istio-system
knative-serving
在 Cloud Logging 界面中查找日志
您可以使用 Cloud Logging 界面中的日志浏览器查看日志。
日志浏览器
使用查询构建器,您可以手动添加查询参数来构建查询。例如,如果要浏览系统工作负载的日志,可以先选择或搜索 k8s_container
资源类型,然后选择位置和集群名称。然后,您可以通过过滤容器或 Pod 名称来优化搜索。
日志浏览器提供了另一种使用日志字段浏览器构建搜索查询的方法。它会显示给定日志字段的日志条目数量(按递减顺序排序)。使用日志字段浏览器对 GKE 关联集群日志特别有用,因为它提供了一种为资源选择 Kubernetes 值的简单方法。例如,您可以选择特定集群、命名空间、Pod 名称和容器名称的日志。
如需了解详情,请参阅使用日志浏览器。
查询示例
本部分包含您可以在日志浏览器中执行的示例查询。
示例 1:获取 Google Cloud 集群 CLUSTER_NAME 的 gke-connect-agent
容器的日志:
resource.type="k8s_container"
resource.labels.cluster_name="attachedClusters/CLUSTER_NAME"
resource.labels.container_name="gke-connect-agent"