在符合 CNCF 标准的集群上安装 Cloud Logging

本文档介绍了 GKE 关联集群如何与 Cloud Logging 集成,以及如何访问日志。

概览

GKE 关联集群支持将 Cloud Logging 用于工作负载以及在工作器节点上运行的系统组件。

GKE 关联集群包括基于 Fluentbit 的日志记录代理,该代理作为 Daemonset 在工作器节点上运行。正如 Cloud Logging 文档所述,您可以像处理任何其他指标和日志数据一样,管理和删除日志记录代理收集的数据。

准备工作

  1. 满足 GKE 关联集群的前提条件

  2. 为 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_NAMEgke-connect-agent 容器的日志:

resource.type="k8s_container"
resource.labels.cluster_name="attachedClusters/CLUSTER_NAME"
resource.labels.container_name="gke-connect-agent"

后续步骤