外部服务将 Kubernetes 外的服务封装成服务网格中的服务,可以像 Kubernetes 内部的服务一样使用,为网格内和网格外服务的统一管理提供基础。本文为您介绍如何添加外部服务。
使用服务网格的过程中,对于不在 Kubernetes 集群中的服务资源也会存在流量管控的诉求,比如我们可能会希望能够把 Kubernetes 之外虚拟机应用加入服务网格、对应访问集群外部的域名进行白名单限制,甚至对访问数据库的流量进行访问控制。 这些外部访问的需求都需要使用到外部服务。
登录 服务网格控制台。
在左侧导航栏,选择 服务治理 > 服务总览。
在 服务总览 页面单击 添加外部服务。
配置服务。
服务配置
| 参数 | 说明 |
|---|---|
| 服务名称 | 长度限制 2~63 个字符,只能包含大小写字母、数字、和中划线(-), 不能以中划线(-)开头。 |
| 添加到网格 | 选择外部服务所在的网格。 |
| 命名空间 | 外部服务运行于服务网格主集群中的命名空间。通过将外部服务创建在不同的命名空间中,并结合 exportTo 的策略,可以控制当前外部服务是否支持被其他命名空间中的服务的访问。 |
| Host | Host 用于匹配虚拟服务(Virtualservice)和目标规则(DestinationRule)中的 Host 字段。对于 HTTP 的流量,Host 匹配 HTTP Header 的 Host 或 Authority。对于 HTTPS 或 TLS 流量,Host 匹配 SNI。 |
| 协议 | 转发规则定义了入口网关对外开放的域名、协议和端口,可以添加多条转发规则。支持 HTTP、HTTP2、HTTPS、TCP、TLS、GRPC 协议。 |
| 端口 | 外部服务支持访问的协议和端口号。默认值为 80。合法值为 1~65535。 |
| 解析方式 | 外部服务地址的解析方式,支持以下方式:
|
| 位置 | 用于标识服务在网格内部还是外部。
|
| exportTo | 指定允许访问当前服务的命名空间。 |
访问设置
| 参数 | 说明 |
|---|---|
| 服务虚拟 IP | 服务虚拟 IP(Address)表示与服务关联的虚拟 IP 地址。访问服务虚拟 IP 时,IP 地址会被转发到 Endpoint 中。服务虚拟 IP 地址是一定范围的 IP 段,需要填写点分十进制格式的 CDIR 段,例如 192.168.1.0/24。 |
| Endpoint | 如果外部服务的后端是云主机,需要设置云主机的配置
|
完成配置后单击 确定。
创建完成后可以在服务总览页面查看新建的外部服务。

单击已创建外部服务 操作 列下对应的选项,执行后续的操作。