你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

什么是容器网络指标?

Azure Kubernetes 服务(AKS)中的高级容器网络服务有助于收集全面的容器网络指标,让你深入了解容器化环境的性能。 此功能持续捕获节点级别和 Pod 级别的基本指标,包括流量、丢弃的数据包、连接状态和域名系统(DNS)解析时间,以有效监视和优化网络性能。

捕获这些指标对于了解容器的通信方式、服务之间的流量流动方式以及可能发生瓶颈或中断的位置至关重要。 高级容器网络服务与 Prometheus 和 Grafana 等监视工具无缝集成,提供网络指标的完整视图。 使用指标进行深入故障排除、网络优化和性能优化。

在云原生环境中,在动态容器化环境中维护健康高效的网络对于确保应用程序按预期执行至关重要。 如果没有正确了解网络流量及其模式,识别潜在问题或效率低下会变得具有挑战性。

Important

2025 年 11 月 30 日开始,AKS 将不再支持或提供 Azure Linux 2.0 安全更新。 从 2026 年 3 月 31 日起,将删除节点映像,并且无法缩放节点池。 通过将 节点池 升级到受支持的 Kubernetes 版本或迁移到 osSku AzureLinux3,以迁移到受支持的 Azure Linux 版本。 有关更多信息,请参阅[停用] AKS 上的 Azure Linux 2.0 节点池

主要优势

  • 深入了解网络性能

  • 增强的故障排除和优化

  • 主动异常情况检测

  • 更好的资源管理和扩展性

  • 容量规划和符合性

  • 简化的指标存储和可视化选项。 在以下项之间进行选择:

    • 适用于 Prometheus 和 Azure 托管 Grafana 的 Azure 托管服务:Azure 管理基础结构和维护,以便可以专注于配置指标和可视化指标。
    • 自带 (BYO) Prometheus 和 Grafana:部署和配置自己的 Prometheus 和 Grafana 实例,并管理底层基础结构

指标捕获

节点级指标

了解节点级别的容器网络的运行状况对于保持最佳应用程序性能至关重要。 这些指标提供流量、丢弃数据包、连接数和其他节点数据的见解。 指标以 Prometheus 格式存储,因此可以在 Grafana 中查看它们。

以下指标按节点汇总。 所有指标都包含以下标签之一:

  • cluster
  • instance (节点名称)

对于 Cilium 数据平面方案,容器网络可观测性仅为 Linux 提供指标。 当前不支持 Windows。 Cilium 公开多个指标,包括容器网络可观测性使用的以下指标。

指标名称 Description 额外的标签 Linux Windows
cilium_forward_count_total 转发的数据包总计 direction
cilium_forward_bytes_total 转发字节数总计 direction
cilium_drop_count_total 丢弃的数据包总计 directionreason
cilium_drop_bytes_total 删除的字节总计 directionreason

Pod级指标 (Hubble指标)

这些 Prometheus 指标包括源 Pod 和目标 Pod 信息,以便可以在精细级别查明与网络相关的问题。 指标涵盖流量、丢弃数据包、TCP 重置和第 4 层/第 7 层数据包流等信息。 对于非 Cilium 数据平面,默认会收集 DNS 错误和 DNS 请求缺失响应等 DNS 指标。 对于 Cilium 数据平面,需要 Cilium FQDN 网络策略来收集 DNS 指标,或者客户还可以通过使用 Hubble CLI 并观察实时日志来对 DNS 进行故障排除。

下表描述了汇总到每个 Pod 的指标(节点信息已保留)。

所有指标包括标签:

  • cluster

  • instance (节点名称)

  • sourcedestination

    • 对于传出流量,应用一个指示源 Pod 命名空间和名称的 标签source

    • 对于传入流量,应用一个指示目标 Pod 命名空间和名称的 标签destination

指标名称 Description 额外标签 Linux Windows
hubble_dns_queries_total DNS 请求总数(按查询) sourcedestinationqueryqtypes(查询类型)
hubble_dns_responses_total DNS 响应总数(按查询/响应) sourcedestinationqueryqtypes(查询类型)、rcode(返回代码)、ips_returned(IP 数)
hubble_drop_total 丢弃的数据包总计 sourcedestinationprotocolreason
hubble_tcp_flags_total 按标志统计的 TCP 数据包总数 sourcedestinationflag
hubble_flows_processed_total 处理的网络流总数(第 4 层/第 7 层流量) sourcedestinationprotocolverdicttypesubtype

Limitations

  • Pod 级指标仅在 Linux 上可用。
  • 从 Kubernetes 版本 1.29 开始,支持 Cilium 数据平面。
  • 指标标签在 Cilium 和非 Cilium 群集之间存在细微差异。
  • 对于基于 Cilium 的群集,DNS 指标仅适用于在其群集上配置了 Cilium 网络策略 (CNP) 的 Pod,或者客户还可以通过使用 Hubble CLI 并观察实时日志来对 DNS 进行故障排除。
  • 目前,流日志在气隙云中不可用。
  • 如果某个 Hubble 节点代理出现故障,并且可能导致 Hubble CLI 中断,Hubble 中继可能会崩溃。
  • 在非 Cilium 数据平面上使用高级容器网络服务(ACNS)时,由于内核限制,Ubuntu 20.04 节点上不提供 FIPS 支持。 若要在此方案中启用 FIPS,必须使用 Azure Linux 节点池。 此限制预计将随 Ubuntu 22 FIPS 的发布一起解决。 有关更新,请参阅 AKS 问题跟踪器。 请参阅下面的 FIPS 支持矩阵:
操作系统 FIPS 支持
Azure Linux 3.0 Yes
Azure Linux 2.0 Yes
Ubuntu 20.04 No

当 ACNS 在 Cilium 数据平面上运行时,此限制不适用。

Scale

Azure Monitor 和 Azure 托管 Grafana 中适用于 Prometheus 的托管服务施加特定于服务的缩放限制。 有关详细信息,请参阅在 Azure Monitor 中大规模抓取 Prometheus 指标

Pricing

Important

高级容器网络服务是一项付费服务。

有关定价的详细信息,请参阅高级容器网络服务 - 定价