腾讯云微服务引擎 TSE 路由管理 - 服务与路由
文档简介:
操作场景:
您需要将服务添加到云原生 API 网关中,以便网关能查找对应的服务地址从而实现动态代理。云原生 API 网关支持添加 K8S 服务、注册中心、IP 列表、域名/IP、私有域名、云函数几种类型的服务。本文介绍如何为云原生网关添加服务并验证服务转发效果。
操作场景
您需要将服务添加到云原生 API 网关中,以便网关能查找对应的服务地址从而实现动态代理。云原生 API 网关支持添加 K8S 服务、注册中心、IP 列表、域名/IP、私有域名、云函数几种类型的服务。本文介绍如何为云原生网关添加服务并验证服务转发效果。
操作步骤
添加服务
1. 登录 微服务引擎控制台。
2. 在左侧导航栏单击路由管理,在页面上方选择好实例后,单击服务页签,在服务列表单击新建。
3. 在新建服务窗口中配置相关参数。
参数
|
是否必填
|
说明
|
服务名称
|
是
|
输入服务名称。
|
来源类型
|
是
|
服务来源类型,支持 K8S 服务、注册中心、IP 列表、域名/IP、私有域名、云函数几种类型。
|
当服务来源为 K8S 服务时,填写以下参数:
参数
|
是否必填
|
说明
|
服务来源
|
是
|
选择已创建的容器服务来源。
|
命名空间
|
是
|
输入命名空间名称。
|
服务列表
|
是
|
填写需要访问的容器服务列表,多个服务使用换行分隔。
|
服务协议
|
是
|
网关请求后端服务使用的协议,支持 HTTP、HTTPS、TCP、UDP。
|
请求路径
|
是
|
后端服务的请求路径。
|
服务端口
|
否
|
后端服务的端口,支持1~65535的任意端口。
|
超时时间
|
是
|
连接建立、写入和读取后端返回的最大超时时间
|
重试次数
|
是
|
与后端服务建立连接的最大重试次数。
|
当服务来源为注册中心时,填写以下参数:
参数
|
是否必填
|
说明
|
服务来源
|
是
|
选择已创建的服务来源。
|
命名空间
|
是
|
当来源产品为 Nacos/PolarisMesh 时,输入命名空间 ID。注意:Nacos 默认命名空间请填写 empty_ns。当来源产品为 TSF 注册中心时,下拉选择命名空间。
|
服务列表
|
是
|
当来源产品为 Nacos/PolarisMesh/Consul 时填写需要访问的服务列表,多个服务使用换行分隔。针对不同注册中心,服务列表书写方式为:
Nacos:{Nacos分组}__{服务名称}注意:Nacos 分组与服务名称之间使用两个下划线(_)分割
Consul:{服务名称}
Polaris Mesh:{服务名称}
当来源产品为 TSF 注册中心时,下拉选择单个微服务名称。
|
服务协议
|
是
|
网关请求后端服务使用的协议,支持 HTTP、HTTPS、TCP、UDP。
|
请求路径
|
是
|
后端服务的请求路径。
|
超时时间
|
是
|
连接建立、写入和读取后端返回的最大超时时间。
|
重试次数
|
是
|
与后端服务建立连接的最大重试次数。
|
当服务类型为 IP 列表时,需要填写以下参数:
参数
|
是否必填
|
说明
|
地址列表
|
是
|
填写后端服务节点的 IP、端口、权重信息。
|
CVM 弹性伸缩
|
否
|
开启后,Kong 将自动关联所选伸缩组对应的 CVM 实例。
伸缩组:勾选同 VPC 网络下的弹性伸缩组。关联后,Kong 将在弹性伸缩组创建生命周期挂钩,以及在云服务器-我的命令创建弹性伸缩命令,对上述资源的修改和删除将导致伸缩失效。
伸缩组端口:填写伸缩组端口。
|
服务协议
|
是
|
网关请求后端服务使用的协议,支持 HTTP、HTTPS、TCP、UDP。
|
请求路径
|
是
|
后端服务的请求路径。
|
超时时间
|
是
|
连接建立、写入和读取后端返回的最大超时时间。
|
重试次数
|
是
|
与后端服务建立连接的最大重试次数。
|
当服务类型为域名/IP 时,需要填写以下参数:
参数
|
是否必填
|
说明
|
服务地址
|
是
|
支持填写 IP 或域名,例如:10.0.0.1或 www.tencent.com。
|
服务端口
|
是
|
后端服务的端口,支持1~65535的任意端口。
|
服务协议
|
是
|
网关请求后端服务使用的协议,支持 HTTP、HTTPS、TCP、UDP。
|
请求路径
|
是
|
后端服务的请求路径。
|
超时时间
|
是
|
连接建立、写入和读取后端返回的最大超时时间。
|
重试次数
|
是
|
与后端服务建立连接的最大重试次数。
|
当服务类型为云函数时,需要填写以下参数:
参数
|
是否必填
|
说明
|
函数类型
|
是
|
事件函数或者 Web 函数,当前仅开放事件函数。
|
命名空间
|
是
|
选择函数所在的命名空间。
|
函数
|
是
|
选择函数。
|
版本
|
是
|
选择函数所在的服务版本。
|
超时时间
|
是
|
连接建立、写入和读取后端返回的最大超时时间。
|
重试次数
|
是
|
与后端服务建立连接的最大重试次数。
|
当服务来源为 私有域名时,填写以下参数:
参数
|
是否必填
|
说明
|
服务来源
|
是
|
选择已创建的腾讯云私有解析来源。
|
私有域名
|
是
|
填写服务的私有域名。
|
服务端口
|
是
|
填写需要访问的容器服务列表,多个服务使用换行分隔。
|
服务协议
|
是
|
网关请求后端服务使用的协议,支持 HTTP、HTTPS、TCP、UDP。
|
请求路径
|
是
|
后端服务的请求路径。
|
超时时间
|
是
|
连接建立、写入和读取后端返回的最大超时时间。
|
重试次数
|
是
|
与后端服务建立连接的最大重试次数。
|
说明:
1. 网关仅对 SRV记录、A记录、CNAME 记录类型进行解析。
2. 如果 SRV 记录已填写端口,控制台输入端口会覆盖 SRV 记录的端口内容。
4. (可选)配置高级参数。
负载均衡算法:支持选择轮询和最小连接数。
慢启动:开启后,服务对应的节点将在慢启动时间内,将权重从1逐步增加到目标值。若引擎版本较低,可能不支持使用此功能,建议前往实例基本信息页面升级引擎版本。
说明:
支持在容器服务集群中修改 YAML 配置慢启动,增加 annotation:
annotations:tse.konghq.com/TSE-Upstream-SlowStart: "30"
5. 添加后,查看服务列表,可以看到添加的服务,单击服务名称,可以查看详细的服务信息。

