动态修改"/>
nacos服务注册ip动态修改
场景
jenkins , nacos 使用docker 部署 , 本地代码提交之后jenkins使用maven打包之后运行docker file文件打包成镜像运行
问题
java程序运行之后注册中心注册的是 宿主机的内网ip
由于使用的是华为云服务器 因此是弹性公网 ifconfig结果
其中并没有公网ip
获取公网ip的方式 : 使用 curl httpbin/ip
尝试解决方法一
使用华为云的vpc创建对等连接 对等连接
比较麻烦 并且没有解决根本问题 外网无法访问服务
尝试解决方式二
获取公网Ip那么可以在docker容器运行的时候使用 ip 命令指定运行的静态ip 并且之前创建一个network网段
创建nework docker网络
脚本中指定运行的network 和 ip
启动之后发现注册中心上没有服务注册进来 查看日志:
启动成功但是无法注册到nacos
后期问题排查
使用同样的脚本运行了mysql发现外部的服务器可以使用连接工具连接上
因此排除网络问题 具体原因未知
最终解决方法
nacos配置中的spring.cloud.nacos.discovery.ip
可以指定服务运行的地址
因此使用占位符
在jenkins构建maven工程之前执行bash脚本将配置文件中占位符位置替换为云服务器的公网ip
重新构建查看nacos注册情况
更多推荐
nacos服务注册ip动态修改
发布评论