作者:正己

背景

在企业加速推进数字化转型的今天,大多数组织正面临一个共同的挑战:如何在从传统基础设施向云原生架构迁移的过程中,保障业务连续性、配置一致性以及服务间的高效互通。这种转型通常并非一蹴而就,而是渐进式的演进过程。在此期间,企业往往需要同时维护多套异构的基础设施——既有运行在虚拟机或物理机上的传统微服务,也有部署在 Kubernetes 中的云原生应用。这不仅导致配置管理分散,也使得服务注册与发现机制割裂:传统系统依赖如 Nacos、Eureka 等注册中心实现服务治理,而 Kubernetes 原生则通过 DNS 和 Service 机制进行服务定位,两者互不相通。

这种架构上的不统一,带来了服务调用链路断裂、跨环境发现困难、配置协同复杂等问题,严重影响系统的稳定性与迭代效率。因此,构建一个跨平台的统一配置管理、服务注册与发现机制,实现传统微服务与云原生服务之间的无缝对接,已成为企业平滑演进至云原生时代的关键需求。

与此同时,在 AI 技术迅猛发展的背景下,越来越多的应用需要将 REST API 转换为 MCP(Model Context Protocol)服务,以支持 AI Agent 的调用需求。这类协议转换功能通常由网关类产品实现,例如 Higress。而要完成这一转换,关键在于有一个统一的服务注册与发现机制作为支撑。

以 Higress 为例,当其结合 Nacos 作为 MCP 注册中心时,可高效地将 REST API 自动转换为 MCP 服务。然而,对于已运行在 Kubernetes 上的微服务应用而言,亟需一种机制,能够将其服务快速、自动地注册到 Nacos 中,从而无缝接入 MCP 协议转换体系。

上述趋势带来了三大核心问题:

  • 异构架构下的配置如何统一管理?
    —— 如何实现 Kubernetes ConfigMap 与 Nacos 配置的协同治理?

  • 异构架构下的服务如何统一注册与发现?
    —— 如何打通 Kubernetes Service 与传统微服务之间的调用壁垒?

  • 存量 Kubernetes 服务如何快速接入 MCP 网关?
    —— 如何实现服务自动注册,支撑 AI 场景下的协议转换?

Nacos-Controller 带来的新价值

MSE Nacos Controller 的推出,正是为了解决上述痛点,构建起 Kubernetes 与 Nacos 之间的桥梁,实现配置与服务的双向同步,助力企业构建统一的云原生治理平台。

一、构建异构架构下的统一配置管理平台

Nacos Controller 充当配置同步引擎,实现实时双向同步 Kubernetes ConfigMap 与 Nacos 配置:

  • 将 Kubernetes 中的 ConfigMap 自动同步至 Nacos,由 Nacos 统一管理;
  • 支持从 Nacos 控制台反向修改配置,变更自动同步回 Kubernetes 集群;
  • 用户无需频繁切换控制台,降低误操作风险,提升运维效率;
  • 充分利用 Nacos 提供的高级配置能力,如:
    • 配置灰度发布
    • 配置版本管理
    • 配置加密存储
    • 动态推送机制

image

二、打造服务互通的服务注册与发现中心

通过 Nacos Controller,Kubernetes 中的 Service 可被自动注册到 Nacos 注册中心,实现跨环境、跨架构的服务互通:

  • 支持 Kubernetes 微服务、传统 IDC 虚拟机/物理机服务、多集群服务统一注册;
  • 应用可通过 Nacos 发现并调用任意位置的服务提供者;
  • 实现跨平台服务调用的无缝集成,提升系统整体灵活性与可扩展性。

典型架构示意图如下:

image

三、成为 AI 场景下 MCP 协议转换的关键桥梁

在 AI 应用场景中,Higress 等 MCP 网关依赖 Nacos 作为服务注册源,动态感知 REST API 并转换为 MCP 服务。Nacos Controller 正是连接 Kubernetes 与 MCP 生态的关键组件:

  • 将 Kubernetes 中的 Service 实时同步至 Nacos;
  • Higress 从 Nacos 订阅服务列表,自动识别 REST 接口并生成对应的 MCP 服务;
  • AI Agent 可通过标准 MCP 协议调用后端服务,无需关心底层实现细节。

