Knative网关选型建议

Knative网关提供了一种灵活的方式来接入外部流量,并将这些流量路由到不同的Knative服务上。ACK Knative支持ALB、MSE、ASM、Kourier四种网关,每种网关都有其特定的优势和适用场景。本文从产品定位、产品架构、基础路由、运维能力、性能特点、支持的主流协议和可观测能力进行对比,供您完成网关选型。

Knative网关介绍

  • ALB:在阿里云应用型负载均衡ALB(Application Load Balancer)之上提供更为强大的Ingress流量管理方式,提供全托管免运维的方式,并且提供自动弹性能力。

  • MSE(Microservices Engine):兼容K8s Ingress标准的下一代网关产品,将传统的流量网关和微服务网关功能合并。

  • ASM(Alibaba Cloud Service Mesh):统一管理微服务应用流量、兼容Istio的托管式平台。通过流量控制、网格观测以及服务间通信安全等功能,简化您的服务治理,并为运行在异构计算基础设施上的服务提供统一的管理能力。

  • Kourier:基于Envoy架构实现的一款Knative社区开源的轻量级网关。

Knative网关差异对比

类型

ALB

MSE

ASM

Kourier

产品定位

  • 专注于应用层负载,ALB提供七层负载均衡功能,与容器技术深度集成。

  • 支持HTTP、HTTPS和QUIC等应用层协议,适用于处理高容量、需要自动弹性伸缩的场景。

  • 支持多种服务灰度策略(如金丝雀发布、A/B测试、蓝绿部署等),并能够与WAF、FC、PrivateLink、TR等云产品结合使用。

  • 将传统流量网关、微服务网关和安全网关三合一,通过硬件加速、WAF本地防护和插件市场等功能,构建一个高集成、高性能、易扩展、热更新的云原生网关。

  • 提供七层流量处理能力与丰富的高级路由功能。支持多种服务发现模式和多种服务灰度策略,包括金丝雀发布、A/B测试、蓝绿部署和自定义流量比例分发。

  • 专门面向应用层负载场景,与容器深度集成,网关在转发请求时直连后端Pod IP。

提供一个全托管式的服务网格平台,与开源的Istio服务网格兼容。旨在简化服务治理,包括服务调用之间的流量路由与拆分管理、服务间通信的认证安全以及网格的可观测性能力,可以减轻开发与运维的工作负担。

基于Envoy实现的轻量级网关,是社区为Knative Serving服务访问提供的网关实现。提供必要的路由和服务发现功能。

产品架构

  • 构建在阿里洛神云网络平台之上。

  • 基于CyberStar自研平台,支持自动弹性伸缩。

  • 基于开源Higress项目,控制面使用Istio,数据面使用Envoy。关于开源Higress项目的详细介绍,请参见Higress项目

  • 用户独享实例。

  • Istio控制平面的组件全部托管。同时,保持与Istio社区的兼容。

  • 一个托管了控制平面的ASM实例可以支持来自多个Kubernetes集群的应用服务或者运行于ECI Pod上的应用服务。

  • 基于Envoy。

  • 手动配置合适的副本数和资源限制。

基础路由

  • 基于内容、源IP的路由。

  • HTTP标头改写、重定向、重写、限速、跨域、会话保持等。

  • 除了请求方向转发规则,也支持响应方向转发规则。

  • 基于内容的路由。

  • 支持HTTP标头改写、重定向、重写、限速、跨域、超时和重试等功能。

  • 支持标准的轮询、随机、最小请求数、一致性Hash和预热等负载均衡模式。

  • 支持千级别的路由规则。

  • 自定义流量路由规则。

  • 跨多个Kubernetes集群。

  • 精细化流量管理。

  • 开箱即用混沌工程能力。

  • 基于内容的路由。

  • HTTP标头改写等。

运维能力

  • 全托管,免配置。

  • 自动弹性,支持超大容量。

  • 处理能力随着业务峰值自动伸缩。

全托管,免运维。

  • 一键安装、部署、升级。

  • 控制平面组件托管。

  • 只需专注于业务应用开发。

  • 兼容Istio社区规范。

  • 组件自行维护。

  • 通过配置HPA进行扩缩容。

  • 需要主动配置规格调优。

性能

  • 单实例支持100万QPS。

  • 单实例支持千万级最大连接。

  • 默认使用SSL硬件加速。

  • 相比开源Nginx Ingress,在CPU水位30~40%时,TPS高出约90%。

  • 启用硬件加速后,HTTPS性能可提升约80%。

  • 业务多地域部署,客户端就近访问,结合DNS智能解析,可以将域名解析到客户端最近的IP地址。

  • 使用CLB访问ASM网关实例。

  • TLS加速商业版的ASM网关支持基于Intel的MultiBuffer实现HTTPS请求加速,实测QPS提升80%的性能。

性能依赖手动调优。

支持的主流协议

支持HTTP、HTTPS、QUIC、WebSocket、WSS、gRPC协议。

  • 支持HTTP、HTTPS、HTTP 3.0、WebSocket、gRPC协议。

  • 支持HTTP、HTTPS转换为Dubbo协议。

  • 支持HTTPS协议和动态加载证书功能。

  • 支持通过入口网关访问内部gRPC服务,并在gRPC的两个版本之间进行流量切换。

  • 支持协议转码的能力,可以使用HTTP/JSON访问服务网格内的gRPC服务。

  • 支持通过入口网关访问网格内WebSocket服务。

支持HTTP、HTTPS、gRPC协议。

可观测能力

  • 支持通过Access Log和Metrics采集日志。

  • 支持将日志服务SLS集成到Access Log。

  • 支持将CloudMonitor集成到Metrics。

  • 支持报警功能。并支持将报警功能对接CloudMonitor。

  • 支持通过Access Log采集日志,并支持集成SLS和阿里云Prometheus。

  • 支持通过阿里云Prometheus配置监控和告警。

  • 支持Tracing,并支持集成TracingAnalysis和SkyWalking。

  • 拥有直观易用的可视化网格拓扑及分析。

  • 支持自建Prometheus监控的集成。

  • 支持云产品ARMS监控的集成。

  • 支持云产品日志服务SLS的集成。

  • 支持自定义监控指标

  • 支持服务级别目标(SLO)策略。

通过Access Log采集日志。

综上对比,ALB专注于应用层负载均衡;云原生网关MSE专注于微服务场景;ASM提供服务网络(Istio)的能力;如果仅需要基础的网关能力,可以选择Kourier。

相关文档

关于如何在Knative中使用这几种网关以及相关注意事项,请参见使用ALB网关使用ASM网关使用MSE网关并实现精准自动弹性使用Kourier网关