如何为同一MIG内单VM上的Jetty服务器配置专属DNS供同组VM访问?
专属DNS访问Jetty服务器的解决方案
方案1:Cloud DNS私有区域绑定静态内部IP
- 先给运行Jetty的VM分配静态内部IP(避免重启IP变动导致DNS失效)
- 在Cloud DNS中创建对应VPC的私有DNS区域,添加一条A记录(比如
jetty-srv.internal),指向该静态IP - 同组其他VM的应用直接通过
jetty-srv.internal:5000访问Jetty服务
方案2:本地hosts自动配置(无依赖Cloud DNS)
- 给Jetty所在VM打上自定义标签(比如
jetty-server) - 修改MIG的实例模板,添加启动脚本,让同组VM启动时自动查询带标签的VM内部IP并写入本地
/etc/hosts:
# 查找带jetty-server标签的VM内部IP JETTY_IP=$(gcloud compute instances list --filter="tags.items=jetty-server" --format="value(networkInterfaces[0].networkIP)") # 写入hosts记录 echo "$JETTY_IP jetty-srv" >> /etc/hosts
- 后续应用直接用
jetty-srv:5000访问即可,适合小规模部署场景
方案3:专属内部负载均衡器+DNS记录
- 创建一个仅绑定Jetty服务器的内部TCP负载均衡器(后端服务指定该VM)
- 给负载均衡器分配静态内部IP,在Cloud DNS私有区域添加A记录指向该IP(比如
jetty-lb.internal) - 其他VM通过
jetty-lb.internal:5000访问,后续若Jetty服务扩容,直接往后端加实例即可,兼顾稳定性和扩展性
关键注意事项
- 确保VPC内防火墙规则允许VM之间的5000端口通信
- 若用静态IP,需在GCP控制台确认该IP已绑定到Jetty服务器,不会被自动回收
内容的提问来源于stack exchange,提问作者rowen
相关产品推荐
相关产品推荐