image

操作实践

1. 购买 MSE Nacos 实例

方式一:未开通 MSE 集群托管服务
  • 进入 MSE 产品页,点击【立即购买】;
  • 选择【注册配置中心】页签;
  • 根据业务需求选择商品类型、地域、规格等参数;
  • 完成支付并创建实例。
方式二:已开通 MSE 集群托管服务
  • 登录 MSE 管理控制台;
  • 左侧导航栏选择【注册配置中心 > 实例列表】;
  • 点击【创建实例】,填写相关信息后提交。

详细操作指南:创建 MSE Nacos 实例【1】

image

2. 创建 Secret ,保存 Nacos 用户名密码(可选)

Nacos 引擎版本 3.0 及以上,运维接口默认开启了鉴权,默认使用用户名密码鉴权。因此,需要首先创建 Secret 保存 Nacos 用户名密码,可通过 ACK/ACS 控制台或命令行创建。这里以命令行创建为例,需要注意的是用户名密码需要经 base64 编码。

apiVersion: v1
kind: Secret
metadata:
    name: nacos-auth
data:
    username: <base64 your-nacos-username>
    password: <base64 your-nacos-password>

使用命令部署:

kubectl apply -f nacos-auth-secret.yaml -n <namespace>

3. 开启 ACK/ACS RRSA 功能,创建 RAM 角色,并授予相关权限(可选)

若启用阿里云 RAM 鉴权,需配置 OIDC 支持的 RRSA(Role-based Service Account):

  • 在 ACK/ACS 控制台开启容器 RRSA 功能,相关操作细节参考:开启容器RRSA功能并授权【2】。
  • 创建 RAM 角色,配置信任策略,允许特定 ServiceAccount 担任角色;
  • 授予 Nacos 相关权限(如读写配置、服务注册等)。

以 ACK 为例,这里给出最终 RAM Role 信任策略示例:

{
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "oidc:aud": [
            "sts.aliyuncs.com"
          ],
          "oidc:iss": [
            "https://oidc-ack-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/<ACK集群ID>"
          ],
          "oidc:sub": [
            "system:serviceaccount:<K8s命名空间>:mse-nacos-controller",
          ]
        }
      },
      "Effect": "Allow",
      "Principal": {
        "Federated": [
          "acs:ram::<阿里云UID>:oidc-provider/ack-rrsa-<ACK集群ID>"
        ]
      }
    }
  ],
  "Version": "1"
}

授权策略如下图:

image

4. ACK/ACS 安装 MSE Nacos Controller

  1. 登录容器服务管理控制台【3】。
  2. 在左侧导航栏中单击市场 -> 应用市场,在运维/可观测应用场景下找到 mse-nacos-controller 应用并单击。
  3. 在页面右上方单击一键部署,选择需要安装的集群、集群中的命名空间,填写发布名称,单击下一步。
  4. 在参数配置页面,参考通用参数配置说明修改参数,也可以使用默认的配置,单击确定。
  5. 等待指定命名空间中的 pod 全部变成 Running 状态,表示安装已完成。

安装完成后可以看到相关 CRD 及 Controller。

image

image

5. 创建自定义资源,实现 configmap 双向同步

完成 MSE Nacos Controller 安装后,只需创建 DynamicConfiguration 资源,即可实现配置双向同步。以下给出示例

apiVersion: nacos.alibabacloud.com/v1
kind: DynamicConfiguration
metadata:
   name: dc-demo
spec:
   nacosServer:
      # serverAddr: nacos地址
      serverAddr: <MSE Nacos域名>
      # namespace: 用户指定的命名空间
      namespace: <Nacos命名空间Id>
      # authRef: 引用存放Nacos 客户端鉴权信息的Secret,支持用户名/密码,Nacos服务端未开启鉴权可忽略
      authRef:
         apiVersion: v1
         kind: Secret
         # secret名称要与前序步骤中创建的Secret名称一致
         name: nacos-auth-secret
   strategy:
      # scope: 同步策略,因安全考虑只支持按需同步,不支持全量同步
      scope: partial
      # 是否同步配置删除操作
      syncDeletion: true
      # conflictPolicy: 同步冲突策略,preferCluster 表示初次同步内容冲突时以Kubernetes集群配置为准,preferServer 表示以Nacos配置为准
      conflictPolicy: preferCluster
   objectRefs:
      - apiVersion: v1
        kind: ConfigMap
        name: nacos-config-cm
      - apiVersion: v1
        kind: ConfigMap
        name: nacos-config-cm-1

