通过配置云原生API网关路由,可以实现微服务架构的高灵活性和可扩展性,同时也为客户端访问提供了便利。
配置流程
您可以为微服务创建一个云原生API网关,通过从MSE Nacos添加服务或者从容器服务ACK关联服务,然后在网关中为服务创建路由策略,以便该服务通过网关对外提供服务。
根据已有微服务环境,创建云原生API网关。
在云原生API网关中添加服务来源,包括固定地址服务、ACK容器服务、MSE Nacos和DNS域名。
说明如果您选择固定地址服务,请直接在服务列表中添加服务,无需添加服务来源。
添加服务。
云原生API网关能够根据容器服务ACK或MSE Nacos来源获取服务的命名空间,将已有的服务添加到云原生API网关,作为备选服务。
为该服务添加路由策略并发布。
步骤一:新建云原生API网关
登录云原生API网关控制台。
在左侧导航栏,选择实例管理,并在顶部菜单栏选择地域。
在实例管理页面左上角,单击创建实例。
在云原生API网关购买页面中选择相关配置,然后单击立即购买。
配置项
说明
地域
选择网关的开服地域。
网关名称
自定义设置网关的名称。推荐用环境(或加业务领域)命名,例如test、order-prod等,最大长度为64个字符。
网关规格
根据实际需求选择节点规格。
资源组
选择资源组。
网络访问类型
选择公网或私网。
专有网络
选择后端服务所在的专有网络。
说明在选择VPC时,会显示是否存在容器或Nacos集群,避免误选VPC。
可用区选择
自动分配:选择一个交换机,系统会自动分配2个可用区部署网关节点。
交换机
您需要选择交换机,如需创建新的交换机,可以单击前往控制台创建。
日志服务
选中使用日志服务(SLS),为您开通日志服务SLS并开启网关日志投递功能,提供日志分析和仪表盘。相关内容,请参见开启网关日志投递。
服务关联角色
已自动创建。允许云原生API网关访问其他云产品等服务。
说明网关创建过程可能需要5~10分钟时间,请您耐心等待。
返回实例管理页面,查看创建的网关信息和状态。
当网关信息和创建时一致,且状态为运行中,则表示网关创建成功。
步骤二:关联服务来源
登录云原生API网关控制台。
在左侧导航栏,选择实例管理,并在顶部菜单栏选择地域。
在实例管理页面,单击目标网关实例名称。
在左侧导航栏,单击路由管理,然后选择来源页签。
单击创建来源。在创建来源面板,配置相关参数,然后单击确定。
支持容器服务和MSE Nacos服务来源。
当服务来源选择容器服务时,需配置以下参数:
配置项
说明
ACK/ACK Serverless 集群
选择后端服务所在的集群。
说明您在创建网关时需要选择和后端集群相同的VPC,那么服务来源添加时会自动获取该VPC下的集群。
监听K8s Ingress
开启监听Ingress配置后,云原生API网关会自动监听Ingress资源的变化,并使Ingress资源中域名、路由的相关配置生效。
关闭监听Ingress配置后,云原生API网关会放弃监听Ingress资源,并失效之前已监听的Ingress资源中的域名、路由相关配置,请您谨慎操作。
重要通过管控手动配置的域名、路由的相关配置,其优先级高于Ingress资源。
IngressClass
监听关联指定IngressClass的Ingress资源。
当配置成空值时,监听集群中所有的Ingress资源。
当配置成具体值时(仅支持单个值,暂不支持批量配置),监听集群中带有
class
注解或者Spec.IngressClassName
的值与配置值一致的Ingress资源。例如,当配置成nginx
时,监听的Ingress资源包括:IngressClass为nginx
或者未关联任何IngressClass的Ingress资源。
监听命名空间
监听指定命名空间的Ingress资源。
当配置成空值时,监听集群中所有命名空间中的Ingress资源。
当配置成具体值时(仅支持单个值,暂不支持批量配置),监听集群中指定命名空间中的Ingress资源。
更新IngressStatus
开启更新IngressStatus后,被监听的Ingress的Status中IP地址会被修改为云原生API网关关联的SLB IP地址。
安全组授权
容器集群的节点池上配置有安全组。通常情况下,集群外的组件要想访问到集群内的服务,就必须在安全组上开放服务所需的全部端口。
您可以对安全组进行修改。具体操作,请参见设置安全组规则。
当服务来源选择MSE Nacos时,需配置以下参数:
配置项
说明
Nacos 集群
选择集群。
说明只展示MCPEnabled = true的MSE Nacos实例,可在MSE Nacos参数设置中更改。
步骤三:添加服务
建议您从服务来源添加服务,以便网关能够动态获取您的后端服务列表。
登录云原生API网关控制台。
在左侧导航栏,选择实例管理,并在顶部菜单栏选择地域。
在实例管理页面,单击目标网关实例名称。
在左侧导航栏,单击路由管理,然后选择服务页签。
在页面左上角单击创建服务。在创建服务面板,配置服务相关参数,然后单击确定。
服务来源选择容器服务时,需要配置以下配置项:
说明如果在网关中添加了容器服务作为服务来源,网关会从ACK/ACK Serverless集群获取服务列表,将服务列表中的服务及其后端节点地址添加到网关中。
配置项
说明
命名空间
选中集群的命名空间。
默认不展示arms-prom、kube-system和mse-pilot命名空间的服务。
服务列表
在服务列表中选择服务。
服务来源选择MSE Nacos时,需要配置以下配置项:
配置项
说明
命名空间
选中集群的命名空间。
服务列表
在服务列表中选择服务。
默认不展示以consumers开头的服务。
服务来源选择FC 函数计算时,需要配置以下配置项:
配置项
说明
服务名称
选择函数所在的服务名称。
版本或别名
选择函数所在的服务的版本或别名。
函数列表
在函数列表中选择函数。
服务来源选择固定地址时,需要配置以下配置项:
- 说明
如果该服务没有服务发现机制,需要手动添加服务的后端节点地址。
配置项
说明
服务名称
自定义服务名称。
服务地址
服务的后端节点地址,不同来源的服务的后端节点有所不同,但格式均为
<后端节点IP>:<服务端口>
,多个节点通过换行分隔。TLS模式
通过下拉框选择TLS模式。默认选择关闭TLS模式。
关闭:访问服务时,无需开启TLS。
单向TLS:需要使用HTTPS访问服务时开启单向TLS。
双向TLS(mTLS):需要做双向认证时开启mTLS。
服务来源选择DNS 域名时,需要配置以下配置项:
- 说明
云原生API网关支持根据DNS解析的结果作为后端服务地址。
配置项
说明
服务名称
自定义服务名称。
服务端口
域名提供服务的端口。支持1~65535的任意端口。
域名列表
输入域名,例如:www.aliyun.com。多个域名通过换行分隔。
TLS模式
通过下拉框选择TLS模式。默认选择关闭TLS模式。
关闭:访问服务时,无需开启TLS。
单向TLS:需要使用HTTPS访问服务时开启单向TLS。
双向TLS(mTLS):需要做双向认证时开启mTLS。
说明云原生API网关不会修改您的请求,当请求转发到后端域名服务时,并不会将Host重写为您配置的域名。如果您需要配置域名,请参见配置重写策略。
步骤四:为服务配置路由规则
登录云原生API网关控制台。
在左侧导航栏,选择实例管理,并在顶部菜单栏选择地域。
在实例管理页面,单击目标网关实例名称。
在左侧导航栏,单击路由管理,然后在路由页签单击创建路由。
在创建路由页面,配置相关配置项,然后单击保存。
说明匹配规则之间是“与”关系,即填写的规则越多匹配的范围越小。
路由之间匹配的优先级与路由配置页面展示排列顺序一致。
配置项
描述
路由名称
自定义路由名称。您还可以单击添加描述对路由进行说明。
域名
选择在路由需要匹配的域名,支持选择多个域名。
如果您需要创建新的域名,可以直接单击创建域名,在面板中进行创建。
匹配规则
路径(Path)
设置匹配HTTP请求中的Path参数。
相同匹配规则时Path越长优先级越高。
不同匹配规则时等于 > 前缀是 > 正则匹配。
等于:即完全匹配。例如,Path等于
/user
。前缀是:以前缀作为匹配条件。例如,Path以
/user
开头。正则匹配:以正则表达式作为匹配条件。
方法(Method)
设置匹配HTTP请求中的Method参数。支持选择多种HTTP方法,默认为ANY。
请求头(Header)
设置匹配HTTP请求中的Header参数,相同匹配规则时参数越多优先级越高。
请求参数(Query)
设置匹配HTTP请求中的Query参数,相同匹配规则时参数越多优先级越高。
使用场景
选择当前路由的目标服务类型。
基础场景:单服务
灰度场景:多服务、标签路由
其他场景:Mock、重定向
关于目标服务不同类型说明,请参见路由方式概述。
说明涉及权重的目标服务流量比例总和要求为100%。
后端服务
选择已关联的后端服务和端口。
说明您可以单击关联服务,在面板选择来源和服务。
不同的来源类型允许添加的来源数量有不同的限制。
容器服务不得超过5个。
Nacos和Zookeeper只能添加一个。
SAE无数量限制。
Fallback
设置Fallback服务,您需要选择指定的服务。当路由指向的后端服务没有可用节点时,原请求会访问此处指定的Fallback服务。
说明目前仅支持HTTP服务之间的Fallback能力。
超时时间(秒)
输入超时时间。默认为60秒。如果为0,则表示永不超时。
重试次数(次)
输入重试次数。默认为2次。如果为 0,则表示禁用重试。
重试条件
选择重试条件。
重试状态码
添加重试状态码,可添加多个。
后续步骤
完成上述步骤后,您就为部署在容器服务ACK中的微服务开启了云原生API网关管理。登录云原生API网关控制台,即可使用云原生API网关对您的应用进行服务管理。