配置高性能和高可用的ASM网关

配置高性能和高可用的ASM网关,可以保障业务的连续性,提高用户体验。本文介绍如何配置ASM网关实现业务请求的高性能和高可用。

背景信息

ASM网关是Istio的一个重要组件,主要用于管理服务的入口和出口流量。组件

当创建一个ASM网关时,同时会在Kubernetes集群的istio-system命名空间下创建一个对应的istio-ingressgateway Deployment ,这个Deployment会关联一个CLB,相关实例作为CLB的后端实例。

image.png

如上图所示,可以看到业务请求流量会经过的路径。从高性能、高可用角度来说,请求经过的每个路径都会影响实际请求的响应时间以及可用性。接下来将从CLB、ASM网关两个关键节点介绍如何实现业务请求的高性能和高可用。

高性能

  • 业务多地域部署,客户端就近访问

  • 使用CLB访问ASM网关实例

    • 创建Kubernetes集群时,如果您使用的是Terway CNI,CLB将会直接对接Gateway Pod网络。如果您使用的是Flannel CNI,则会通过Node节点的NodePort多一层网络转发。如果您想提高性能,推荐使用Terway。关于Terway和Flannel对比,请参见Terway与Flannel对比

    • 当网关流量较大,单个CLB无法满足性能需求时,您可以配置多个CLB关联同一个网关,从而可以使用多个CLB访问ASM网关。具体操作,请参见使用多个CLB访问ASM网关

  • TLS加速

    商业版的ASM网关支持基于Intel的MultiBuffer实现HTTPS请求加速,实测QPS提升80%的性能。具体操作,请参见启用Multi-Buffer实现TLS加速

高可用

  • 业务多地域部署,多地域多活,实现跨地域容灾

    关于跨地域容灾的具体操作,请参见基于多集群实现跨地域容灾和流量负载均衡

  • CLB高可用

    ASM支持配置多个CLB实例关联同一网关,当其中一个CLB故障时,您可以使用另一个CLB。具体操作,请参见使用多个CLB访问ASM网关

  • ASM网关节点级别的高可用

    您可以将ASM网关的Pod分布到不同的Node节点或者可用区,增强网关高可用性。具体操作,请参见增强ASM网关高可用性

  • 业务服务部署优雅上下线

    业务服务对应的Deployment可以配置PreStop脚本来实现Pod的优雅终止,避免请求失败或丢失。具体操作,请参见方案二:配置Sidecar代理生命周期

  • ASM网关的优雅上下线

    使用ASM网关的优雅上下线功能后,当对网关进行扩缩容时,现有连接在一定时间内仍能正常传输,流量将不会有损失。具体操作,请参见使用优雅下线功能避免流量损失