监控 Distributed Cloud Connected

了解如何监控 Google Distributed Cloud 联网配置工作负载的健康状况、正常运行时间和升级情况。如需详细了解如何配置监控以及可用指标,请参阅 日志和指标

监控工作负载健康状况和正常运行时间

您负责监控在 Distributed Cloud Connected 上运行的工作负载(容器和虚拟机)的健康状况和正常运行时间。

容器工作负载

如需监控您部署的容器化工作负载的健康状况和正常运行时间,我们建议您使用 Prometheus 指标解决方案。您可以将 Prometheus 配置为从 Pod 和服务中抓取指标。Google 代管的系统服务由 Google 自动监控和管理。如需详细了解如何配置 Prometheus,请参阅 使用 Prometheus 收集指标

使用以下关键指标来监控容器工作负载。如果您使用 Prometheus,则需要负责部署和管理 Kube State Metrics,以便为您的工作负载公开这些特定指标:

  • kube_pod_status_phase:监控处于 FailedUnknown 阶段的 Pod。
  • kube_pod_container_status_waiting_reason:识别卡在 CrashLoopBackOffImagePullBackOff 中的 Pod。
  • container_cpu_usage_seconds_totalcontainer_memory_working_set_bytes(来自 cAdvisor):监控资源消耗,以防止出现内存不足 (OOM) 问题。

虚拟机工作负载

在 Distributed Cloud Connected 中,虚拟机 (VM) 在标准 Kubernetes Pod 内运行,通常以 virt-launcher- 为前缀。您可以通过检查 VirtualMachine 自定义资源状态或从虚拟机内监控应用指标,来监控虚拟机健康状况和状态。

使用底层 virt-launcher Pod 指标作为以下详细信息的辅助指标:

  • 资源用量:监控启动器 Pod 的 CPU 和内存消耗,以 确保虚拟机有足够的资源。
  • Pod 阶段:跟踪启动器 Pod 阶段,以识别无法启动 或崩溃的虚拟机。

如需调整分配给虚拟机的资源,请修改虚拟机自定义资源规范。请勿直接修改底层 virt-launcher Pod YAML,因为这些 YAML 由平台管理。任何直接更改都会被覆盖或导致协调错误。

如需排查卡在待处理状态的虚拟机,请参阅 排查卡在待处理状态的虚拟机

监控 Distributed Cloud Connected 升级

使用 Cloud Monitoring 指标和 gcloud 命令监控 Distributed Cloud Connected 软件升级的进度和状态。 升级由 Google 安排和运行。监控严格用于了解情况和规划工作负载迁移。

如需详细了解如何检查升级是否正在进行、 监控其状态以及排查升级失败问题,请参阅 排查软件升级问题

多集群监控

如果您管理许多 Distributed Cloud Connected 集群,我们建议您使用 Cloud Monitoring 来聚合和过滤指标。

  • 使用资源标签:导出到 Cloud Monitoring 的指标包含 用于标识来源的标签。可用标签取决于资源类型:

    • 对于集群和容器指标(例如 k8s_container),关键标签包括以下值:

      • project_id:托管集群的项目。 Google Cloud
      • location:注册集群的 Google Cloud 区域。
      • cluster_name:集群的名称。
    • 对于硬件指标(例如 edgecontainer.googleapis.com/machine),关键标签包括以下值:

      • resource_container:与 硬件关联的 Google Cloud 项目。
      • location:注册 Distributed Cloud Connected 区域的区域。 Google Cloud
      • machine_id:机器的标识符。

      硬件指标不直接包含 cluster_name 标签。

  • 创建自定义信息中心:构建用于显示整个舰队的关键健康状况 指标的信息中心。关键健康状况指标包括连接、虚拟机状态和资源用量。如需在单个图表中显示来自多个集群的数据,请使用通配符或分组依据运算。

  • 设置多集群提醒:配置适用于 多个集群的提醒政策。例如,您可以创建一个提醒,以便在任何集群中的任何机器失去连接时触发。

提醒策略

监控和维护 Distributed Cloud Connected 是一项责任共担。本部分介绍了 Google 会针对哪些情况发出提醒,以及如何配置您自己的提醒政策。

Google 会针对哪些情况发出提醒

Google 会持续监控底层基础架构。在以下情况下,Google 会采取行动并在必要时通知您:

  • 硬件故障:电源故障、风扇故障、过热或磁盘故障,例如磁盘达到备用阈值或使用寿命结束。
  • 连接问题: Distributed Cloud Connected 区域与 Google Cloud之间完全失去连接。
  • 控制平面健康状况:Kubernetes 控制平面或 Google 代管的系统服务出现故障。
  • 升级失败:自动升级过程卡住或失败。

配置提醒

在 Cloud Monitoring 或 Prometheus 中配置您自己的提醒政策,以针对影响工作负载或本地环境的问题发出提醒。

您可以针对以下问题设置提醒:

问题 说明 监控系统 详细信息
工作负载停机 Pod 或虚拟机无法启动或崩溃循环 Prometheus 对于容器工作负载,请针对 kube_pod_status_phase 创建提醒,以检测处于 FailedUnknown 阶段的 Pod。您还可以针对 kube_pod_container_status_waiting_reason 在其等于 CrashLoopBackOffImagePullBackOff 时发出提醒。
Cloud Monitoring 对于在 Pod 中运行的虚拟机工作负载,请在 Cloud Monitoring 中使用标准 Kubernetes 容器指标设置提醒,以跟踪 virt-launcher Pod 的状态。
工作负载资源耗尽 磁盘用量接近容量,或工作负载上的内存或 CPU 用量较高 Prometheus 对于容器工作负载,请针对 container_cpu_usage_seconds_totalcontainer_memory_working_set_bytes(来自 cAdvisor)设置阈值提醒,以识别接近资源限制的 Pod。
Cloud Monitoring 对于机器存储空间,请监控机器磁盘利用率指标 edgecontainer.googleapis.com/machine/disk/utilization,以检测节点存储空间何时接近容量。
本地网络问题 机器上的网络接口掉线 Cloud Monitoring 监控机器网络正常运行时间指标 edgecontainer.googleapis.com/machine/network/up 是否为 false
互联网连接中断 Cloud Monitoring 监控网络连接指标 edgecontainer.googleapis.com/machine/network/connectivity 是否为 false
机器重启 机器意外重启或关机 Cloud Monitoring 使用 edgecontainer.googleapis.com/machine/uptimeedgecontainer.googleapis.com/machine/restart_count 指标配置提醒。如需了解详情,请参阅排查机器重启问题

Distributed Cloud Connected 硬件由 Google 管理。您无权通过 SSH 访问机器,也无法控制主机操作系统。 如果基于机器级指标(例如网络连接或重启)的提醒触发,您的行动项仅限于检查物理电源、布线以及本地网络和防火墙配置,或将问题上报给 Google 支持团队。