监控部署

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

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

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

容器工作负载

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

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

  • kube_pod_status_phase:监控处于 Failed 或 Unknown 阶段的 Pod。
  • kube_pod_container_status_waiting_reason:识别卡在 CrashLoopBackOff 或 ImagePullBackOff 状态的 Pod。
  • container_cpu_usage_seconds_total 和 container_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 由平台管理。任何直接更改都会被覆盖或导致对账错误。

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

监控 Google Distributed Cloud 联网配置升级

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

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

监控本地存储空间运行状况

Distributed Cloud Connected 会持续监控其存储设备的运行状况,并在需要更换物理驱动器时提醒 Google。Google 会与您一起安排上门服务时间,并更换故障硬盘。您可以使用 Kubernetes 条件提醒(例如 DiskPressure)监控存储的健康状况。

监控系统存储空间运行状况

您可以使用以下方法之一监控 Distributed Cloud Connected 系统存储空间的运行状况:

  • Prometheus 与 Kube State Metrics (PromQL)。在集群中部署和管理 Kube State Metrics,以公开 Kubernetes 条件指标。

  • Cloud Monitoring 指标。根据导出到 Cloud Monitoring 的主机级指标创建提醒政策。

使用 Prometheus 监控系统存储空间运行状况

如需使用 Prometheus 和 Kube State Metrics (PromQL) 监控系统存储空间运行状况,请设置以下提醒:

  1. 当节点条件进入 DiskPressure 状态时立即发出提醒:

    kube_node_status_condition{condition="DiskPressure",status="true"} == 1
    
  2. 通过检查磁盘利用率何时超过操作阈值,在违反逐出阈值之前主动发出提醒:

    (1 - (node_filesystem_avail_bytes{mountpoint="/mnt/shared_lpvs"} / node_filesystem_size_bytes{mountpoint="/mnt/shared_lpvs"})) > THRESHOLD
    

    将 THRESHOLD 替换为 0.00 ~ 1.00 范围内的目标操作阈值。 Google 建议您将此值设置为 0.85。

使用 Cloud Monitoring 监控系统存储空间运行状况

如需使用 Cloud Monitoring 指标监控系统存储空间运行状况,请创建具有以下参数的提醒政策:

  • 指标: edgecontainer.googleapis.com/machine/disk/utilization
  • 范围:此指标专门报告节点本地系统分区文件系统 (/dev/mapper/shared_lpvs_encrypted) 的磁盘利用率。
  • 阈值:配置磁盘利用率大于 85% 时的提醒阈值。这将在发生硬节点 DiskPressure 事件之前检测系统磁盘饱和度。

监控工作负载存储健康状况

您可以使用 Kubelet 卷指标或直接使用应用级遥测来监控工作负载存储的运行状况,具体取决于工作负载使用的卷模式。

  • Filesystem 音量模式。您可以使用 Prometheus 监控文件系统卷,方法是抓取以下 Kubelet 卷指标:

    • kubelet_volume_stats_capacity_bytes
    • kubelet_volume_stats_available_bytes
    • kubelet_volume_stats_used_bytes
    • kubelet_volume_stats_inodes_used
    • kubelet_volume_stats_inodes_free
  • Block 音量模式。Kubelet 无法看到原始块卷。如需监控其运行状况,您必须使用应用级或 Symcloud Storage 指标。

多集群监控

如果您管理许多 Distributed Cloud 连接的集群,我们建议您使用 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 关联可用区注册到的 Google Cloud 区域。
      • machine_id:机器的标识符。

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

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

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

提醒策略

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

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

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

  • 硬件故障:电源故障、风扇故障、过热或磁盘故障,例如磁盘达到其备用阈值或使用寿命结束。Google 会持续监控其内部存储设备的运行状况,并在存储设备发生故障时触发自动更换。
  • 连接问题:Distributed Cloud 关联可用区与 Google Cloud之间的连接完全中断。
  • 控制平面健康状况:Kubernetes 控制平面或 Google 管理的系统服务中的故障。
  • 升级失败:自动升级过程卡住或失败。

配置提醒

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

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

问题 说明 监控系统 详细信息
工作负载停机时间 Pod 或虚拟机无法启动或崩溃循环 Prometheus 对于容器工作负载,请针对 kube_pod_status_phase 创建提醒,以检测处于 Failed 或 Unknown 阶段的 Pod。您还可以在 kube_pod_container_status_waiting_reason 等于 CrashLoopBackOff 或 ImagePullBackOff 时发出提醒。
Cloud Monitoring 对于在 Pod 中运行的虚拟机工作负载,请在 Cloud Monitoring 中使用标准 Kubernetes 容器指标设置提醒,以跟踪 virt-launcher Pod 的状态。
工作负载资源耗尽 磁盘用量接近容量上限,或者工作负载的内存或 CPU 用量较高 Prometheus 对于容器工作负载,请针对 container_cpu_usage_seconds_total 和 container_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/uptime 和 edg/1.13.0/docs/ogleapis.com/machine/restart_count 指标配置提醒。如需了解详情,请参阅排查机器重启问题。
系统存储空间耗尽 系统存储空间不足 Cloud Monitoring 使用 edgecontainer.googleapis.com/machine/disk/utilization/1.13.0/docs/配置提醒。如需了解详情,请参阅监控系统存储空间运行状况。

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