服务与路由

最近更新时间:2024-05-27 16:56:21

我的收藏

操作场景

您需要将服务添加到云原生 API 网关中,以便网关能查找对应的服务地址从而实现动态代理。云原生 API 网关支持添加 K8S 服务、注册中心、IP 列表、域名/IP、私有域名、云函数几种类型的服务。本文介绍如何为云原生网关添加服务并验证服务转发效果。

操作步骤

添加服务

2. 在左侧导航栏单击路由管理,在页面上方选择好实例后,单击服务页签,在服务列表单击新建
3. 在新建服务窗口中配置相关参数。
参数
是否必填
说明
服务名称
输入服务名称。
来源类型
服务来源类型,支持 K8S 服务、注册中心、IP 列表、域名/IP、私有域名、云函数几种类型。
K8S 服务
注册中心
IP 列表
域名/IP
云函数
私有域名
当服务来源为 K8S 服务时,填写以下参数:
参数
是否必填
说明
服务来源
选择已创建的容器服务来源。
命名空间
输入命名空间名称。
服务列表
填写需要访问的容器服务列表,多个服务使用换行分隔。
服务协议
网关请求后端服务使用的协议,支持 HTTP/WS、HTTPS/WSS、TCP、UDP。
请求路径
后端服务的请求路径。
服务端口
后端服务的端口,支持1~65535的任意端口。
超时时间
连接建立、写入和读取后端返回的最大超时时间
重试次数
与后端服务建立连接的最大重试次数。
当服务来源为注册中心时,填写以下参数:
参数
是否必填
说明
服务来源
选择已创建的服务来源。
命名空间
当来源产品为 Nacos/PolarisMesh 时,输入命名空间 ID。注意:Nacos 默认命名空间请填写 empty_ns。当来源产品为 TSF 注册中心时,下拉选择命名空间。
服务列表
当来源产品为 Nacos/PolarisMesh/Consul 时填写需要访问的服务列表,多个服务使用换行分隔。针对不同注册中心,服务列表书写方式为:
Nacos:{Nacos分组}__{服务名称}注意:Nacos 分组与服务名称之间使用两个下划线(_)分割
Consul:{服务名称}
Polaris Mesh:{服务名称}
当来源产品为 TSF 注册中心时,下拉选择单个微服务名称。
服务协议
网关请求后端服务使用的协议,支持 HTTP/WS、HTTPS/WSS、TCP、UDP。
请求路径
后端服务的请求路径。
超时时间
连接建立、写入和读取后端返回的最大超时时间。
重试次数
与后端服务建立连接的最大重试次数。

当服务类型为 IP 列表时,需要填写以下参数:
参数
是否必填
说明
地址列表
填写后端服务节点的 IP、端口、权重信息。
CVM 弹性伸缩
开启后,Kong 将自动关联所选伸缩组对应的 CVM 实例。
伸缩组:勾选同 VPC 网络下的弹性伸缩组。关联后,Kong 将在弹性伸缩组创建生命周期挂钩,以及在云服务器-我的命令创建弹性伸缩命令,对上述资源的修改和删除将导致伸缩失效。
伸缩组端口:填写伸缩组端口。
服务协议
网关请求后端服务使用的协议,支持 HTTP/WS、HTTPS/WSS、TCP、UDP。
请求路径
后端服务的请求路径。
超时时间
连接建立、写入和读取后端返回的最大超时时间。
重试次数
与后端服务建立连接的最大重试次数。

当服务类型为域名/IP 时,需要填写以下参数:
参数
是否必填
说明
服务地址
支持填写 IP 或域名,例如:10.0.0.1或 www.tencent.com。
服务端口
后端服务的端口,支持1~65535的任意端口。
服务协议
网关请求后端服务使用的协议,支持 HTTP/WS、HTTPS/WSS、TCP、UDP。
请求路径
后端服务的请求路径。
超时时间
连接建立、写入和读取后端返回的最大超时时间。
重试次数
与后端服务建立连接的最大重试次数。

当服务类型为云函数时,需要填写以下参数:
参数
是否必填
说明
函数类型
事件函数或者 Web 函数。
命名空间
选择函数所在的命名空间。
函数
选择函数。
版本/别名
选择函数所在的服务版本或者别名。
CAM 鉴权
默认开启,网关转发请求到云函数进行 CAM 鉴权。
超时时间
连接建立、写入和读取后端返回的最大超时时间。
重试次数
与后端服务建立连接的最大重试次数。

当服务来源为 私有域名时,填写以下参数:
参数
是否必填
说明
服务来源
选择已创建的腾讯云私有解析来源。
私有域名
填写服务的私有域名。
服务端口
填写需要访问的容器服务列表,多个服务使用换行分隔。
服务协议
网关请求后端服务使用的协议,支持 HTTP/WS、HTTPS/WSS、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,默认关闭



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



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



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



7. 在路由列表右上角,您可以切换至 YAML 视图查看信息,




验证请求转发

发起 API 请求,验证转发到注册中心/容器集群中的服务。

应用场景1:强制 HTTPS

场景说明

HTTPS 通过数字证书、加密算法以及非对称密钥等技术对信息进行加密处理,有效的保证了数据在传输过程中的安全性和完整性。在一些信息安全要求极高的场景下,需要实现只有 HTTPS 请求才能访问服务,如果是 HTTP 请求则需要完成 HTTP 到 HTTPS 的自动跳转,整个过程对用户来讲是透明的、无感知的。

操作方式

1. 创建/编辑路由指定请求协议为 HTTPS,设置重定向状态码为 301(即 Moved Permanently,永久重定向)。



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