spring cloud eureka docker多网卡ip注册异常

docker 寻梦 4年前 (2020-12-12) 951次浏览 0个评论 扫描二维码
文章目录[隐藏]

开发环境下,没有使用docker swarm 方式部署,没有问题。但是线上的生产环境使用了docker swarm做了集群,网络方式使用了 overlay方式 ,这样造成一个问题,如果容器中的服务向eureka注册时,ip地址获取到的永远都是第一张网卡的ip,这样造成的问题就是使用feign无法访问容器服务,但是容器间ping的通。

解决办法

yml 配置解决

必须在bootstrap.yml文件中添加配置才能生效,在application.yml中添加无效!

忽略特定网卡

spring:
  cloud:
    inetutils:
      ignoredInterfaces: //匹配正则表达式忽略
        - docker0
        - veth.*

优先使用ip

spring:
  cloud:
    inetutils:
      preferredNetworks: //匹配正则表达式优先使用ip段,list配置 从上到下找,找到哪个用哪个
        - 192.168
        - 10.0

docker compose 配置解决

忽略特定网卡

....
environment:
   - spring.cloud.inetutils.ignoredInterfaces=docker0,veth.*
....

优先使用ip

....
environment:
   - spring.cloud.inetutils.preferredNetworks=192.168,10.0

参考

喜欢 (0)
[支付宝扫码,感谢支持]
分享 (0)
关于作者:

您必须 登录 才能发表评论!