配置 Cloud Operations for GKE

Google Kubernetes Engine (GKE) 中包括了与 Cloud Monitoring 和 Cloud Logging 的集成。通过这一集成,您可以利用高级分析和跟踪功能,监控正在运行的 GKE 集群、管理系统和调试日志以及分析系统性能。 此集成还提供了用于观察集群的复杂 GKE 信息中心。

本页面介绍了如何执行以下操作:

  • 创建新集群并配置 Cloud Operations for GKE。

  • 选择是否要收集应用日志。

  • 为集群停用 Cloud Monitoring 和 Cloud Logging。

准备工作

  • 确保您是包含您集群的项目的 Owner

  • 确保您已启用 Cloud Logging API

    • 您可以从概览页面中查看 Cloud Logging API 的状态。

可用日志

您可以选择是否将日志从 GKE 集群发送到 Cloud Logging。如果您选择将日志发送到 Cloud Logging,则必须发送系统日志,并且可以选择性地发送其他来源的日志。

了解 Cloud Logging 价格,包括用于优化日志记录费用的最佳做法和工具。

下表列出了 createupdate 命令的 --logging 标志支持的值。

日志源 创建集群时是否默认处于启用状态? --logging 收集的日志
NONE 未向 Cloud Logging 发送任何日志;集群中未安装任何日志收集代理。GKE Autopilot 集群不支持此值。
系统 SYSTEM 从以下来源收集日志:
  • 在命名空间 kube-systemistio-systemknative-servinggke-systemconfig-management-system 中运行的所有 Pod。
  • 未容器化的关键服务,包括 docker/containerd 运行时、kubeletkubelet-monitornode-problem-detectorkube-container-runtime-monitor
  • 节点的串行端口输出(如果虚拟机实例元数据 serial-port-logging-enable 设置为 true)。
工作负载 WORKLOAD 由用户节点上运行的非系统容器生成的所有日志。

可用指标

您可以选择是否将指标从 GKE 集群发送到 Cloud Monitoring。如果您选择将指标发送到 Cloud Monitoring,则必须发送系统指标,您可以选择性地发送其他指标。

了解 Cloud Monitoring 价格,包括哪些指标是免费的。

下表列出了 createupdate 命令的 --monitoring 标志支持的值。

来源 创建集群时是否默认处于启用状态? --monitoring 收集的指标
NONE 未向 Cloud Monitoring 发送任何指标;集群中未安装任何指标收集代理。GKE Autopilot 集群不支持此值。
系统 SYSTEM 来自 Kubernetes 功能所需的基本系统组件的指标。请参阅这些 Kubernetes 指标的完整列表。
工作负载 WORKLOAD 启用全代管式流水线,它能够收集任何 GKE 工作负载公开的 Prometheus 样式指标。您必须通过部署 PodMonitor 自定义资源来配置要收集的指标。

为新集群配置监控和日志记录支持

本部分中的集群创建说明仅涵盖与 Cloud Logging 和 Cloud Monitoring 相关的选项。如需查看有关创建 GKE 集群的完整说明,请参阅创建集群

CONSOLE

  1. 转到项目的 GKE 集群页面。点击以下按钮可转到该页面:

    转到 Kubernetes 集群

  2. 点击创建集群

  3. 在导航窗格的集群下,点击功能

  4. 操作下,选择要收集的日志和指标。

    • 对于新集群,Cloud Logging 和 Cloud Monitoring 默认处于启用状态。

    • 如需停用 Cloud Logging,请清除启用 Cloud Logging 复选框。

    • 如需停用 Cloud Monitoring,请清除启用 Cloud Monitoring 复选框。

  5. 点击创建

GCLOUD

使用 gcloud 创建集群:

  1. 打开一个安装了 Cloud SDK 和 gcloud 的终端窗口。一种方法是使用 Cloud Shell。

  2. 在 Cloud Console 中,激活 Cloud Shell。

    激活 Cloud Shell

    Cloud Shell 会话随即会在 Cloud Console 的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Cloud SDK 的 Shell 环境,其中包括 gcloud 命令行工具以及已为当前项目设置的值。该会话可能需要几秒钟时间来完成初始化。

  3. 对于新集群,Cloud Logging 和 Cloud Monitoring 默认处于启用状态。如需创建集群,请运行以下命令:

    gcloud container clusters create [CLUSTER_NAME] \
      --zone=[ZONE] \
      --project=[PROJECT_ID]
    

    在上述表达式中,[CLUSTER_NAME] 是集群的名称,[ZONE] 是集群的计算可用区,[PROJECT_ID] 是 Google Cloud 项目 ID(而非项目名称)。

    1. 或者,您也可以将以英文逗号分隔的值列表传递给 create 命令的 --logging 标志,配置向 Cloud Logging 发送哪些日志。如果无需收集任何日志,请传递 --logging=NONE。如需收集系统日志和工作负载日志,请传递 --logging=SYSTEM,WORKLOAD。如需仅收集系统日志,请传递 --logging=SYSTEM。例如:

      gcloud container clusters create [CLUSTER_NAME] \
        --zone=[ZONE] \
        --project=[PROJECT_ID] \
        --logging=SYSTEM
      
    2. 同样,您可以将以英文逗号分隔的值列表传递给 create 命令的 --monitoring 标志,配置向 Cloud Monitoring 发送哪些指标。如果无需收集任何指标,请传递 --monitoring=NONE。如需收集系统指标,请传递 --monitoring=SYSTEM。例如:

      gcloud container clusters create [CLUSTER_NAME] \
        --zone=[ZONE] \
        --project=[PROJECT_ID] \
        --monitoring=SYSTEM
      

