原先服务是用的 Spring Cloud,
现在想用 docker 来包装一下 java 应用, 比如 eureka 可以 docker 来启动,
但是每次起 eureka 的 IP 是不固定的, 那么其他的业务服务,是怎么知道究竟 eureka 是哪个 IP ?
因为其他注册上去的服务,每次都要传个"spring.cloud.client.ipAddress",
这个比较难受,暂时没有想通该怎么弄。
还是说用了 docker 就只能用 docker 编排,而不能用 spring cloud 了? (这样代码改动量也太大了吧)
想用 Azure 的 docker 起容器实例,
1
lx0758 2020-03-10 20:35:10 +08:00
内部 DNS
|
2
nieqibest 2020-03-10 20:52:58 +08:00 via Android
swarm k8s 看你用什么编排吧
|
3
x66 2020-03-10 21:19:07 +08:00
eureka 都用 docker 了,client 不用吗?如果 clinet 也用了,那就应该让它们在同一个网络中,通过 hostname 来访问
|
4
xuanbg 2020-03-10 21:30:43 +08:00
容器可以用宿主机的 IP 访问啊,怎么 IP 不固定了?
|
5
fuis 2020-03-10 21:34:02 +08:00
DNS
|
6
chenshun00 2020-03-10 22:02:28 +08:00
service? hostName?
|
7
Aresxue 2020-03-10 22:10:12 +08:00
一般编排工具都会提供代理的,比如所有 eureka 的 docker 应用都被一个 nginx 镜像服务代理(也可以是多个服务), 这个镜像服务一般都是可固定宿主机 ip 和端口的
|
8
zrc 2020-03-10 22:10:41 +08:00
DNS 或者把你 eureka 的端口绑定到宿主机的固定端口
|
9
cedoo22 2020-03-10 22:13:01 +08:00
之前的公司用的是 DNS
好像还有其它方式 |
10
zhxjdwh 2020-03-11 08:40:45 +08:00 via Android
我们在交换机上加静态路由,把容器网络跟 vm 网络打通
|
11
cheng6563 2020-03-11 09:34:22 +08:00 via Android
用主机网络吧,eureka 服务发现跟 docker 天然有点不合
|
12
lzk50136 2020-03-11 10:54:21 +08:00
docker-compose 可以固定 ip 的吧?
|
13
jakehu 2020-03-11 12:47:56 +08:00
hostname
|
14
jackzhu 2020-03-11 20:00:21 +08:00
rancher 界面配置不香么,域名绑定
|