You need to enable JavaScript to run this app.
导航

镜像加速观测

最近更新时间2024.02.28 20:05:05

首次发布时间2024.02.28 20:05:05

容器服务支持 P2P 镜像加速和镜像懒加载(Nydus)功能,大幅提升镜像拉取速度,缩短应用部署时间。同时,支持对镜像加速功能进行监控。本文为您介绍如何配置镜像加速功能观测。

说明

邀测·申请试用】:该功能目前处于 邀测 阶段,如需使用,请提交申请。

背景信息

容器服务中的镜像加速功能,主要包括:

  • P2P 镜像加速:利用节点的内网带宽资源,在节点之间分发镜像,减少对镜像仓库的压力,大幅提升镜像拉取速度,缩短应用部署时间。方案详情,请参见 P2P 镜像加速方案
  • 镜像懒加载(Nydus):集群通过 Nydus 实现镜像懒加载,提升创建 Pod 过程的镜像拉取速度。

    说明

    邀测·申请试用】:镜像懒加载功能目前处于 邀测 阶段,若未开启该功能则无法查看监控大盘。如需要使用镜像懒加载功能,请提交申请。

前提条件

  • 已开启云原生观测功能,详情请参见 开启云原生观测
  • 已开启容器服务观测功能,详情请参见 容器服务观测
  • 监控 P2P 镜像加速功能时,需要:
    • 已安装 p2p-accelerator 组件,详情请参见 安装组件
    • prometheus-agent 组件升级到 v2.2.0 及以上版本,详情请参见 组件发布记录
  • 监控镜像懒加载(Nydus)功能时,需要:
    • 已安装 image-accelerator 组件,详情请参见 安装组件
    • prometheus-agent 组件升级到 v2.0.4 及以上版本,详情请参见 组件发布记录

操作步骤

步骤一:开启观测

  1. 登录 容器服务控制台
  2. 在左侧导航栏单击 集群,找到目标集群,单击集群名称。
  3. 在集群管理页面的左侧导航栏中,单击 观测配置
  4. 选择 镜像加速 卡片,单击 启用,开启集群镜像加速观测。
    alt
  5. 系统自动检查开启观测所需的必要条件。包括:工作区配置、组件状态等。
    alt
  6. 单击 开启,开启镜像加速观测。

步骤二:配置采集规则

镜像加速观测功能开启后,您可以配置采集规则,选择需要采集的目标组件、具体指标项及采集间隔。可以根据实际需求丢弃一些不用的指标。

  1. 在集群管理页面的左侧导航栏中,单击 观测配置
  2. 选择 镜像加速 卡片,单击 编辑配置 并选择 指标 页签,配置采集规则,并选择具体的采集指标。
    • 在组件列表 操作 列,单击开关,开启或关闭组件的采集规则。当关闭组件的采集规则时,系统不会采该集组件的所有指标。
      alt
    • 单击组件列表 操作 栏中的 alt,支持选择或丢弃组件的具体指标,并配置面向该组件的采集间隔。
      • 采集间隔 中,选择该组件指标的采集间隔。不同组件支持的采集间隔不同。
      • 指标列表 中,勾选指标,则采集该指标。取消勾选,则丢弃该指标。单击 全部基础指标其他指标 页签,允许基于指标类型对指标项进行筛选。
        alt

        说明

        • 减小指标采集间隔,会增加单位时间内上报的指标数量,可以提升监控精度。但会增加托管 Prometheus 标准版工作区的费用。增加指标采集间隔,会减少单位时间内上报的指标数量,可以减少托管 Prometheus 标准版工作区的费用,但会降低监控精度。请根据实际需要配置。
        • 云产品的指标类型分为 基础指标其他指标,不同类型指标的计费方式不同,详情请参见 托管 Prometheus 计费方式
  3. 单击 确认,完成配置。

步骤三:配置告警

镜像加速功能暂不支持告警规则模板。如需配置告警规则,请参见 创建告警规则

步骤四:(可选)开启懒加载功能

当您监控懒加载功能时,您需要在集群的节点池中,开启镜像懒加载功能。才能正确查看到观测信息。