使用 kubectl 命令部署,之后即可实现 configmap 双向同步。

kubectl apply -f dc-demo.yaml -n <configmap所在的命名空间>

6. 创建自定义资源,同步 Kubernetes 服务到 Nacos

服务同步与配置同步类似,创建 ServiceDiscovery 自定义资源,指定需要同步的服务列表即可,示例如下:

apiVersion: nacos.alibabacloud.com/v1
kind: ServiceDiscovery
metadata:
   name: sd-demo
spec:
   nacosServer:
      # serverAddr: nacos地址
      serverAddr: <MSE Nacos域名>
      # namespace: 用户指定的命名空间
      namespace: <Nacos命名空间Id>
      # authRef: 引用存放Nacos 客户端鉴权信息的Secret,支持用户名/密码,Nacos服务端未开启鉴权可忽略
      authRef:
         apiVersion: v1
         kind: Secret
         # secret名称要与前序步骤中创建的Secret名称一致
         name: nacos-auth-secret
   # 用户需要同步的service名称列表;
   services: ["nginx-test","nginx-test-1"]

使用 kubectl 命令部署,之后即可实现 Kubernetes 服务同步至 Nacos。

kubectl apply -f sd-demo.yaml -n <Service所在的命名空间>

同步完成后,相关服务将在 Nacos 控制台中可见,供 Higress 或其他客户端消费。

总结

MSE Nacos Controller 是连接 Kubernetes 与 Nacos 生态的核心组件,有效解决了企业在云原生迁移与 AI 转型过程中面临的配置割裂、服务孤岛与协议不兼容等问题。

它通过 双向配置同步 与 服务自动注册 两大能力,实现了:

  • 统一配置管理:打破 Kubernetes 与 Nacos 之间的配置壁垒,实现configmap变更历史管理、快速回滚等;
  • 统一服务注册中心:打通 Kubernetes、传统 IDC 与多集群服务,实现跨环境服务互通;
  • 支撑 AI 场景下的 MCP 协议转换:为 Higress 等网关提供服务源,助力 REST API 快速升级为 AI 可调用的 MCP 服务。

通过简单的 CRD 配置,即可完成复杂系统的集成,大幅降低运维复杂度,提升系统灵活性与智能化水平。

参考文章:

手把手带你玩转基于 Nacos + Higress 的 MCP 开发新范式

https://nacos.io/blog/nacos-gvr7dx_awbbpb_lup4w7e1cv6wktac/

Nacos 3.0 架构全景解读,AI 时代服务注册中心的演进

https://nacos.io/blog/nacos-gvr7dx_awbbpb_gzlzyehxberthsng/

Nacos 配置中心变更利器:自定义标签灰度

https://nacos.io/blog/nacos-gvr7dx_awbbpb_ir01zzd3q20fa3xq/

企业生产环境中,实现 MCP 服务的统一管理和智能路由的实践

https://nacos.io/blog/nacos-gvr7dx_awbbpb_kpokkrgszm1ic3x5/

附:

【1】创建 MSE Nacos 实例

https://idealab.alibaba-inc.com/ideaTalk#

【2】开启容器RRSA功能并授权

https://help.aliyun.com/zh/ack/ack-managed-and-ack-dedicated/user-guide/use-rrsa-to-authorize-pods-to-access-different-cloud-services

【3】容器服务管理控制台

https://cs.console.aliyun.com/

2025杭州·云栖大会,来了!

9月24日至26日,杭州·云栖小镇

三场重磅主论坛

超110场聚合话题专场

40000平方米智能科技展区

点击此处免费注册领取云栖大会门票

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