服务网格ASM提供了对接Nacos注册中心功能,便于将Nacos上的微服务与服务网格ASM进行互通。本文介绍如何对接Nacos注册中心。

前提条件

  • 已创建ASM实例。具体操作,请参见创建ASM实例
  • 已创建Nacos引擎,且Nacos引擎的专有网络需要和ASM实例相同。具体操作,请参见创建Nacos引擎

背景信息

服务网格ASM提供了对接Nacos注册中心的功能,便于您将微服务迁移至服务网格ASM的过程中,实现服务网格之内的服务调用服务网格之外的服务。服务网格ASM并不会主动将服务网格中的服务信息注册到Nacos注册中心。为了确保服务网格之外的服务能调用服务网格之内的服务,您需要将网格中的服务手动注册到Nacos注册中心。Nacos

网格内外服务互相调用方式

如下图所示,Consumer、Provider服务采用Nacos服务注册中心,注册和订阅了相关服务。Consumer和Provider服务调用方式如下:
重要 网格内的Consumer是否可以使用Istio下的全部功能,取决于Consumer和Provider实际业务请求的协议,目前ASM支持HTTP1.1、HTTP2、gRPC协议,不在这些协议范围内的业务请求,Istio提供的服务网格相关功能会受限。
  • Consumer可以通过订阅从Nacos获取Provider服务地址,向Provider发起请求。

    无论Provider是部署在哪里,也无论Provider服务是否开启了Sidecar,但前提是需要保证本身网络层面是可以互相访问的,若网络层面不可直接访问或者有安全机制,可能需要通过部署ASM网关来实现业务互通。

  • 网格内的Consumer(右边)也可以通过Sidecar调用左边的Provider服务。

    Sidecar可以通过xDS的CDS和EDS获取集群外的Provider服务地址,因为Istiod已经对接了Nacos,同步了Nacos下的所有服务信息。

服务调用

步骤一:在MSE开启MCP功能

  1. 登录MSE管理控制台
  2. 在控制台左侧导航栏选择注册配置中心 > 实例列表
  3. 实例列表页面单击目标实例右侧操作列的管理
  4. 在实例详情页面左侧导航栏单击参数设置
  5. 参数设置页面单击编辑,在MCPEnabled参数值下方选择,然后单击保存并重启实例

步骤二:在ASM对接Nacos注册中心

  1. 登录ASM控制台
  2. 在左侧导航栏,选择服务网格 > 网格管理
  3. 网格管理页面,找到待配置的实例,单击实例的名称或在操作列中单击管理
  4. 在网格详情页面左侧导航栏,选择网格实例 > 基本信息,然后在右侧页面,单击功能设置
  5. 功能设置更新对话框中单击展开高级选项,选中Nacos注册服务,选择Nacos引擎,单击确定