创建集群时配置

  1. 登录 容器服务控制台
  2. 在集群管理页面的左侧导航栏,选择 集群
  3. 在集群列表页面,单击左上角 创建集群,配置创建集群所需的参数。
  4. 节点池配置(可选) > 高级配置 处,开启镜像懒加载功能。
    alt

    说明

    创建集群时的其他配置,请参见 创建集群

在已有集群中配置

  1. 登录 容器服务控制台
  2. 在容器服务的左侧导航栏,选择 集群
  3. 在集群列表,单击目标集群名称。
  4. 在集群管理页面的左侧导航栏,选择 节点管理 > 节点池
  5. 创建新的节点池或编辑已有的节点池,在节点池编辑页面中,选择 高级配置,并开启镜像懒加载功能。
    alt

观测看板

P2P 镜像加速监控

您可以在容器服务控制台中,查看预置的监控大盘。包括:代理请求总次数、当前代理请求总次数、任务总个数、失败的任务总个数、分片的总个数等。

  1. 在集群管理页面的左侧导航栏中,选择 监控中心 > 监控看板
  2. 在左侧看板列表中选择 镜像加速服务监控 > p2p 镜像加速监控,即可查看监控看板。

alt

说明

您也可以在集群中自建 Grafana,并通过 Grafana 查看指标和创建大盘。详情请参见 在容器服务集群中部署 Grafana 并接入工作区

该看板的指标清单如下表所示。

看板名称PromQL 语句
代理请求总次数sum(dragonfly_dfdaemon_proxy_request_running_total{cluster="$clusterId"})by(instance)
代理通过 drgonfly 的请求次数dragonfly_dfdaemon_proxy_request_via_dragonfly_total{cluster="$clusterId"}
代理没有通过 dragonfly 的请求次数dragonfly_dfdaemon_proxy_request_not_via_dragonfly_total{cluster="$clusterId"}
当前代理请求总次数dragonfly_dfdaemon_proxy_request_running_total{cluster="$clusterId"}
所有代理请求的总字节数sum(dragonfly_dfdaemon_proxy_request_bytes_total{cluster="$clusterId"})by(instance)
任务的总个数sum(dragonfly_dfdaemon_peer_task_total{cluster="$clusterId"})by(instance)
失败任务的总个数sum(dragonfly_dfdaemon_peer_task_failed_total{cluster="$clusterId"})by(instance)
分片的总个数sum(dragonfly_dfdaemon_piece_task_total{cluster="$clusterId"})by(instance)
失败的分片总个数sum(dragonfly_dfdaemon_piece_task_failed_total{cluster="$clusterId"})by(instance)
文件类型任务总个数sum(dragonfly_dfdaemon_file_task_total{cluster="$clusterId"})by(instance)
流式类型任务总个数sum(dragonfly_dfdaemon_stream_task_total{cluster="$clusterId"})by(instance)
作为 Seed Peer 下载总次数sum(dragonfly_dfdaemon_seed_peer_download_total{cluster="$clusterId"})by(instance)
作为 Seed Peer 下载失败总次数sum(dragonfly_dfdaemon_seed_peer_download_failure_total{cluster="$clusterId"})by(instance)
预取任务总个数sum(dragonfly_dfdaemon_prefetch_task_total{cluster="$clusterId"})by(instance)
作为 Seed Peer 的并行下载个数sum(dragonfly_dfdaemon_seed_peer_concurrent_download_total{cluster="$clusterId"})by(instance)
命中缓存任务个数sum(dragonfly_dfdaemon_peer_task_cache_hit_total{cluster="$clusterId"})by(instance)

说明

如果您需要在托管 Prometheus 中的 Explore 功能或告警中心使用上述 PromQL 语句查看具体的指标或配置告警,请修改或删除语句中关于集群、节点、容器组的变量。例如:将 cluster=~"$Cluster"参数中的$Cluster变量修改为具体的集群 ID ,或直接删除该参数。

镜像懒加载(Nydus)监控

配置 Nydus 懒加载功能后,您可以在容器服务控制台中,查看预置的监控大盘。包括:Nydus Daemon 数量、Nydus Daemon 内存用量等。

  1. 在集群管理页面的左侧导航栏中,选择 监控中心 > 监控看板
  2. 在左侧看板列表中选择 镜像加速服务监控 > 镜像懒加载(Nydus)监控,即可查看监控看板。

