Nacos升级到3.0竟不能用了
Nacos 3.0核心升级包含四大方面:新增AI中心支持存量API构建MCPServer等功能;安全架构升级为独立控制台部署和分类鉴权;最低JDK版本要求提升至17;升级后需注意两个主要问题:一是必须手动配置认证密钥参数才能启动,二是控制台端口改为8080(原8848仅用于核心服务)。这些改动显著提升了安全性和功能扩展性,但也带来了兼容性调整需求。
1.升级概览
Nacos 3.0 最大的升级是新增了“AI 中心”,将会支持以下功能:
- 存量 API 可以快速构建 MCP Server: Nacos 配置存量 API 描述可以 0 代码的构建成 MCP Server,快速跟进 MCP 协议。
- 动态提示词 Prompt(尚未发布)。
- 支持 A2A 协议等(尚未发布)。
2.安全升级
Nacos 2.0 中面临的一个主要的风险就是 Nacos 所有的 HTTP OpenAPI 均通过统一的端口进行暴露,同时使用了统一的鉴权开关,这使得使用者必须在便捷性和安全性中作出取舍,导致在许多部署的环境中可能存在安全风险。
Nacos 3.0 为了解决这个问题,从 Nacos 的部署架构上作出演进,独立控制台部署,拆分鉴权开关,分类 API 并默认开启控制台及管控类 API 的鉴权:
同时配合配置加密插件,TLS 传输,来实现 Nacos 3.0 的零信任安全架构:
3.不再支持JDK8
Nacos 3.0 不再支持 JDK8 环境 ,它将其依赖的 JDK 版本升级至 17,并将 Spring Boot 版本升级至 3.4.1。
4.升级遇到的问题
4.1 无法启动
因为 Nacos 3.0 升级了安全策略,取消了 nacos.core.auth.server.identity.key、nacos.core.auth.server.identity.value 和 nacos.core.auth.plugin.nacos.token.secret.key 的默认值,所以当我们使用 Nacos 3.0 启动时会报错。
解决方案:进入 config/application.properties 配置 nacos.core.auth.server.identity.key、nacos.core.auth.server.identity.value 和 nacos.core.auth.plugin.nacos.token.secret.key 的默认值,其中 nacos.core.auth.plugin.nacos.token.secret.key 值需要 32 位 Base64 编码值,如果设置不符合规则启动也会报错。
nacos.core.auth.plugin.nacos.token.secret.key 为 Nacos 中生成 JWT 的秘钥,之前使用默认值,会导致伪造 JWT Token 的问题,所以去掉了默认值。
4.2 访问不了控制台
当我们费了九牛二虎之力启动了 Nacos 之后,发现使用 localhost:8848 不能访问控制台了。
原来是控制台和 Nacos 核心服务分开了,控制台变成了独立的端口号 8080,所以使用新的地址 localhost:8080 才能访问。
这。。。
为了让原来的服务不报错,所以之前的 8848 确实要给 Nacos 核心服务用,所以控制台就得配置新的端口号了,但你设置默认 8080,是怕我调试本地程序太累吗?(默认本地程序的端口是 8080)
更多推荐
所有评论(0)