添加网关
服务网关在微服务实践中可以做到统一接入、流量管控、安全防护、业务隔离等功能。
前提条件
服务网关使用弹性负载均衡服务(ELB)的负载均衡器提供网络访问,因此在添加网关前,请提前创建负载均衡。
创建负载均衡时,需要确保所属VPC与集群的VPC一致,详情请参见创建独享型负载均衡器或创建共享型负载均衡器。如果是独享型,实例规格需要选择“网络型(TCP/UDP)”,且网络类型需要勾选“IPv4私网”,确保负载均衡实例有私网IP地址。
操作步骤
- 登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面。
- 在左侧导航栏选择“网关管理”,单击“添加网关”。
- 配置网关参数。
- 网关名称
请输入网关的名称。由小写字母、数字和中划线(-)组成,且必须以小写字母开头,小写字母或数字结尾,长度范围为4~59个字符。
- 集群选择
选择网关所属的集群。
- 访问方式
- 协议版本:支持选择IPV4和双栈两种,已开启ipv6的网格方可配置该参数。
- 服务网关使用弹性负载均衡服务(ELB)的负载均衡实例提供网络访问,支持共享型和独享型规格,且支持公网和私网。如果是独享型,实例规格需要选择“网络型(TCP/UDP)”,且网络类型需要勾选“IPv4私网”,确保负载均衡实例有私网IP地址。
- 访问入口
- 对外协议
- 对外端口
- 外部访问地址
- TLS终止
对外协议为TLS时,可选择开启/关闭TLS终止。开启TLS终止时需要绑定证书,以支持TLS数据传输加密认证;关闭TLS终止时,网关将直接转发加密的TLS数据。
- 密钥证书
- 配置TLS协议并开启TLS时,需要绑定证书,以支持TLS数据传输加密认证。
- 配置HTTPS协议时,需要绑定密钥证书。
- TLS最低版本/TLS最高版本
图1 添加网关
- 网关名称
- (可选)配置路由参数。
请求的访问地址与转发规则匹配(转发规则由外部访问地址+URL组成)时,此请求将被转发到对应的目标服务处理。单击图标,弹出“添加路由”对话框。
- URL匹配规则
- 前缀匹配:例如映射URL为/healthz,只要符合此前缀的URL均可访问。例如/healthz/v1、/healthz/v2。
- 完全匹配:只有完全匹配上才能生效。例如映射URL为/healthz,则必须为此URL才能访问。
支持通过YAML方式配置正则匹配规则,修改VirtualService配置文件即可:
... http: - delegate: name: nginx-80 namespace: default match: - uri: regex: /do[a-z]*/ ...
如上所示,“regex”表示按正则表达式方式匹配URL,注意URL必须以“/”开头。
- URL
服务支持的映射URL,例如/example。
- 命名空间
服务网关所在的命名空间。
- 目标服务
添加网关的服务,直接在下拉框中选择。目标服务会根据对应的网关协议进行过滤,过滤规则请参见添加路由时,为什么选不到对应的服务?。
- 访问端口
仅显示匹配对外协议的端口。
- 重写
(对外协议为HTTP/HTTPS时可配置)
重写HTTP/HTTPS URI和Host/Authority头,于转发前执行。默认关闭。开启后,需要配置如下参数:
- URI:使用此值重写URI的路径(或前缀),如果原始URI是基于前缀匹配,那么将替换相应匹配的前缀。
- Host/Authority头:使用此值重写HTTP/HTTPS的Host/Authority头。
- 域名单独配置路由
为网关中某个域名单独配置路由规则。
图2 添加路由
- URL匹配规则
- 配置完成后,单击“确定”。
网关添加完成后,可前往“服务管理”页面,获取服务外网访问地址。
图3 服务外网访问地址