alt

说明

您也可以在集群中自建 Grafana,并通过 Grafana 查看指标和创建大盘。详情请参见 将托管 Prometheus 数据接入自建 Grafana

该看板的指标清单如下表所示。

大盘分类大盘名称指标单位PromQL 语句
Nydus Daemon 监控Nydus Daemon 数量Countsum(nydusd_counts{node=~"$node"})by(version)
Nydus Daemon 内存用量MBtopk(10,sum(nydusd_rss_kilobytes{cluster="$clusterId",node=~"$node"})by (node))
Prepare 函数执行时间 P90mstopk(10,histogram_quantile(0.9,sum(rate(snapshotter_snapshot_operation_elapsed_milliseconds_bucket{cluster="$clusterId",node=~"$node",snapshot_operation="PREPARE"}[5m]))by (le,node)))
Cleanup 函数执行时间 P90mstopk(10,histogram_quantile(0.9,sum(rate(snapshotter_snapshot_operation_elapsed_milliseconds_bucket{cluster="$clusterId",node=~"$node",snapshot_operation="CLEANUP"}[5m]))by (le,node)))
Mount 函数执行时间 P90mstopk(10,histogram_quantile(0.9,sum(rate(snapshotter_snapshot_operation_elapsed_milliseconds_bucket{cluster="$clusterId",node=~"$node",snapshot_operation="MOUNTS"}[5m]))by (le,node)))
Remove 函数执行时间 P90mstopk(10,histogram_quantile(0.9,sum(rate(snapshotter_snapshot_operation_elapsed_milliseconds_bucket{cluster="$clusterId",node=~"$node",snapshot_operation="REMOVE"}[5m]))by (le,node)))
Nydus snapshotter 资源使用Nydus snapshotter CPU 使用率%topk(10,sum(snapshotter_cpu_usage_percentage{cluster="$clusterId",node=~"$node"})by (node))
Nydus snapshotter 内核态 CPU 时间mstopk(10,sum(snapshotter_cpu_system_time_seconds{cluster="$clusterId",node=~"$node"})by (node))
Nydus snapshotter 用户态 CPU 时间mstopk(10,sum(snapshotter_cpu_user_time_seconds{cluster="$clusterId",node=~"$node"})by (node))
Nydus snapshotter 内存用量MBtopk(10,sum(snapshotter_memory_usage_kilobytes{cluster="$clusterId",node=~"$node"})by (node))
Nydus snapshotter Cache 用量Btopk(10,sum(snapshotter_cache_usage_kilobytes{cluster="$clusterId",node=~"$node"})by (node))
Nydus 错误和事件Nydusd Read error 数量Counttopk(10,sum(nydusd_read_errors{cluster="$clusterId",node=~"$node"}) by(node))
Nydusd Died event 数量Counttopk(10,sum(nydusd_lifetime_event_counts{cluster="$clusterId",node=~"$node",nydusd_event="DIED"})by (node))
Nydus read 性能Nydus read P90 延迟mstopk(10,histogram_quantile(0.9,sum(rate(nydusd_read_latency_microseconds_bucket{cluster="$clusterId",node=~"$node"}[5m]))by(le,node)))
Nydus read 成功数量Counttopk(10,sum(nydusd_read_hits{cluster="$clusterId",node=~"$node"})by(node))
Nydus read 总 SizeBtopk(10, sum(nydusd_total_read_bytes{cluster="$clusterId", node=~"$node"})by (node))
Nydus read hang IO 数量Counttopk(10,sum(nydusd_hung_io_counts{cluster="$clusterId",node=~"$node"})by (node))

说明

如果您需要在托管 Prometheus 中的 Explore 功能或告警中心使用上述 PromQL 语句查看具体的指标或配置告警,请修改或删除语句中关于集群、节点、容器组的变量。例如:将 cluster=~"$Cluster"参数中的$Cluster变量修改为具体的集群 ID ,或直接删除该参数。

查看指标

您可以使用托管 Prometheus 的 Explore 功能来快速查询和展示指标数据。详情请参见 指标查询