ASM网关概述

更新时间: 2023-11-13 16:12:33

ASM网关可以为网格内应用提供统一的流量入口和出口,实现端到端安全加密和流量控制。本文介绍ASM入口网关和出口网关的相关功能。

入口网关

入口网关服务为Kubernetes集群提供了七层网关功能,根据HTTP请求的内容将来自同一个TCP端口的请求分发到不同的Kubernetes服务。ASM提供了网关的全生命周期管理,支持多种协议,具有强大的流量管理、安全以及可观测能力。

功能

描述

相关文档

生命周期管理

ASM提供入口网关服务,为网格内应用提供统一的流量入口。您可以通过ASM控制台管理入口网关服务。

创建入口网关

使用网络型负载均衡NLB

网络型负载均衡NLB(Network Load Balancer)是阿里云面向万物互联时代推出的新一代四层负载均衡,支持超高性能和自动弹性能力,具有更高的可用性,能够进一步提升网关流量的稳定性。ASM网关支持使用NLB。配置ASM网关的ServiceType为LoadBalancer时,默认会关联一个CLB作为网关Service的负载均衡器。

在ASM入口网关中使用网络型负载均衡NLB

多协议支持

ASM网关提供了图形化创建目标规则和虚拟服务的功能,无需您编写YAML文件,简化流量管理操作。

使用ASM网关的流量路由功能

ASM的流量管理功能可以实现应用的流量迁移。您可以通过入口网关,在TCP服务的两个版本之间进行流量灰度切换。

通过ASM实现TCP应用流量迁移

ASM支持HTTPS协议和动态加载证书功能,保障流量的安全。

通过ASM网关启用HTTPS安全服务

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

通过ASM入口网关访问网格内gRPC服务

ASM入口网关支持协议转码的能力,使用户及其客户端可以使用HTTP/JSON访问服务网格内的gRPC服务。

基于ASMGrpcJsonTranscoder实现以HTTP/JSON方式请求网格内gRPC服务

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

通过入口网关访问网格内WebSocket服务

常用流量管理

在大促等场景下,瞬间洪峰流量会使系统超出最大负载,调用大量堆积,导致整个调用链路卡死。ASM提供了本地限流功能,支持对网关和服务进行流量限制,达到保护系统的目的。

使用ASM本地限流功能

ASM支持通过编写VirtualService和DestinationRule等资源,实现微服务的无侵入的流量治理能力,包括流量路由、限流、熔断、镜像流量等功能。

使用ASM路由级熔断功能

ASM支持使用Gateway API对集群内应用访问的路由规则进行条件限制。

使用Gateway API定义路由规则

ASM支持在管理的集群中使用Ingress资源,并指定特定的ASM网关作为Ingress Controller。

使用ASM网关作为Ingress Controller暴露集群内的服务

流量镜像功能可以将生产的流量镜像拷贝到测试集群或者新的测试版本中,在不影响实际生产环境的情况下,测试具有实际生产流量的服务,帮助您减低版本变更的风险。

基于网格层跨集群使用流量镜像

安全支持及证书动态加载

ASM支持HTTPS协议和动态加载证书功能,保障流量的安全。

通过ASM网关启用HTTPS安全服务

ASM证书管理可以在网格内进行统一的证书同步,能够更好地支持ASM的多集群场景,还提供了证书信息展示和过期告警等功能,方便您进行证书维护。

使用ASM证书管理

通过ASM网关启用TLS透传,可以实现对集群内HTTPS服务的安全入口访问。

通过ASM网关启用TLS透传

在ASM网关配置TLS协议版本,增强网关的安全性。

在ASM网关配置TLS协议版本增强安全性

ASM通过ASM网关配置基于mTLS的gRPC服务,保障数据的安全。

通过ASM网关配置基于mTLS的gRPC服务

ASM支持以图形化的方式为域名添加证书,便于您使用HTTPS等协议访问域名,提升服务网关的安全性。

为域名添加证书

ASM网关支持对接WAF,并且可以通过自定义访问日志格式来查看WAF对回源请求添加的Header,更方便线上运维。

使用ASM网关对接WAF

ASM网关支持HTTPS安全支持和证书动态加载功能,以此提高ASM网关的安全性。您可以在ASM网关的CLB侧绑定证书,创建HTTPS类型的监听。HTTPS请求将在CLB侧解密,然后以HTTP请求的形式发送给后端的网关Pod。

在ASM网关的CLB侧创建HTTPS监听

ASM支持使用cert-manager颁发ASM网关的证书。基于HTTPS协议,通过ASM网关访问服务,保证数据传输的安全。

使用cert-manager管理网关的证书

授权管理

ASM网关支持从源地址、HTTP域名和端口三个维度配置黑白名单,保障网格内应用的安全。

在ASM网关中配置黑白名单

ASM提供自定义授权服务。在ASM网关上加入鉴权流程,以确保只有得到授权的情况下,才能访问关键服务。

在ASM网关上使用自定义授权服务

OIDC(OpenID Connect)是一种身份认证与授权的协议,通常用于实现单点登录(SSO)。您可以在ASM网关上配置基于OIDC协议的单点登录。

在ASM网关中配置OIDC单点登录

JWT(JSON Web Token)是一种常用的身份认证和鉴权机制。JWT中会携带一些用户信息和一个存储加密后信息的字段。将加密后的信息字段进行解密,与原始用户信息字段进行比较,可以验证该用户的信息是否有效,从而完成身份认证。您可以在ASM网关中配置JWT认证。

在ASM网关中配置JWT认证

在ASM网关上使用OPA执行引擎对到达网关的请求进行认证和鉴权。

在ASM网关中接入OPA执行引擎