为现有集群配置监控和日志记录功能

以下部分详细介绍了如何修改现有 GKE 集群的 Cloud Logging 和 Cloud Monitoring 集成。

我的集群使用哪种监控和日志记录支持?

如需查看集群的 Cloud Logging 和 Cloud Monitoring 集成设置,请按照以下步骤操作:

  1. 在 Google Cloud Console 中,点击您的集群名称:

    转到 Kubernetes 集群

  2. 在集群的详细信息面板中,查看 Cloud LoggingCloud Monitoring 的状态。

修改集群

如需更改现有集群的 Cloud Logging 或 Cloud Monitoring 集成设置,请按照以下步骤操作:

CONSOLE

  1. 转到项目的 GKE Kubernetes 集群页面。

    转到 Kubernetes 集群

  2. 点击集群的名称。

  3. 如需修改向 Cloud Logging 发送哪些日志或向 Cloud Monitoring 发送哪些指标,请点击 Cloud Logging 或 Cloud Monitoring 旁边的修改

  4. 在出现的对话框中,选择要发送到 Cloud Logging 或 Cloud Monitoring 的日志或指标。

  5. 点击保存

GCLOUD

以下 gcloud 说明介绍了如何使用 gcloud container clusters update 命令升级集群的监控和日志记录支持。请注意,您将使用 update 命令,而不是 upgrade 命令。

  1. 打开一个安装了 Cloud SDK 和 gcloud 的终端窗口。一种方法是使用 Cloud Shell。

  2. 在 Cloud Console 中,激活 Cloud Shell。

    激活 Cloud Shell

    Cloud Shell 会话随即会在 Cloud Console 的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Cloud SDK 的 Shell 环境,其中包括 gcloud 命令行工具以及已为当前项目设置的值。该会话可能需要几秒钟时间来完成初始化。

  3. 如果尚未设置,请在 Cloud SDK 中为您的集群设置默认值:

    gcloud config set project [PROJECT_ID]
    
  4. 通过将以英文逗号分隔的值列表传递给 gcloud container clusters update 命令的 --logging 标志,配置向 Cloud Logging 发送哪些日志。查看可用日志源的完整列表。例如,如需收集系统日志和工作负载日志,请传递 --logging=SYSTEM,WORKLOAD。如需仅收集系统日志,请传递 --logging=SYSTEM。或者,如果无需收集任何日志,请传递 --logging=NONE

        gcloud container clusters update [CLUSTER_NAME] \
          --zone=[ZONE] \
          --logging=NONE
    
  5. 通过将以英文逗号分隔的值列表传递给 gcloud container clusters update 命令的 --monitoring 标志,配置向 Cloud Monitoring 发送哪些指标。查看可用指标来源的完整列表。例如,如需收集系统指标,请传递 --monitoring=SYSTEM。或者,如果无需收集任何指标,请传递 --monitoring=NONE

        gcloud container clusters update [CLUSTER_NAME] \
          --zone=[ZONE] \
          --monitoring=NONE
    

已弃用的配置参数

如果您之前使用过旧版配置参数为 GKE 集群配置日志记录和监控支持,则这些参数将被弃用。下表显示了用于替换已弃用标志的等效配置参数。

旧版配置 旧版 create 参数 旧版 update 参数 新版 createupdate 参数
已停用 --no-enable-stackdriver-kubernetes --no-enable-stackdriver-kubernetes --logging=NONE
--monitoring=NONE
仅启用系统监控(停用日志记录) --enable-stackdriver-kubernetes
--no-enable-cloud-logging
--logging-service=none
--monitoring-service=monitoring.googleapis.com/kubernetes
--logging=NONE
--monitoring=SYSTEM
仅启用系统与工作负载日志记录(停用监控) --enable-stackdriver-kubernetes
--no-enable-cloud-monitoring
--logging-service=logging.googleapis.com/kubernetes
--monitoring-service=none
--logging=SYSTEM,WORKLOAD
--monitoring=NONE
仅系统日志记录和监控(测试版) --enable-logging-monitoring-system-only --enable-logging-monitoring-system-only --logging=SYSTEM
--monitoring=SYSTEM
系统与工作负载日志记录和监控 --enable-stackdriver-kubernetes --enable-stackdriver-kubernetes --logging=SYSTEM,WORKLOAD
--monitoring=SYSTEM

后续步骤

  • 请参阅价格页面,了解与 Cloud Logging 和 Cloud Monitoring 相关的费用。

  • 详细了解如何使用 Prometheus,这是一种经常与 Kubernetes 搭配使用的监控工具。