Spring 在 docker swarm 中启动 Eureka 注册了错误的内部 docker ip
Spring boot Eureka in docker swarm registering wrong internal docker ip's
Docker 节点正在 springboot-eureka 中注册 inter ip
我的配置如下
1. Spring-boot eureka部署到swarm(1节点)
2. 创建 spring-boot 客户端容器(2 个节点)并注册到 eureka
以上容器分别部署,客户端conf如下
eureka:
instance:
prefer-ip-address: true
client:
registerWithEureka: true
fetchRegistry: true
serviceUrl:
defaultZone: http://eureka-server-address/eureka/
healthcheck:
enabled: true
Spring:
cloud:
inetutils:
ignored-interfaces:
- eth0
- eth1
- eth2
- eth3
- lo
IP 为 172.1.0.1 而不是真正的外部 IP。 docker 容器无法与真实 IP 相互连接。
docker-撰写
network_mode: bridge
更新:- 集群以我们认为的不同方式运行。
1. ip 是 docker 的内部网络分布,这是我们所知道的
2. 整个蜂群本身并不是内部工作的大网络(新课)
3. 我们需要在 swarm 内部创建一个新网络,以便容器相互通信(已知+新课..是的,我很困惑)
对于正在寻找答案的人,请研究 docker 集群网络选项并创建 2 个网络,1 个用于内部流量,1 个用于外部流量,并将它们分配给 docker 中的容器-撰写)。我能够让它为我的 POC 工作,但它往往很难在企业规模上实现。
Docker 节点正在 springboot-eureka 中注册 inter ip 我的配置如下 1. Spring-boot eureka部署到swarm(1节点) 2. 创建 spring-boot 客户端容器(2 个节点)并注册到 eureka
以上容器分别部署,客户端conf如下
eureka:
instance:
prefer-ip-address: true
client:
registerWithEureka: true
fetchRegistry: true
serviceUrl:
defaultZone: http://eureka-server-address/eureka/
healthcheck:
enabled: true
Spring:
cloud:
inetutils:
ignored-interfaces:
- eth0
- eth1
- eth2
- eth3
- lo
IP 为 172.1.0.1 而不是真正的外部 IP。 docker 容器无法与真实 IP 相互连接。
docker-撰写
network_mode: bridge
更新:- 集群以我们认为的不同方式运行。 1. ip 是 docker 的内部网络分布,这是我们所知道的 2. 整个蜂群本身并不是内部工作的大网络(新课) 3. 我们需要在 swarm 内部创建一个新网络,以便容器相互通信(已知+新课..是的,我很困惑)
对于正在寻找答案的人,请研究 docker 集群网络选项并创建 2 个网络,1 个用于内部流量,1 个用于外部流量,并将它们分配给 docker 中的容器-撰写)。我能够让它为我的 POC 工作,但它往往很难在企业规模上实现。