ASM支持“无侵入”的接入自定义授权服务,以实现网格内应用的单点登录,降低应用的改造、运维等成本。

ASM集成阿里云IDaaS实现网格内应用单点登录

使用自建的Keycloak作为IdP来提供身份服务,可以实现网格内应用的单点登录。

ASM中集成Keycloak实现网格内应用单点登录

服务网格中配置JWT(JSON Web Token)请求授权,可以实现来源认证,又称为最终用户认证。在接收用户请求时,该配置用于认证请求头信息中的Access Token是否可信,并授权给来源合法的请求。

在ASM中对入口网关进行JWT请求鉴权

当一个客户端去访问另一个不同域名或者同域名不同端口的服务时,就会发出跨域请求。如果此时该服务不允许其进行跨域资源访问,那么就会因为跨域问题而导致访问失败。ASM支持在Virtualservice中配置corsPolicy,实现跨域访问。

在ASM中实现跨域访问

在ASM网关之前不存在7层代理或者已存在7层代理的场景下,限制特定IP访问网格内应用。

限制特定IP访问网格内应用

定制化功能

ASM支持多个入口网关使用同一个网关配置规则,简化您的配置操作。

为多个入口网关配置统一的网关规则

您可以为ASM网关绑定多个CLB,实现多个CLB可以访问一个ASM网关。

使用多个CLB访问ASM网关

您可以在HTTP请求头中获取客户端真实IP,通过使用授权策略设置访问入口网关的IP黑名单和白名单,提高网关的安全性。

在HTTP请求头中获取客户端真实IP

ASM支持创建IPv6地址的ASM网关,提高网关安全性。

创建IPv6网关

当数据面Kubernetes集群中的Pod无法访问入口网关的CLB地址时,您可以在Kubernetes集群内通过ClusterIP或者服务名等方法访问CLB地址。

如何解决Kubernetes集群中的Pod无法访问入口网关的CLB地址的问题?

出口网关

ASM提供出口网关服务,为网格内应用提供统一的流量出口。您可以通过控制台或KubeAPI的方式管理出口网关。

功能

描述

相关文档

生命周期管理

ASM提供出口网关服务,为网格内应用提供统一的流量出口。您可以通过ASM控制台管理出口网关服务。

创建出口网关

定制化功能

ASM网关不仅可以作为Ingress网关,还可以作为Egress出口网关,为网格内应用提供统一的出口,帮助您更便捷地使用网格提供的可观测及安全能力,提升运维效率。

为网格内流量配置统一的出口网关

ASM自1.16.4版本起,支持使用ASMEgressTrafficPolicy CRD。本文介绍如何使用ASMEgressTrafficPolicy管理出口流量。

使用ASMEgressTrafficPolicy管理出口流量

网关规则

网关规则定义了在网格出入口操作的负载均衡器,用于接收传入或传出的HTTP/TCP连接。

功能

描述

相关文档

生命周期管理

您可以在ASM控制台对网关规则进行创建、修改和删除操作。

管理网关规则

网关高级特性

ASM支持配置高可用的ASM网关,提供优雅下线、可观测性等功能,降低流量的损耗,减少您的运维成本。

功能

描述

相关文档

高可用性配置

配置高性能和高可用的ASM网关,可以保障业务的连续性。

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

将网关Pod部署到指定节点,可以提高ASM网关的高可用性并增强与业务Pod的隔离性。

部署网关Pod到指定的节点

ASM Serverless网关是基于虚拟节点和ECI提供的一种Serverless网关形态,用于支撑各种弹性和免节点运维的场景。

使用ASM Serverless网关支撑弹性业务场景

ASM网关作为业务的流量入口,为了避免服务不可用,您可以通过配置Pod反亲和性策略等方法提高网关高可用性。

增强ASM网关高可用性

ASM网关在缩容或滚动重启时,会删除网关Pod而导致少量流量损失。启用优雅下线功能后,即使删除网关Pod,现有连接在一定时间内仍能正常传输,避免流量损失。

使用优雅下线功能避免流量损失

ASM网关支持同时部署在多个集群,以提高服务可用性。您可以将服务部署在多个集群,然后为多集群配置统一的入口网关,即可代理多个集群对应的入口流量。

为多个集群配置统一的入口网关

可观测性能力

容器服务ACK集成了日志服务功能,您可在创建集群时启用日志服务,采集服务网格数据平面集群入口网关的访问日志。

生成和采集ASM网关访问日志

ASM网关的监控指标配置主要分为生成和采集。生成指网关本身生成相应的监控指标,您可以自定义网关生成哪些监控指标;采集指将生成的监控指标采集到阿里云ARMS Prometheus,阿里云ARMS可以提供监控指标的存储、分析以及展示等功能。生成和采集是分开配置的,您可以自行决定是否生成或采集监控指标。

生成和采集ASM网关监控指标

请求Payload处理

在应用程序中添加HTTP响应头,可以提高Web应用程序的安全性。

在ASM中通过EnvoyFilter添加HTTP响应头

启用ASM网关的压缩能力,将对HTTP请求的Response进行压缩,可以提高响应速度,降低流量消耗。

为ASM网关启用压缩

与现有系统整合

ASM支持将您自建的Istio IngressGateway或Nginx Ingress迁移至ASM网关,进行统一的管理,降低您的维护成本,提高运维效率。

功能

描述

相关文档

迁移自建网关

ASM支持自建Istio IngressGateway迁移至ASM网关。

自建Istio IngressGateway如何迁移至ASM网关

ASM支持Nginx Ingress迁移至ASM网关。

Nginx Ingress如何迁移至ASM网关

ASM支持将Nginx的常用配置迁移至ASM网关。

将Nginx的常用配置迁移至ASM网关

阿里云首页 服务网格 ASM 相关技术圈