
随着云原生技术的普及,容器和 Kubernetes 已经成为现代应用部署的核心。基于微服务的容器化工作负载不仅更易于扩展,具有更强的可移植性,而且资源使用效率更高。借助 Kubernetes 管理这些工作负载,企业能够在多样化的计算资源上部署先进的人工智能和机器学习应用,从而显著提升大规模运营效率。随着应用架构的演进,企业对精细化安全控制和深度可观测性的需求不断增长。而容器的短暂性特性有时无法满足日益增长的需求,AKS 的高级容器网络服务正好解决这一问题。
我们很高兴宣布,Azure Kubernetes 服务(AKS)的高级容器网络服务正式上线!这是一套专为云原生环境量身打造的解决方案,旨在全面提升 Kubernetes 和容器化环境的安全性和可观测性。通过高级容器网络服务,您将获得无缝集成的体验,不仅能保持强大的安全防护,还能深入洞察网络流量和应用性能,确保容器化应用的安全性,同时满足性能和可靠性需求,让您自信地管理和扩展基础设施。

高级容器网络服务的两大功能:安全性和可观测性 。
01
容器网络可观测性配备了与网络相关的监视和诊断工具,为容器化工作负载提供可见性。 它可以解锁 AKS 群集上的 Hubble 指标、Hubble 的命令行界面 (CLI) 和 Hubble 用户界面 (UI),为容器化工作负载提供深入、可操作的见解,让您能够检测并确定 AKS 中网络相关问题的根本原因。 这些功能可确保容器化应用程序安全且合规,使您能够自信地管理基础结构。
容器网络可观测性功能包括:
节点级指标:这些指标可按节点统计流量、丢弃的数据包数、连接数等信息。指标以 Prometheus 格式存储,可在 Grafana 中查看。
Hubble 指标(DNS 和 Pod 级指标):这些 Prometheus 指标包括 Kubernetes 上下文(如源和目标 pod 名称和命名空间信息),从而可以在更细粒度的级别上定位网络相关问题。指标涵盖流量、丢弃的数据包数、TCP 重置数、L4/L7 数据包流等。此外,还有 DNS 指标(目前仅适用于非 Cilium 数据平面),包括 DNS 错误数和 DNS 请求缺少响应数。
Hubble 流日志:通过流日志可深入了解群集的网络活动。与 Pod 之间的所有通信都会记录,方便您随时调查连接问题。流日志有助于回答以下问题:服务器是否收到了客户端的请求?客户端请求与服务器响应之间的往返延迟是多少?
Hubble CLI:Hubble 命令行接口 (CLI) 可以使用可自定义的筛选和格式检索整个群集中的流日志。
Hubble UI:Hubble UI 是一个用户友好的基于浏览器的界面,用于浏览群集网络活动。它基于流日志创建服务连接图,并显示所选命名空间的流日志。用户负责预配和管理运行 Hubble UI 所需的基础结构。

02
容器网络安全功能可以增强对跨容器的网络流量的控制。使用基于 Cilium 的策略,与传统的基于 IP 的方法相比,提供了更精细、更用户友好的网络安全管理方法。
容器网络安全中提供的第一项功能:完全限定域名筛选(FQDN)。FQDN 筛选提供了一种高效且用户友好的方法来管理网络策略。通过基于域名而不是 IP 地址来定义这些策略,组织可以显著简化策略管理流程。这种方法消除了需要在 IP 地址改变时频繁更新的需求,从而减轻了管理负担并充分降低了配置错误的风险。
在 Kubernetes 群集中,Pod IP 地址经常发生变化,这使得使用 IP 地址的安全策略保护 Pod 变得非常困难。FQDN 筛选允许您使用域名而不是 IP 地址创建 Pod 级别策略,这样就无需在 IP 地址发生变化时更新策略。
下来我们将深入探讨如何借助 FQDN 筛选,帮助您打造更为可靠的容器网络安全防护。
03
该解决方案由两个主要组件构成:Cilium 代理和安全代理 DNS 代理。两者的结合,使得 FQDN 筛选能够无缝集成到 Kubernetes 集群中,实现对外部通信的高效且易于管理的控制。

Cilium 代理
Cilium 代理是集群中的关键网络组件,它作为 DaemonSet 在集群中运行 Azure CNI powered by Cilium。其主要职责包括处理集群中 Pod 的网络连接、负载均衡以及网络策略。对于启用了 FQDN 策略的 Pod,Cilium 代理会将数据包重定向到 DNS 代理进行名称解析,并根据从 DNS 代理获得的 FQDN 到 IP 的映射更新网络策略。
扫码详细了解如何在 Azure Kubernetes 服务 (AKS) 中配置 Azure CNI Powered by Cilium

安全代理 DNS 代理
安全代理中的 DNS 代理以 DaemonSet 的形式运行在启用了高级容器网络服务的 Azure CNI powered by Cilium 集群中。它负责为 Pod 进行 DNS 解析,解析成功后将 FQDN 到 IP 的映射更新至 Cilium 代理。通过这种方式,网络安全策略能够在 DNS 层面上得到有效保障。
将安全代理 DNS 代理与 Cilium 代理分别部署为独立的 DaemonSet(如:acns-security-agent),即使 Cilium 代理出现故障或升级,Pod 也能持续进行 DNS 解析。此外,通过 Kubernetes 的 maxSurge 升级功能,DNS 代理在升级期间也能保持正常运行。这一设计确保了客户关键工作负载的网络连接不会因 DNS 解析问题而受到影响。
04
在高级容器网络服务的预览阶段,已有多家客户已开始部署该服务,主要应用场景:
排查应用性能下降和 DNS 解析超时问题:通过 DNS 错误和相关指标,帮助快速定位并解决应用性能问题。
解决 Pod 间或外部端点的间歇性连接中断:通过查看 Pod 指标(如丢包数、TCP 错误、重传次数等),帮助集群管理员快速识别并修复连接问题。
使用流日志调试网络连接问题:流日志提供全方位的网络可见性,帮助运维人员迅速定位和解决网络故障。
增强集群安全性并提高策略的灵活性:通过使用 FQDN 代替 IP 地址设置 Cilium 网络策略,不仅简化了策略管理,还能确保策略在 IP 地址更改时继续有效,大大提高了网络安全的可维护性。

在 H&M 集团,平台工程是我们的核心实践,依托云原生内部开发平台,赋能自主产品团队构建和托管微服务。深度网络可观测性和强大的安全性是我们成功的关键。实时流日志加速了我们排查连接问题的能力,而 FQDN 筛选确保了与可信外部域的安全通信。
—— Magnus Welson,
H&M 集团容器平台工程经理

高级容器网络服务提供的高级可观测性,在我们调查日本烟草国际(JT International)一个 AKS 集群中的高影响问题时,给予了极大的帮助。借助该服务提供的洞察,我们能够将问题精准定位到 DNS 性能问题,并确认我们采取的补救措施已成功解决问题。
—— Andrew Wytyczak-Partyka,
Codewave CEO,Alexandru Popovici,日本烟草国际 DevOps 与安全经理

在 Ferrovial,在我们的企业 Kubernetes 平台(Kubecore)上,借助高级容器网络服务,我们能够通过实时网络流量工具调试应用程序中的连接问题,获得完整的详细信息。同时,工作负载级别的 DNS 错误和指标为我们提供了深入的网络可视性,帮助我们更快地排查应用性能下降的原因。
—— Victor Fernandez,
Ferrovial 高级云架构师
相关文章推荐
阅读更多关于高级容器网络服务的文档,并立即在您的集群中试用。






