通过为受支持的工作负载启用自动应用监控,您可以节省配置和维护在 Google Kubernetes Engine (GKE) 上运行的监控应用的时间和精力。
自动应用监控功能的运作方式
启用自动应用监控后,GKE 会检测受支持的工作负载的已部署实例,并为每个检测到的工作负载实例部署 PodMonitoring
资源。
自动应用监控功能还会安装用于监控应用的开箱即用信息中心。这些指标由 Google Cloud Managed Service for Prometheus 收集。
支持的工作负载
自动应用监控支持以下工作负载:
如需详细了解您可以手动配置的其他开箱即用可观测性解决方案,请参阅 Google Cloud 可观测性文档中的导出程序配置简介。
准备工作
在开始之前,请确保您已执行以下任务:
- 启用 Google Kubernetes Engine API。 启用 Google Kubernetes Engine API
- 如果您要使用 Google Cloud CLI 执行此任务,请安装并初始化 gcloud CLI。 如果您之前安装了 gcloud CLI,请运行
gcloud components update
以获取最新版本。
自动应用监控的要求
如需启用自动应用监控,您的 GKE 集群必须满足以下要求:
- 您的集群必须运行 GKE 1.28 版或更高版本。
- 您必须使用 gcloud CLI 492.0.0 或更高版本。
- 集群必须已启用 Google Cloud Managed Service for Prometheus 托管式收集功能。默认情况下,新集群会启用 Google Cloud Managed Service for Prometheus 托管式收集功能。
启用自动应用监控
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 GKE API 为新的或现有的 GKE 集群启用自动应用监控。
在您部署新工作负载或为集群启用自动应用监控后,系统最多需要 10 分钟才能开始为受支持的工作负载抓取指标。
控制台
如需为新集群启用自动应用监控,请执行以下操作:
前往 Google Cloud 控制台中的 Google Kubernetes Engine 页面。
点击
创建,然后在Standard 或 Autopilot 部分中点击配置。对于 Autopilot 模式集群,请点击高级设置。 对于标准模式集群,点击功能。
在操作部分中,选择启用自动应用监控。
点击创建。
您还可以通过更新集群详情标签页的操作部分中的启用自动应用监控字段,为现有集群启用自动应用监控。
gcloud
如需为新集群启用自动应用监控,请使用选项 --auto-monitoring-scope=ALL
:
gcloud beta container clusters create-auto CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--auto-monitoring-scope=ALL
替换以下内容:
CLUSTER_NAME
:新集群的名称。COMPUTE_LOCATION
:集群的 Compute Engine 位置。
您还可以使用 gcloud beta container clusters update
命令更新现有集群。
API
如需为新集群启用自动应用监控,请向 clusters.create
方法发出 POST
请求:
POST https://container.googleapis.com/v1/projects/PROJECT_ID/locations/COMPUTE_LOCATION/clusters
{
"cluster": {
"name": CLUSTER_NAME
"initialNodeCount": 1,
"monitoringConfig": {
"managedPrometheusConfig": {
"enabled": true,
"autoMonitoringConfig": {
"scope": ALL
}
}
}
}
}
替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目 ID。CLUSTER_NAME
:新集群的名称。COMPUTE_LOCATION
:集群的 Compute Engine 位置。
确定是否已启用自动应用监控
您可以使用 Google Cloud 控制台、gcloud CLI 或 GKE API 确定集群是否启用了自动应用监控。
控制台
执行以下操作:
前往 Google Cloud 控制台中的 Google Kubernetes Engine 页面:
在集群列表中,点击集群的名称。
在功能部分,自动应用监控字段会指示自动应用监控功能处于启用还是停用状态。
gcloud
描述集群:
gcloud container clusters describe CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--format='value(monitoringConfig.managedPrometheusConfig.autoMonitoringConfig.scope)'
替换以下内容:
CLUSTER_NAME
:集群的名称。COMPUTE_LOCATION
:集群的 Compute Engine 位置。
输出类似于以下内容:
autoMonitoringConfig.scope: ALL
在输出中,如果 autoMonitoringConfig.scope
字段的值为 ALL
,则表示自动应用监控已启用。否则,系统会停用自动应用监控。
API
向 clusters.get
方法发出 GET
请求:
GET https://container.googleapis.com/v1/projects/PROJECT_ID/locations/COMPUTE_LOCATION/clusters/CLUSTER_NAME
替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目 ID。CLUSTER_NAME
:集群的名称。COMPUTE_LOCATION
:集群的 Compute Engine 位置。
输出类似于以下内容:
autoMonitoringConfig.scope: ALL
在输出中,如果 autoMonitoringConfig.scope
字段的值为 ALL
,则表示自动应用监控已启用。否则,系统会停用自动应用监控。
查看信息中心
启用自动应用监控后,GKE 会安装开箱即用的信息中心,以便监控部署到集群的受支持的工作负载的应用。您不会看到从未在集群上运行过的受支持工作负载的信息中心。
如需在 Google Kubernetes Engine 页面中查看包含自动监控的工作负载遥测信息的信息中心,请执行以下操作:
前往 Google Cloud 控制台中的 Google Kubernetes Engine 页面:
点击您要查看自动监控的工作负载信息中心的集群名称。
点击可观测性标签页。集成部分会显示为在集群上运行的受支持的工作负载配置的信息中心。
如需在 Cloud Monitoring 页面中查看包含自动监控的工作负载遥测信息的信息中心,请执行以下操作:
前往信息中心页面。
点击信息中心列表标签页。
选择集成类别。
点击信息中心的名称。例如,RabbitMQ Prometheus 概览。
停用自动应用监控
如果您在集群上停用自动应用监控,则 GKE 创建的 PodMonitoring
资源会保持不变,并且 GKE 会继续监控现有的受支持的工作负载。GKE 会停止自动监控您部署到集群的受支持工作负载的新实例。如需停止监控现有的受支持的工作负载,您必须删除 GKE 创建的 PodMonitoring
资源。如果您为集群重新启用自动应用监控,GKE 会检测并协调之前创建的 PodMonitoring
资源。
您可以使用Google Cloud 控制台、gcloud CLI 或 GKE API 为集群停用自动应用监控。
控制台
前往 Google Cloud 控制台中的 Google Kubernetes Engine 页面:
点击集群的名称。
在功能列表中,找到自动应用监控字段。
点击edit修改。
取消选择启用自动应用监控。
点击保存。
gcloud
使用 --auto-monitoring-scope=NONE
选项更新集群:
gcloud beta container clusters update CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--auto-monitoring-scope=NONE
替换以下内容:
CLUSTER_NAME
:集群的名称。COMPUTE_LOCATION
:集群的 Compute Engine 位置。
API
向 clusters.update
方法发出 PUT
请求:
PUT https://container.googleapis.com/v1/projects/PROJECT_ID/locations/COMPUTE_LOCATION/clusters/CLUSTER_NAME
{
"update": {
"desiredMonitoringConfig": {
"managedPrometheusConfig": {
"autoMonitoringConfig": {
"scope": NONE
}
}
}
}
}
替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目 ID。CLUSTER_NAME
:集群的名称。COMPUTE_LOCATION
:集群的 Compute Engine 位置。
自定义对受支持的工作负载的自动监控
您可以为受支持的工作负载的各个实例自定义监控配置,也可以选择不监控受支持的工作负载的各个实例。
如需为受支持工作负载的已部署实例自定义 PodMonitoring
资源,同时不影响其他工作负载的自动应用监控,您必须从自动应用监控中排除该实例,然后更新配置或替换与目标工作负载实例关联的 PodMonitoring
资源。
如果您更新或删除 GKE 创建的 PodMonitoring
资源,但未排除关联的工作负载,GKE 会恢复 PodMonitoring
资源,以确保在监控其他受支持的工作负载时保持连续性。
查找工作负载的 PodMonitoring
资源
您可以使用 Google Cloud 控制台来识别 GKE 为工作负载创建的 PodMonitoring
资源:
前往对象浏览器页面。
在集群字段中,输入集群的名称。
在命名空间字段中,输入命名空间的名称。
在对象种类过滤条件中,选择 PodMonitoring。
在 monitoring.googleapis.com 下,选择 PodMonitoring。
点击对象名称可检查该对象。 元数据标签
source:gke-auto-monitoring
表示 GKE 创建了PodMonitoring
资源。
从自动监控中排除已部署的实例
如果您不想监控受支持的工作负载的已部署实例,或者想自定义工作负载的监控配置,可以将该工作负载从自动应用监控中排除。
如需排除工作负载,您必须将元数据标签 allow-gke-auto-monitoring: false
添加到目标工作负载配置中。例如,以下清单描述了一个未由自动应用监控功能监控的 RabbitMQ StatefulSet:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: rabbitmq
allow-gke-auto-monitoring: false
spec:
serviceName: rabbitmq
replicas: 3
排除工作负载实例后,您可以删除 GKE 为该工作负载创建的 PodMonitoring
资源。如果您删除或修改 PodMonitoring
资源,GKE 不会尝试恢复该资源。如果您部署了具有元数据标签 allow-gke-auto-monitoring: false
的新工作负载,GKE 不会为该工作负载创建 PodMonitoring
资源。
删除工作负载的监控配置
如果您想停止监控工作负载,或者想为工作负载部署自己的自定义 PodMonitoring
资源,可以删除监控配置。
如需删除单个工作负载的自动应用监控配置,请执行以下操作:
- 从自动应用监控中排除工作负载。
- 识别 GKE 为工作负载创建的
PodMonitoring
资源。 删除
PodMonitoring
资源:kubectl delete podmonitoring POD_MONITORING_NAME -n NAMESPACE
替换以下内容:
POD_MONITORING_NAME
:PodMonitoring
资源的名称。NAMESPACE
:PodMonitoring
资源的命名空间。
如需删除集群中所有工作负载的自动应用监控配置,请执行以下操作:
- 停用自动应用监控。
删除集群中具有元数据标签
source:gke-auto-monitoring
的所有PodMonitoring
资源:kubectl delete podmonitorings -l source=gke-auto-monitoring --all-namespaces
价格
您可以免费使用自动应用监控功能,为受支持的工作负载配置自动应用监控,并安装开箱即用的信息中心。不过,对于 Google Cloud Managed Service for Prometheus 提取指标的操作,Monitoring 会收取相应费用,具体费用详见 Monitoring 价格。
后续步骤
- 了解如何查看可观测性指标。