添加外部服务
当外部服务(服务网格外服务)所在区域和当前服务网格网络互通时,服务网格内服务可直接访问外部服务;当外部服务所在区域和当前服务网格网络互相隔离时,可通过在网格纳管的集群下添加外部服务,将外部服务注册到集群内,即可确保集群内服务在不影响开发体验的情况下访问外部服务,并对其进行流量监控。
在集群下添加外部服务时,可将其绑定至集群上部署的出口网关的指定端口,使集群内的对外访问流量从出口网关发出,经过外部服务所在区域的入口网关转发至外部服务。
添加外部服务
通过添加外部服务,可将当前集群内服务需要访问的外部服务绑定到部署在集群上的出口网关的指定端口。
操作步骤
-
在左侧导航栏中,单击 服务网格 > 网格列表。
-
单击要添加外部服务的 服务网格名称。
-
在 外部服务 页签下,选择要注册外部服务的集群,并单击 添加外部服务。
-
参考以下说明,配置相关参数。
参数 说明 服务协议 外部服务的访问协议。支持选择 七层(HTTP/HTTP2/HTTPS) 或 四层(TCP)。
注意:创建成功后不支持更新。服务地址 当 服务协议 为 七层(HTTP/HTTP2/HTTPS) 时,服务地址 即访问外部服务的域名或 VIP(Virtual IP)。支持输入一个全域名,会匹配所有包含该域名的外部服务请求;
当 服务协议 为 四层(TCP) 时,服务地址 即外部服务的 IP,支持输入多个。服务 IP 仅当 服务协议 为 七层(HTTP/HTTP2/HTTPS) 时,该参数有效。
服务 IP 即外部服务的 Pod 的 IP,输入时,请求会重定向至服务 IP;未输入时,请求会重定向至通过解析域名得到的 IP;支持输入多个,对外部服务的访问流量可在多个服务 IP 之间进行负载均衡。服务端口 访问外部服务的端口。最多可添加 5 个端口。
协议:外部服务的端口协议。
端口:外部服务的端口号。 -
单击 下一步。
-
(可选)单击打开 绑定出口网关 开关,并参考以下说明,配置出口网关相关参数。
说明:
当外部服务所在区域和当前服务网格网络互相隔离时,可通过为外部服务 绑定出口网关,使集群内的对外访问流量从出口网关发出,经过外部服务所在区域的请求转发服务器转发至外部服务。
可为外部服务绑定集群内的多个出口网关。通过为出口网关绑定命名空间可控制每个出口网关的流量拦截范围,使集群下多个分属于不同命名空间的服务通过不同的出口网关访问外部服务。
参数 说明 所属命名空间 出口网关所在命名空间。 出口网关 已选命名空间中的出口网关。
提示:若服务网格纳管的其他集群下存在 所属命名空间 相同的 同名出口网关,为确保服务网格配置 地域负载 后,多集群容灾负载的流量也能够正常访问外部服务,则必须在相应集群下创建相同的外部服务并为其绑定 同名出口网关。分配端口 外部服务地址:服务网格内服务向外部服务发起请求时的请求地址,结合 服务协议 和 服务端口 的配置自动生成。
出口网关端口:要绑定外部服务的出口网关的端口号,服务网格内服务向外部服务发起请求时,请求将从该端口发出。绑定命名空间 通过指定命名空间,控制出口网关的拦截范围。仅当访问外部服务的流量源于绑定的命名空间下已注入 Sidecar 的服务时,才会被出口网关拦截并转发。
全部:当前集群关联的项目下的全部命名空间及特殊命名空间(cpaas-system、istio-system)。
自定义:选择部分命名空间,可选范围为当前集群关联的项目下的全部命名空间及特殊命名空间(cpaas-system、istio-system)。提示:当 服务协议 为 七层(HTTP/HTTP2/HTTPS) 时,可参考以下说明配置服务网格内服务向外部服务发起的请求的 转发规则。
参数 说明 目标服务地址 从出口网关端口发出的请求的目标转发地址,例如:服务代理或外部服务所在服务网格的入口网关地址。
提示:再次设置会覆盖已有的设置,仅最近一次设置生效。
内部路由:目标服务为集群关联的项目下命名空间及特殊命名空间(cpaas-system、istio-system)中的内部路由(Kubernetes Service),目标服务地址 格式:<Host>:<端口>
。
- 命名空间:集群关联的项目下命名空间及特殊命名空间(cpaas-system、istio-system)。
- Host:<内部路由名称>.<命名空间名称>.svc.cluster.local
。
- 端口:内部路由的服务端口。
外部服务:目标服务为网格外服务,目标服务地址 格式:<Host>:<端口>
。
- 命名空间:已创建外部服务资源所在命名空间。提示:外部服务资源默认创建在相应集群的istio-system
命名空间下。
- Host:当前集群中已创建的 服务协议 为七层(HTTP/HTTP2/HTTPS)
的外部服务的 服务地址。
- 端口:已选 Host 对应外部服务的服务端口。请求重写 目标服务地址 的重定向地址,不支持重定向 HTTPS 协议服务地址。不输入时,按照 目标服务地址 转发流量;输入时,流量将被转发至重定向后的地址。 配置示例:
- 外部服务地址:
http://www.example.com:80
- 目标服务地址:
www.example123.com:8080
- 请求重写:
/v1/service1
基于以上配置,最终转发至外部服务所在网络区域内的请求地址为:
http://www.example123.com:8080/v1/service1
。 - 外部服务地址:
-
单击 添加。