云原生网关FAQ

更新时间: 2023-07-14 10:39:09

本文介绍MSE云原生网关使用过程中的常见问题。

购买创建

网关创建失败?

网关创建失败可能原因如下:

  • 创建网关时会默认为您代购SLB,如果您的账号余额不满100元将代购失败,因此导致的网关创建失败会自动重建恢复。建议您在SLB管理中将代购失败的SLB替换为自有的SLB,具体操作,请参见管理网关入口SLB

  • 当前资源不足可能导致网关创建失败,资源正在调度,您可以提交工单联系我们及时补充资源。

如何设置自动续费?

  1. 登录用户中心

  2. 在左侧导航栏单击订单管理 > 续费管理

  3. 续费管理页面单击手动续费页签,选择网关实例,单击开通自动续费

开通成功后,您可在自动续费页签中查看当前自动续费的实例。

网关按量付费无法转包年包月?

检查您的网关入口是否保留有公测期间关联的SLB,将公测期间SLB替换为自有SLB之后即可转包年包月。具体操作,请参见管理网关入口SLB

网关包年包月的实例规格变更无法降配或缩容?

包年包月即预付费,不支持部分退费,因此不支持缩容或降配。

服务管理

在添加Nacos服务来源时,未发现新创建的Nacos实例?

您可以从以下几点检查Nacos实例:

  • 检查Nacos实例的专有网络VPC和网关的VPC是否是同一个(要求Nacos必须有内网地址)。

  • 检查Nacos实例的参数设置MCPEnabled配置是否打开。

  • 检查当前Nacos实例是否已关联,已关联的不再展示。

无法添加第二个Nacos实例来源?

目前仅支持一个MSE Nacos类型的来源,更换请先删除再添加。如您有特殊需求,请加入钉群(钉群号:34754806)联系技术支持。

ACK容器服务来源限制3个吗?

目前限制支持最多3个ACK容器服务来源。如您有特殊需求,请加入钉群(钉群号:34754806)联系技术支持。

创建服务提示:来源变更中,稍等一分钟再试?

刚添加的ACK来源,网关需要花费一点时间完成认证连接才能同步服务信息。

路由配置

配置了网关路由,但访问提示404?

您可以从以下几点检查路由配置:

  • 检查路由配置是否是已发布状态。

  • 检查是否配置了多域名,访问的域名下是否有相关路由配置(关联了域名的路由不会降级到默认星号域名)。

  • 检查是否是后端服务返回的此状态码。

域名证书

访问页面证书提示无效?

校验证书的域名是否和网关关联的域名匹配,如果有泛域名不匹配的情况,可以考虑使用混合域名证书,一张证书中签发多个泛域名。

是否可以使用非阿里云的证书?

您可以通过在SSL证书服务上传自有证书使用非阿里云的证书。

请求失败

如何处理返回401状态码?

  • 检验是否开启了认证鉴权,具体请求是否授权。

  • 检查是否是后端服务返回的此状态码。

如何处理返回403状态码?

  • 检验是否开启了认证鉴权,具体请求是否非法。

  • 检查是否是后端服务返回的此状态码。

如何处理返回429状态码?

  • 检验是否开启了限流配置,请求量超过了配置的阈值。

  • 检查是否是后端服务返回的此状态码。

如何处理返回404状态码?

  • 检查云原生网关是否存在可匹配的路由规则。如果云原生网关未存在可匹配的路由规则,请在云原生网关为当前请求配置合理的路由规则。

  • 检查后端服务是否存在可匹配的路由规则。如果后端服务未存在可匹配的路由规则,请在后端服务为当前请求配置合理的路由规则。

    说明

    检查是否存在可匹配的路由规则:以Spring家族应用为例,您可以查看Controller代码中的Path是否与云原生网关创建的路由规则Path一致。

如何处理返回503状态码?

  • 检查后端服务所在安全组是否存在问题。查看响应体中是否包含upstream connect error or disconnect/reset before headers. reset reason: connection termination。若包含,请确保后端服务所在的安全组对云原生网关开放访问权限。

  • 后端服务容量不足,触发性能瓶颈。查看后端服务的CPU和内存使用情况,可以对后端服务进行升配或扩容。

  • 后端服务配置的连接空闲时间小于云原生网关全局配置UpstreamIdleTimeout,导致连接被后端服务主动关闭。请确保后端服务配置的连接空闲时间大于云原生网关全局配置UpstreamIdleTimeout

如何处理返回502状态码?

  • 如果您在云原生网关前面布置了其他七层网关,并且该七层网关配置的连接空闲时间大于云原生网关全局配置DownstreamIdleTime,将会导致连接被云原生网关主动关闭。请确保该七层网关配置的连接空闲时间小于云原生网关全局配置DownstreamIdleTime

  • 后端服务响应格式不符合HTTP规范。请确保响应头部不同时存在多个transfer-encoding: chunked

SLB 443端口健康检测状态显示“异常”

网关上没有配置HTTPS域名时,网关不会监听443端口,因此SLB 443端口健康检测显示异常

  • 如果您想在网关上配置HTTPS域名,具体操作,请参见关联域名

  • 如果您想使用Ingress,具体操作,请参见K8s Ingress

如何判断出错原因是由云原生网关还是后端服务导致的?

  • 查看响应Header是否包含x-envoy-upstream-service-time。正常情况下,若响应Header包含x-envoy-upstream-service-time,则表明网关已将请求转发给后端服务处理,后续的请求出错可能是由于后端服务导致。

  • 查看网关访问日志中upstream_service_time字段是否为空。正常情况下,若访问日志中字段upstream_service_time不为空,则表明网关已将请求转发给后端服务处理,后续的请求出错可能是由于后端服务导致。

监控数据(访问日志检索)

如何处理获取404响应码的请求?

将以下gw-xxx替换为您的网关实例ID。

{envoy_clusterid="gw-xxx"} |=|="\"response_code\":\"404\""

如何处理获取响应延迟(RT)大于1秒的请求?

将以下gw-xxx替换为您的网关实例ID。

{envoy_clusterid="gw-xxx"} | regexp "([^s]+) ([\\w]+) F (?P<content>.*)" | line_format "{{.content}}" | json | duration >1000

如何处理获取响应延迟(RT)大于1秒请求的响应码时间分布?

将以下gw-xxx替换为您的网关实例ID。

sum (rate({envoy_clusterid="gw-xxx"} | regexp "([^s]+) ([\\w]+) F (?P<content>.*)" | line_format "{{.content}}" | json | unpack | duration <1000 [1m])) by (response_code)
阿里云首页 微服务引擎 MSE 相关技术圈