配置微服务网关

微服务网关提供路由转发,安全管理相关能力。可利用微服务网关,管理 Dev Portal 和 App Portal 域名下的请求转发以及对服务级的路由配置隔离管理。

微服务网关收到访问流量时,根据配置的路由规则判断是否匹配并决定后续的请求转发。

本文章介绍应用开发人员如何为应用配置微服务网关。

新建路由规则

前提条件

在新建路由规则之前,需要完成应用创建和基本信息配置。详细步骤,参见 新建应用

配置路由规则基本信息

通过以下步骤为应用新建路由配置:

  1. 在项目列表中,点击项目名称,进入项目空间。

  2. 在左侧导航栏中,选择 微服务网关 > 路由

  3. 点击 新建路由,并在 基本信息 一栏中,完成路由的基础配置信息:

    • 应用:从已创建应用列表中,选择为目标应用创建路由。

    • 环境:选择应用使用环境。

    • 集群:选择部署应用的集群。

    • 名称:输入路由名称,以应用名称作为固定前缀,路由名称不可重复。

    • 描述:输入关于该路由的信息描述。

  4. 点击 下一步,填写 API 请求配置信息。

    • 请求协议:选择路由规则需要匹配的请求协议。现支持 http 与 https (可多选)。

    • 请求域名:选择路由规则需要匹配的请求 Host。现支持 Dev Portal、App Portal、ECP 与 DOCS。

    • 请求路径:填写路由规则需要匹配的 API 请求路径。支持前缀模糊匹配,例如,指定路径为 /docs/enos 时,可以匹配到 /docs/enos/api。匹配时会优先匹配更加具体的路径,例如 /docs/enos/api/overview 将优先于 /docs/enos/api

    • 剥离请求路径:开启表示转发到后端时,去除符合请求路径的前缀,如请求路径为 /app/demo,当请求 /app/demo/param 时将变更为 /param 路由到后端服务,默认关闭。

  5. 点击 下一步,填写后端服务配置信息。

    • 服务来源:选择路由规则指向的目标服务来源,默认将 Kubernetes Service 作为目标服务,则继续选择应用对应的 Service 资源。也可将外部服务作为目标服务来源,则需输入完整服务地址。

    • 服务协议:服务来源为 Kubernetes Service 时,Service 提供的服务协议。

    • 服务:应用所属的 Service 资源。若应用未配置 Service 则需先创建。

    • 服务端口:应用所属的 Service 资源中配置的可访问的端口。

    • 服务请求路径:请求后端服务的路径。

    • 高级设置

      • 连接超时:请求后端服务时,建立连接的最长等待时间。

      • 读取超时:请求后端服务时,读取数据的最长等待时间。

      • 写入超时:请求后端服务时,写入数据的最长等待时间。

      • 重试次数:请求超时后的自动重试的次数。

  6. 点击 完成,完成新路由创建。

批量操作路由规则

当应用发布到新环境,应用相关的路由规则可通过批量操作的导出 / 导入功能创建。

导出路由规则

  1. 在项目列表中,点击项目名称,进入项目空间。

  2. 在左侧导航栏中,选择 微服务网关 > 路由

  3. 点击 批量操作 > 导出,选择需要导出的应用和环境、集群。

  4. 点击 确定 下载文件。导出文件格式为 yaml ,包含应用下所有路由的 Kubernetes 资源。

导入路由规则

  1. 在项目列表中,点击项目名称,进入项目空间。

  2. 在左侧导航栏中,选择 微服务网关 > 路由

  3. 点击 批量操作 > 导入,选择需要导入的环境、集群,并上传 yaml 格式文件。

  4. 点击 确定,完成导入后显示导入结果。如导入文件中的某个路由已存在,将会覆盖更新。

配置路由规则

可在路由详情页中,为路由规则鉴权、流量控制与请求日志。

鉴权

目前支持 Cloud IAM 与开发者工作室 IAM 鉴权:配置此鉴权方式后,当网关接收到符合路由规则的请求时,将拦截请求并向 Cloud IAM 或开发者工作室 IAM 发起身份验证,判断请求中携带的用户身份是否有效。若身份验证不通过则网关直接返回,不再向后端服务继续请求。

备注

对一些符合路由规则的具体请求路径可设置免鉴权。

流量控制

可设置路由请求数最大值,超过请求频率则拒绝请求。目前支持每秒请求次数设置。

请求日志

支持根据请求方法开发记录请求日志,对不需要进行记录的请求路径可额外配置免记录路径名单。

开启请求后可根据请求时间,请求用户名称和请求路径关键字进行查询。

备注

请求路径关键字:日志存储组件将对路径进行分词索引,如路径为 /demo/index-app 时,可尝试输入 demo、index、app 检索。

关闭请求日志的配置后不可再进行日志查询。