You need to enable JavaScript to run this app.
导航
添加外部服务
最近更新时间:2024.12.09 10:00:01首次发布时间:2024.12.09 10:00:01
复制全文
我的收藏
有用
有用
无用
无用

外部服务将 Kubernetes 外的服务封装成服务网格中的服务,可以像 Kubernetes 内部的服务一样使用,为网格内和网格外服务的统一管理提供基础。本文为您介绍如何添加外部服务。

背景信息

使用服务网格的过程中,对于不在 Kubernetes 集群中的服务资源也会存在流量管控的诉求,比如我们可能会希望能够把 Kubernetes 之外虚拟机应用加入服务网格、对应访问集群外部的域名进行白名单限制,甚至对访问数据库的流量进行访问控制。 这些外部访问的需求都需要使用到外部服务。

操作步骤

  1. 登录 服务网格控制台

  2. 在左侧导航栏,选择 服务治理 > 服务总览

  3. 服务总览 页面单击 添加外部服务

  4. 配置服务。

    • 服务配置
      alt

      参数说明
      服务名称长度限制 2~63 个字符,只能包含大小写字母、数字、和中划线(-), 不能以中划线(-)开头。
      添加到网格选择外部服务所在的网格。
      命名空间外部服务运行于服务网格主集群中的命名空间。通过将外部服务创建在不同的命名空间中,并结合 exportTo 的策略,可以控制当前外部服务是否支持被其他命名空间中的服务的访问。
      HostHost 用于匹配虚拟服务(Virtualservice)和目标规则(DestinationRule)中的 Host 字段。对于 HTTP 的流量,Host 匹配 HTTP Header 的 Host 或 Authority。对于 HTTPS 或 TLS 流量,Host 匹配 SNI。
      协议转发规则定义了入口网关对外开放的域名、协议和端口,可以添加多条转发规则。支持 HTTP、HTTP2、HTTPS、TCP、TLS、GRPC 协议。
      端口外部服务支持访问的协议和端口号。默认值为 80。合法值为 1~65535。
      解析方式外部服务地址的解析方式,支持以下方式:
      • 静态:已经使用 Endpoints 设置了服务实例的地址场景中,即不用 DNS 解析。
      • DNS:表示用查询环境中的 DNS 进行解析。如果没有设置 Endpoints,代理就会使用在 Hosts 中指定的 DNS 地址进行解析,前提是在 Hosts 中未使用通配符。如果设置了 Endpoints,则使用 Endpoints 中的 DNS 地址解析出目标 IP。
      • NONE:用于当连接的目标地址以及是一个明确 IP 的场景。当访问外部服务且应用要被解析到一个特定的 IP 上时,要将模式设为 NONE。
      位置用于标识服务在网格内部还是外部。
      • 虚拟机中的应用请选择 网格内
      • 外部域名,例如 httpbin.org ,请选择 网格外
      exportTo指定允许访问当前服务的命名空间。
    • 访问设置
      alt

      参数说明
      服务虚拟 IP服务虚拟 IP(Address)表示与服务关联的虚拟 IP 地址。访问服务虚拟 IP 时,IP 地址会被转发到 Endpoint 中。服务虚拟 IP 地址是一定范围的 IP 段,需要填写点分十进制格式的 CDIR 段,例如 192.168.1.0/24
      Endpoint如果外部服务的后端是云主机,需要设置云主机的配置
      • 后端地址 :后端服务的地址。
      • ports :后端服务协议和端口号。
      • labels :后端实例的标签。
      • weight :如果有多个后端地址可以设置负载均衡的权重。取值范围为 0 到 100,取值越大,接收的流量占比越大。
  5. 完成配置后单击 确定

操作结果

创建完成后可以在服务总览页面查看新建的外部服务。

alt

后续步骤

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

  • 治理规则配置:跳转至规则配置页面,创建服务的流程策略(目标规则)和流量路由规则(虚拟服务),实现流量的有序管理。具体的操作说明参见 创建目标规则创建虚拟服务
  • 编辑:服务配置说明参见 管理外部服务 中服务配置说明。
  • 删除:单击删除,二次确认后既可以删除目标服务。