监控部署

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

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

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

容器工作负载

为了监控您部署的容器化工作负载的运行状况和正常运行时间,我们建议您使用 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 会持续监控其存储设备的运行状况,并在物理驱动器需要更换时提醒 Google。Google 会与您一起安排上门服务,并更换故障硬盘。您可以使用 Kubernetes 条件提醒(例如 DiskPressure)监控存储空间的健康状况。

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

您可以使用以下任一方法监控 Distributed Cloud 连接的系统存储空间的健康状况:

  • 使用 Kube State Metrics 的 Prometheus (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.001.00 范围内的目标运营阈值。Google 建议将此值设置为 0.85

使用 Cloud Monitoring 监控系统存储空间健康状况

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

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

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

您可以根据工作负载使用的卷模式,使用 Kubelet 卷指标或直接使用应用级遥测数据来监控工作负载存储的健康状况。

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

    • 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 会持续监控内部存储设备的运行状况,并在存储设备出现故障时触发自动更换流程。
  • 连接问题:分布式云连接区域与 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 指标的提醒。如需了解详情,请参阅排查机器重启问题
系统存储空间耗尽 系统存储空间不足 Cloud Monitoring 配置使用 edgecontainer.googleapis.com/machine/disk/utilization 指标的提醒。如需了解详情,请参阅监控系统存储健康状况

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