云原生网关作为系统架构的入口,将传统的流量网关和微服务网关合二为一,不仅大幅降低了网络开销和运维成本,还提供了丰富的流量治理能力和体系化的可观测能力。本文在云原生网关入门体验基础上介绍如何配置路由策略、查看网关监控、配置告警以及集成鉴权。
前提条件
添加服务
关联容器服务来源
在左侧导航栏,选择路由管理,然后选择来源页签。
单击创建来源。在创建来源面板,配置相关参数,然后单击确定。
配置项
描述
来源类型
选择容器服务。
ACK/ACK Serverless 集群
选择后端服务所在的集群。
除容器服务以外,云原生网关还支持关联MSE Nacos、MSE ZooKeeper、EDAS 内置注册中心等其他服务来源。更多信息,请参见创建服务来源。
添加容器服务
在左侧导航栏,选择路由管理,然后选择服务页签。
单击创建服务。在创建服务面板,配置服务相关参数,然后单击确定。
配置项
说明
容器服务
选择容器服务。
命名空间
选择集群的命名空间。
服务列表
选择目标服务。
除容器服务以外,云原生网关还支持MSE Nacos、DNS 域名、固定地址和EDAS 内置注册中心等服务来源添加服务。更多信息,请参见创建服务。
配置路由
未配置路由
登录MSE网关管理控制台,并在顶部菜单栏选择地域。
在左侧导航栏,选择云原生网关 > 网关列表,单击目标网关名称。
在基本概览页面的网关入口页签,查看网关的入口地址。
说明云原生网关入口地址实际是指SLB地址,您可以将关联的SLB替换成您自有的SLB。具体操作,请参见管理网关入口SLB。
执行以下测试请求命令:
curl -I http://121.196.XX.XX
响应结果(此时未配置任何路由,默认返回404):
HTTP/1.1 404 Not Found date: Mon, 29 Nov 2021 03:36:32 GMT server: istio-envoy transfer-encoding: chunked
为网关配置Mock路由
云原生网关支持单服务、多服务、标签路由等路由方式。更多信息,请参见路由方式概述。
在网关详情页面的左侧导航栏,单击路由管理,选择路由页签,然后单击创建路由。
在创建路由面板,配置相关参数,然后单击保存并上线。具体操作,请参见创建路由。
配置项
描述
路由名称
设置为
mock
。域名
选择默认域名
*
。路径(Path)
选择匹配条件为前缀是,Path以/mock开头。
使用场景
选择Mock。
执行以下测试请求命令:
curl http://121.196.XX.XX/mock
响应结果:
{code:200,data:"hello mock!"}
配置路由策略
未配置路由策略
登录MSE网关管理控制台。
在顶部菜单栏选择地域。
在左侧导航栏,选择云原生网关 > 网关列表,单击目标网关名称。
在基本概览页面的网关入口页签,查看网关的入口地址。
说明云原生网关入口地址实际是指SLB地址,您可以将关联的SLB替换成您自有的SLB。具体操作,请参见管理网关入口SLB。
执行以下测试请求命令:
curl -I http://121.196.XX.XX/demo/item/list
说明该请求命令添加了Nacos来源的Demo服务,您可以根据实际后端服务调整请求Path进行测试。
响应结果:
HTTP/1.1 200 OK x-content-type-options: nosniff x-xss-protection: 1; mode=block cache-control: no-cache, no-store, max-age=0, must-revalidate pragma: no-cache expires: 0 x-frame-options: DENY content-type: application/json content-length: 86 date: Mon, 29 Nov 2021 08:28:00 GMT x-envoy-upstream-service-time: 4 server: istio-envoy
配置限流策略
云原生网关支持配置重写策略、跨域策略、Header设置策略。更多信息,请参见路由方式概述。
单击需要变更的路由规则操作列下的策略配置。
在策略配置页签,单击限流。
网关版本为1.2.25及以上
配置流控规则
流控规则的原理是监控路由的QPS指标,当指标达到设定的阈值时立即拦截流量,避免后端服务被瞬时的流量高峰冲垮,从而保障高可用性。
在限流区域,单击流控规则页签。
在流控规则区域,进行相关配置。
配置项
说明
总体QPS阈值
设置总体QPS阈值。
Web fallback 行为
选择Web fallback 行为为返回指定内容或者跳转到指定页面。
选择Web fallback 行为为跳转到指定页面时:
跳转地址
输入跳转地址。
选择Web fallback 行为为返回指定内容时:
HTTP状态码
设置HTTP状态码。默认为429。
返回 content-type
选择返回 content-type为普通文本或JSON。
HTTP 返回文本
输入返回文本。
是否开启
开启后,流控规则生效。
单击新建或保存,在提示对话框中单击确定。
配置并发规则
并发规则的原理是统计当前网关处理中的请求数之和,当指标达到设定的阈值时立即拦截流量,可配置为后端服务的最大并发处理请求数,实现在高并发下的后端服务可用性保护。
在限流区域,单击并发规则页签。
在并发规则页签,进行相关配置。
配置项
说明
总体并发数阈值
设置总体并发数阈值。
Web fallback 行为
选择Web fallback 行为为返回指定内容或者跳转到指定页面。
选择Web fallback 行为为跳转到指定页面时:
跳转地址
输入跳转地址。
选择Web fallback 行为为返回指定内容时:
HTTP状态码
设置HTTP状态码。默认为429。
返回 content-type
选择返回 content-type为普通文本或JSON。
HTTP 返回文本
输入返回文本。
是否开启
开启后,并发规则生效。
单击新建或保存,在提示对话框中单击确定。
配置熔断规则
熔断规则的原理是监控路由的响应时间或异常比例,当达到指定的阈值时立即降低依赖优先级。在指定的时间内,系统不会调用该不稳定的资源,避免后端服务受到影响,从而保障后端的高可用性。当指定时间过后,再重新恢复对该资源的调用。
在限流区域,单击熔断规则页签。
在熔断规则页签,进行相关配置。
配置项
说明
统计窗口时长
统计的时间窗口长度,取值范围为1秒~120分钟。
最小请求数目
触发熔断的最小请求数目,若当前统计窗口内的请求数小于此值,即使达到熔断条件规则也不会触发。
阈值类型
选择以慢调用比例或异常比例作为阈值。
选择以慢调用比例作为阈值,需要设置允许的慢调用RT(即最大的响应时间),请求的响应时间大于该值则统计为慢调用。在降级阈值中设置触发熔断的慢调用比例。规则开启后,在单位统计时长内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后,熔断器会进入探测恢复状态,若接下来的一个请求响应时间小于设置的慢调用RT,则结束熔断;若大于设置的慢调用RT,则会再次被熔断。
选择以异常比例作为阈值,需要在降级阈值中设置触发熔断的异常比例。规则开启后,在单位统计时长内业务异常数目大于设置的最小请求数目,并且异常的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。
熔断时长(s)
即熔断触发后持续的时间。资源进入熔断状态后,在配置的熔断时长内,请求都会快速失败。
Web fallback 行为
选择Web fallback 行为为返回指定内容或者跳转到指定页面。
选择Web fallback 行为为跳转到指定页面时:
跳转地址
输入跳转地址。
选择Web fallback 行为为返回指定内容时:
HTTP状态码
设置HTTP状态码。默认为429。
返回 content-type
选择返回 content-type为普通文本或JSON。
HTTP 返回文本
输入返回文本。
是否开启
开启后,熔断规则生效。
单击新建或保存,在提示对话框中单击确定。
网关版本为1.1.0-1.2.24
配置流控规则
流控规则的原理是监控路由的QPS指标,当指标达到设定的阈值时立即拦截流量,避免后端服务被瞬时的流量高峰冲垮,从而保障高可用性。
在限流面板,单击流控规则页签,然后单击新增流控规则。
在新增流控防护规则页面,进行相关配置。
在配置防护规则页面,根据您的需要设置总体QPS阈值,并打开是否开启按钮。然后单击下一步配置限流行为。
在配置限流行为页面,您可以通过单击新增行为自定义触发限流后的HTTP应答行为。
关联好限流行为后,单击新建,完成规则创建。
配置并发规则
并发规则的原理是统计当前网关处理中的请求数之和,当指标达到设定的阈值时立即拦截流量,可配置为后端服务的最大并发处理请求数,实现在高并发下的后端服务可用性保护。
在限流面板,单击并发规则页签,然后单击新增并发规则。
在新增并发防护规则页面,进行相关配置。
在配置防护规则页面,根据您的需要去设置总体并发数阈值并打开是否开启按钮。然后单击下一步。
在配置限流行为页面,您可以通过单击新增行为自定义触发限流后的HTTP响应行为。
关联好限流行为后,单击新建,完成规则创建。
配置熔断规则
熔断规则的原理是监控路由的响应时间或异常比例,当达到指定的阈值时立即降低依赖优先级。在指定的时间内,系统不会调用该不稳定的资源,避免后端服务受到影响,从而保障后端的高可用性。当指定时间过后,再重新恢复对该资源的调用。
在限流面板,单击熔断规则页签,然后单击新增熔断规则。
在新增熔断防护规则页面,进行相关配置。
在配置防护规则页面,根据您的需要去设置总体并发数阈值并打开是否开启按钮。然后单击下一步。
参数
描述
统计窗口时长
统计的时间窗口长度,取值范围为1秒~120分钟。
最小请求数目
触发熔断的最小请求数目,若当前统计窗口内的请求数小于此值,即使达到熔断条件规则也不会触发。
阈值类型
选择以慢调用比例或异常比例作为阈值。
选择以慢调用比例作为阈值,需要设置允许的慢调用RT(即最大的响应时间),请求的响应时间大于该值则统计为慢调用。在降级阈值中设置触发熔断的慢调用比例。规则开启后,在单位统计时长内请求数目大于设置的最小请求数目,并且慢调用的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。经过熔断时长后,熔断器会进入探测恢复状态,若接下来的一个请求响应时间小于设置的慢调用RT则结束熔断,若大于设置的慢调用RT则会再次被熔断。
选择以异常比例作为阈值,需要在降级阈值中设置触发熔断的异常比例。规则开启后,在单位统计时长内业务异常数目大于设置的最小请求数目,并且异常的比例大于阈值,则接下来的熔断时长内请求会自动被熔断。
熔断时长
即熔断触发后持续的时间。资源进入熔断状态后,在配置的熔断时长内,请求都会快速失败。
熔断恢复策略
熔断器进入恢复阶段(半开启状态)的恢复策略。
单次探测恢复:经过熔断时长后,熔断器会对接下来的一个请求进行探测,若该请求符合预期(不为慢调用或没有异常),则结束熔断;否则重新回到熔断阶段。
在配置限流行为页面,您可以通过单击新增行为自定义触发限流后的HTTP响应行为。
关联好限流行为后,单击新增,完成规则创建。
执行以下测试请求命令:
curl -I http://121.196.XX.XX/demo/item/list
响应结果(开启限流策略后,HTTP状态码返回429):
HTTP/1.1 429 Too Many Requests x-local-rate-limit: true content-length: 18 content-type: text/plain date: Mon, 29 Nov 2021 08:28:01 GMT server: istio-envoy
监控报警
MSE云原生网关支持查看网关监控数据,包含监控中心和日志中心。同时基于应用实时监控服务ARMS提供的应用监控报警功能,可以在满足报警条件时通过邮件、短信、钉钉等渠道实时报警,帮助您主动发现异常。
查看监控数据
登录MSE网关管理控制台。
在顶部菜单栏选择地域。
在左侧导航栏,选择云原生网关 > 网关列表,单击目标网关名称。
在左侧导航栏,选择观测分析 > 业务监控,根据需要查看监控数据。具体操作,请参见查看网关监控数据。
添加告警联系人
配置告警规则
灰度发布
云原生网关支持单服务、多服务、标签路由等路由方式。更多信息,请参见路由方式概述。
配置单服务多版本权重灰度
登录MSE网关管理控制台,并在顶部菜单栏选择地域。
在左侧导航栏,选择云原生网关 > 网关列表,单击目标网关名称。
在左侧导航栏,选择路由管理,然后选择服务页签。
单击需要变更的服务名称。在服务版本区域,单击右侧的添加新版本。在服务版本列表中输入版本名称、标签名以及标签值,然后单击操作列下的图标。部署v1、v2两个版本的服务。具体操作,请参见管理服务版本。
在路由页签,将目标服务的路由方式调整为标签路由,然后单击保存并上线。具体操作,请参见管理路由。
执行以下测试请求命令:
curl http://121.196.XX.XX/version
响应结果:
version:v2(百分二十概率返回) version:v1(百分八十概率返回)
为网关配置全局认证鉴权
MSE云原生网关集成了多种认证鉴权方式,包括JWT、OIDC、IDaaS以及自建认证鉴权等。更多信息,请参见全局认证鉴权。
配置JWT认证鉴权
登录MSE网关管理控制台,并在顶部菜单栏选择地域。
在左侧导航栏,选择云原生网关 > 网关列表,单击目标网关名称。
在左侧导航栏,选择安全管理 > 全局认证鉴权。
在全局认证鉴权页面,单击创建鉴权。在创建鉴权面板,配置网关鉴权相关参数,然后单击确定。具体操作,请参见配置JWT认证鉴权。
执行以下测试请求命令(不带Token请求):
curl -I http://121.196.XX.XX/
响应结果(开启JWT认证后,不带Token的请求被拦截返回403):
HTTP/1.1 403 Forbidden content-length: 19 content-type: text/plain date: Tue, 30 Nov 2021 09:35:09 GMT server: istio-envoy
执行以下测试请求命令(携带Token请求):
curl -I -H "Authorization: Bearer $TOKEN" http://121.196.XX.XX/
响应结果:
HTTP/1.1 200 OK content-type: text/html; charset=utf-8 content-length: 1683 server: istio-envoy date: Tue, 30 Nov 2021 09:35:59 GMT x-envoy-upstream-service-time: 5
相关文档
如果在使用过程中出现问题,您可以参见云原生网关FAQ进行排查,或者使用云原生网关提供的问题排查功能进行排查。关于问题排查功能,请参见云原生网关AI诊断。
- 本页导读 (1)