编辑服务
单击操作 > 编辑,修改服务信息,确认后即可。
删除服务
单击操作 > 删除,确认是否删除服务。确认后将删除服务。
添加路由
1. 登录 微服务引擎控制台。
2. 在左侧导航栏单击路由管理,在页面上方选择好实例后,单击服务页签。
3. 点击要配置的服务名称,进入服务路由管理页面。
4. 在左上角单击新建,填写路由基本信息。
当后端请求协议为 HTTP、HTTPS 时,需要配置的参数如下:
参数
|
是否必选
|
说明
|
路由名称
|
否
|
路由名称允许为空,支持中文,英文大小写,数字,-_~
|
请求协议
|
是
|
支持 HTTP&HTTPS、HTTPS、HTTP
|
匹配规则
|
是
|
请求方法、请求路径、Host 需至少配置一种;Header 可选配置。
|
Strip Path
|
否
|
当通过请求路径匹配到路由时,从后端服务请求 URL 中去除匹配前缀。默认开启。
|
保留 Host
|
否
|
请求后端时是否使用请求 Host,默认关闭
|

说明:
如需配置正则路由,只需将请求路径配置为正则表达式即可。
当后端请求协议为 TCP/UDP 时,填写路由名称和请求端口即可。

5. 单击下一步,进入路由后端配置,确认后端服务信息无误后提交。

单服务:表示当前路由转发请求到后端单个服务。
多服务:暂不支持多服务。
6. 单击提交,完成路由创建,在路由管理 > 路由列表页面,可以看到创建好的路由,代表创建成功。

验证请求转发
1. 进入实例页面,在顶部菜单栏单击 Konga 控制台,查看 Konga 控制台访问地址,使用账号和密码登录 Konga。
2. 发起 API 请求,验证转发到注册中心/容器集群中的服务。
应用场景1:强制 HTTPS
场景说明
HTTPS 通过数字证书、加密算法以及非对称密钥等技术对信息进行加密处理,有效的保证了数据在传输过程中的安全性和完整性。在一些信息安全要求极高的场景下,需要实现只有 HTTPS 请求才能访问服务,如果是 HTTP 请求则需要完成 HTTP 到 HTTPS 的自动跳转,整个过程对用户来讲是透明的、无感知的。
操作方式
1. 创建/编辑路由指定请求协议为 HTTPS,设置重定向状态码为 301(即 Moved Permanently,永久重定向)。

2. 使用 HTTP 请求路由,可以看到请求返回 301 状态码(表示跳转),Location 重定向为 HTTPS 请求。
