现代分布式系统需要比简单的轮询分发更复杂的流量管理。企业需要细粒度的控制能力,将特定比例的请求路由到不同的后端,而原生的 Azure 负载均衡服务尚不支持此功能。本文演示了如何使用 Istio 为 AKS(Azure Kubernetes 服务)工作负载实现加权负载均衡,以访问后端 AKS 内部服务。文章涵盖了金丝雀发布、A/B 测试以及管理容量不均的后端等场景。Azure 标准负载均衡器工作在第四层(传输层),缺乏加权路由和 HTTP 感知能力;而 Azure 流量管理器的 DNS 级加权则受缓存延迟影响。Istio 利用 Envoy 代理实现了第七层(应用层)的流量控制,支持加权分发和会话亲和性等特性。本文介绍了两种使用场景:所有托管在 AKS 上的工作负载,以及 AKS 入口配合基于 Azure VM 的后端。在这两种场景中,Istio 的入口网关作为统一的第七层执行点,抽象了后端的位置。由于 Windows Pod 无法运行 Envoy 边车,因此在 STRICT mTLS 环境中,必须在 DestinationRule 中显式禁用 TLS。对于基于 VM 的后端,通过 ServiceEntry 将其注册为 Istio 内可路由的服务。这种基于 Istio 的方法将路由逻辑集中化,使组织能够在保留现有 VM 应用的同时引入现代化的流量管理。与 NGINX 相比,Istio 提供了更丰富的可观测性和原生的 Kubernetes 集成。最终,Istio 弥补了 Azure 第四层负载均衡的不足,为内部和外部后端提供了应用感知的加权路由能力。
techcommunity.microsoft.com
Istio‑Based Weighted Traffic Management on AKS for Enterprise Workloads
Create attached notes ...
