我的环境是用的ruoyi的项目,nacos版本是2.3.0,使用kubeSphere来操作k8s部署nacos。
问题表现为,浏览器访问服务器公网IP+8848/nacos可以进入nacos的管理页面
但是本地启动java服务,在配置里配置了server-addr为服务器公网IP+8848,无论如何都无法得到配置信息
问题的关键在于nacos 2.x之后客户端请求nacos服务是用的grpc,这个通信方式另外规定了个端口号:9848=8848+1000(还有两外的端口,不过和这个问题无关)
所以k8s在创建容器时,应该映射除了原来的http-8848外,还要映射grpc-9848,并且在阿里云实例安全组里放开这个端口。
下面是我映射配置的结果,9849不用映射:
注意!本地服务里的server-addr仍然配置服务器公网IP+8848/nacos,而不是9848,而我的svc内部端口8848映射到外网的端口号是30992。所以我的配置如下: