k8s 中 nacos 的公网地址注册问题
背景:在做服务上云的过程中,免不了会有混合云与传统微服务的情况,如果我们使用 nacos 作为注册中心,那么在 k8s 容器内注册的信息,在外部部署的服务是无法直接访问的。那么是否有办法支持集群内网都注册到 nacos 中并且可方便访问呢。
将需要对外暴露的服务 server
改为 NodePort
这样的话我们就可以用集群中任意机器的 ip:30001
访问到这个服务。
修改服务的注册逻辑
这里我们采取手动注册的方式,通过环境变量的方式注入两个参数
MY_NODE_IP``MY_NODE_PORT
作为注册的目标,辟如集群中机器 ip
为 1.2.3.4
端口为 30001
k8s 部署的 yaml 修改即可
那么这样注册到我们的 nacos
就是我们的机器外网 ip 和端口了,其他服务就可以走 nacos
进行 rpc
调用了。